Utolsó frissítés: 2020. június
Alkalmazható: Office 2019 és régebbi verziók. Csak Windows.
Íme egy olvasói kérdés:
A vezetőségnek szóló negyedéves jelentési prezentációm részeként gyakran kell más prezentációkról átmásolnom több általános információs diát. Nem nagy dolog, de jelentős megtakarítást jelentene, ha ezt a gyakorlatot automatizálnák. Nagyra értékeljük a VBA makró segítségét ennek megvalósításához!
Ahogy az imént említette, automatizálhatja a diák másolását és beillesztését a PowerPointban a Visual Basic for Applications segítségével. Ha havonta több prezentációt kell készítenie, ez a diamásolás/importálás automatizálás óriási időmegtakarítást jelenthet!
PowerPoint VBA diák hozzáadásához
Kezdjük ezzel az egyszerű gyakorlattal.
Először is győződjön meg arról, hogy a fejlesztési lap engedélyezve van és látható. Íme, hogyan kell ezt megtenni .
Feltételezem, hogy már létrehozott egy makróképes prezentációt (a fájl típusa .pptm), amelyet ugyanabba a könyvtárba helyezett el, mint a forrásprezentációt (amelyre forrás.pptm néven hivatkozom). Így hozhat létre PowerPoint prezentációt VBA segítségével .
Először is készítsünk biztonsági másolatot a bemutatóról (egyszerű másolás és mentés).
Ezután menjünk tovább, és helyezzük be a következő Makrót egy új VBA-modulba a célprezentációban. Ennek minden részlete megtalálható a PowerPoint VBA oktatóanyagában .
Itt van a VBA-kód, amelyre szüksége lesz a diák automatikus másolásához és beillesztéséhez.
Egy-két feltételezésem:
- A forrásbemutató neve source.pptm
- A forrásbemutató 2–4. diáját beillesztheti
- A másolt diákat az 5. diával kezdheti.
Sub InsertFromOtherPres()
' This short VBA macro copies slides from one presentation and inserts them into another
ActivePresentation.Slides.InsertFromFile FileName:="source.pptm", Index:=1, SlideStart:=2,
SlideEnd:=4
End Sub
Nyilvánvaló, hogy nyugodtan módosítsa a diák számának indexelését a kódban, hogy azok megfeleljenek az Ön igényeinek.
Lehetőség van arra, hogy több prezentáción is végigfusson, és mindegyikből konkrét diát szúrjon be a vezetői jelentésbe.
PowerPoint VBA diák sokszorosításához
A diák másik prezentációba másolása helyett érdemes lehet egy vagy több diát klónozni a prezentációban:
Sub CopySlides()
' Short snippet to duplicate the third slide in a presentation, change the index/es accrodingly
ActivePresentation.Slides(3).Duplicate
End Sub
Ez csak néhány egyszerű példa volt a PowerPoint automatizálására. Azok az olvasók, akik konkrét kérdéseiket keresik, nyugodtan küldjenek érdeklődést a Kapcsolat oldalon keresztül.
Remélem segít 🙂
A formázás megőrzése diák másolásakor
Az előző példával az volt a probléma, hogy az eredeti prezentációtéma formázását nem másolták át. Tegyük fel, hogy a 2 lap eltérő formázású, ez történt volna:
1. példa
| |
Sub main()
Dim objPresentation As Presentation
Dim i As Integer
'open the target presentation
Set objPresentation = Presentations.Open("C:\2.pptx")
For i = 1 To objPresentation.Slides.Count
objPresentation.Slides.Item(i).Copy
Presentations.Item(1).Slides.Paste
Next i
objPresentation.Close
End Sub
|

Ez a prezentáció a másolni kívánt diával:
Eredmény:
A probléma megoldásához használhatja az alábbi kódot:


| |
Sub Example2()
Dim objPresentation As Presentation
Dim i As Integer
'open the target presentation
Set objPresentation = Presentations.Open("C:\2.pptx")
For i = 1 To objPresentation.Slides.Count
objPresentation.Slides.Item(i).Copy
Presentations.Item(1).Slides.Paste
Presentations.Item(1).Slides.Item(Presentations.Item(1).Slides.Count).Design = _
objPresentation.Slides.Item(i).Design
Next i
objPresentation.Close
End Sub
|
A dia másolásán kívül a fenti kód másolja a dizájnt. Ha ezt manuálisan szeretné megtenni, át kell másolnia a diamestert az új bemutatóba. A slidemaster nem másolható VBA használatával, ehelyett beállíthatja a diák tervezési tulajdonságait.