Pēdējo reizi atjaunināts: 2020. gada jūnijā
Attiecas uz: Office 2019 un vecākām versijām. Tikai Windows.
Šeit ir lasītāja jautājums:
Kā daļu no manas ceturkšņa atskaites prezentācijas vadībai man bieži ir jākopē vairāki vispārīgas informācijas slaidi no citām prezentācijām. Tas nav liels darījums, taču būtu ievērojams ietaupījums, ja spētu automatizēt šo vingrinājumu. Jebkurš VBA makro palīdz to paveikt!
Kā jūs tikko minējāt, varat automatizēt slaidu kopēšanu un ielīmēšanu programmā PowerPoint, izmantojot Visual Basic for Applications. Ja katru mēnesi ir jāizveido vairākas prezentācijas, šī slaidu kopēšanas/importēšanas automatizācija var kļūt par milzīgu laika ietaupījumu!
PowerPoint VBA slaidu pievienošanai
Sāksim ar šo vienkāršo vingrinājumu.
Vispirms pārliecinieties, vai izstrādes cilne ir iespējota un redzama. Lūk, kā to izdarīt .
Es pieņemu, ka esat jau izveidojis prezentāciju ar iespējotu makro (faila tips ir .pptm), kuru esat ievietojis tajā pašā direktorijā, kurā atrodas jūsu avota prezentācija (ko es saukšu kā source.pptm). Lūk, kā izveidot PowerPoint prezentāciju, izmantojot VBA .
Vispirms izveidosim šīs prezentācijas dublējumu (vienkārša kopēšana un saglabāšana).
Pēc tam ejam uz priekšu un savā galamērķa prezentācijā ievietojiet šo makro jaunā VBA modulī. Visu informāciju par to, kā to izdarīt, var atrast mūsu PowerPoint VBA apmācībā .
Šeit ir VBA kods, kas jums būs nepieciešams, lai automātiski kopētu un ielīmētu slaidus.
Pāris pieņēmumi, ko izdarīju:
- Jūsu avota prezentācijas nosaukums ir source.pptm
- Jūs ielīmēsit 2.–4. slaidu no avota prezentācijas
- Nokopētie slaidi tiks ievietoti, sākot ar 5. slaidu.
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
Protams, nekautrējieties mainīt slaidu numura indeksāciju kodā, lai tie atbilstu jūsu prasībām.
Jūs varat veikt to cilpu cauri vairākām prezentācijām un ievietot īpašus slaidus no katras savā vadības ziņojumā.
PowerPoint VBA slaidu kopēšanai
Tā vietā, lai kopētu slaidus uz citu prezentāciju, iespējams, vēlēsities prezentācijā klonēt vienu vai vairākus slaidus:
Sub CopySlides()
' Short snippet to duplicate the third slide in a presentation, change the index/es accrodingly
ActivePresentation.Slides(3).Duplicate
End Sub
Tie bija tikai daži vienkārši PowerPoint automatizācijas piemēri. Lasītāji, kuri meklē konkrētus jautājumus, droši sūtiet pieprasījumu, izmantojot lapu Kontakti.
Cerams, ka palīdz 🙂
Saglabājiet formatējumu, kopējot slaidus
Iepriekšējā piemēra problēma bija tāda, ka oriģinālais prezentāciju motīva formatējums netika pārkopēts. Pieņemsim, ka abām lapām bija atšķirīgs formatējums, tas būtu noticis:
1. piemērs
| |
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
|

Šī ir prezentācija ar slaidu, kuru vēlamies kopēt:
Rezultāts:
Lai novērstu šo problēmu, varat izmantot tālāk norādīto kodu:
![Kopējamie slaidi]()
![Rezultāts]()
| |
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
|
Papildus slaida kopēšanai iepriekš minētais kods kopē dizainu. Ja vēlaties to izdarīt manuāli, pārkopējiet slaida šablonu jaunajā prezentācijā. Jūs nevarat kopēt slidemaster, izmantojot VBA, bet tā vietā varat iestatīt slaidu dizaina rekvizītu.