Ostatnia aktualizacja: czerwiec 2020
Dotyczy: Office 2019 i starszych. Tylko Windows.
Oto pytanie czytelnika:
W ramach mojej prezentacji raportu kwartalnego dla kierownictwa, często muszę skopiować kilka slajdów z ogólnymi informacjami z innych prezentacji. Nie jest to wielka sprawa, ale możliwość zautomatyzowania tego ćwiczenia przyniosłaby znaczne oszczędności. Każda pomoc VBA Macro, aby to osiągnąć, jest doceniana!
Jak już wspomniałeś, możesz zautomatyzować kopiowanie i wklejanie slajdów w programie PowerPoint za pomocą Visual Basic for Applications. Jeśli musisz tworzyć kilka prezentacji co miesiąc, ta automatyzacja kopiowania/importowania slajdów może być ogromną oszczędnością czasu!
PowerPoint VBA do dodawania slajdów
Zacznijmy od tego prostego ćwiczenia.
Po pierwsze, upewnij się, że Twoja karta rozwoju jest włączona i widoczna. Oto jak to zrobić .
Zakładam, że utworzyłeś już prezentację z obsługą makr (typ pliku to .pptm), którą umieściłeś w tym samym katalogu co prezentacja źródłowa (którą będę nazywał source.pptm). Oto jak utworzyć prezentację PowerPoint za pomocą VBA .
Po pierwsze, zróbmy kopię zapasową tej prezentacji (proste skopiuj i zapisz).
Następnie przejdźmy dalej i wstaw następujące makro do nowego modułu VBA w prezentacji docelowej. Wszystkie szczegóły dotyczące tego, jak to zrobić, można znaleźć w naszym samouczku PowerPoint VBA .
Oto kod VBA, którego będziesz potrzebować, aby automatycznie skopiować i wkleić slajdy.
Kilka założeń, które poczyniłem:
- Twoja prezentacja źródłowa nosi nazwę source.pptm
- Wkleisz slajdy 2-4 z prezentacji źródłowej
- Skopiowane slajdy umieścisz na początku slajdu 5.
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
Oczywiście możesz zmienić indeksowanie numeru slajdu w kodzie, aby pasował do Twoich wymagań.
Możesz przejść przez kilka prezentacji i wstawić określone slajdy z każdej z nich do raportu zarządzania.
PowerPoint VBA do powielania slajdów
Zamiast kopiować slajdy do innej prezentacji, możesz sklonować jeden lub więcej slajdów w prezentacji:
Sub CopySlides()
' Short snippet to duplicate the third slide in a presentation, change the index/es accrodingly
ActivePresentation.Slides(3).Duplicate
End Sub
To tylko kilka prostych przykładów automatyzacji PowerPoint. Czytelnicy poszukujący konkretnych pytań zachęcamy do przesłania zapytania poprzez stronę Kontakt.
Mam nadzieję, że to pomoże 🙂
Zachowaj formatowanie podczas kopiowania slajdów
Problem z poprzednim przykładem polegał na tym, że oryginalne formatowanie motywu prezentacji nie zostało skopiowane. Załóżmy, że 2 arkusze miały różne formatowanie, co by się stało:
Przykład 1
| |
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
|

Oto prezentacja ze slajdem, którą chcemy skopiować:
Wynik:
Aby rozwiązać ten problem, możesz użyć poniższego kodu:
![Slajdy do skopiowania]()
![Wynik]()
| |
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
|
Oprócz kopiowania slajdu powyższy kod kopiuje projekt. Jeśli chcesz to zrobić ręcznie, skopiuj szablon slajdów do nowej prezentacji. Nie możesz skopiować wzorca slajdów za pomocą VBA, ale zamiast tego możesz ustawić właściwość projektu slajdów.