Kemas kini terakhir: Jun 2020
Berkenaan dengan: Office 2019 dan lebih lama. Windows sahaja.
Berikut adalah soalan daripada seorang pembaca:
Sebagai sebahagian daripada pembentangan laporan suku tahunan saya kepada pihak pengurusan, saya sering perlu menyalin beberapa slaid maklumat umum daripada pembentangan lain. Bukan masalah besar, tetapi ia akan menjadi penjimat yang penting untuk dapat mengautomasikan latihan ini. Sebarang bantuan Makro VBA untuk mencapainya adalah dihargai!
Seperti yang anda baru sebutkan, anda boleh mengautomasikan salin dan tampal slaid dalam PowerPoint menggunakan Visual Basic untuk Aplikasi. Jika anda perlu membuat beberapa pembentangan setiap bulan, automasi salinan / import slaid ini boleh menjadi penjimat masa yang besar!
PowerPoint VBA untuk menambah slaid
Mari teruskan dengan latihan mudah ini.
Mula-mula, pastikan tab pembangunan anda didayakan dan kelihatan. Begini cara untuk melakukannya .
Saya akan menganggap bahawa anda telah mencipta pembentangan yang didayakan Makro (jenis fail ialah .pptm), yang anda telah letakkan dalam direktori yang sama daripada pembentangan sumber anda (yang saya akan rujuk sebagai source.pptm). Begini cara membuat persembahan PowerPoint dengan VBA .
Mula-mula, mari ambil sandaran pembentangan itu (salin mudah dan simpan).
Kemudian marilah kami meneruskan dan memasukkan Makro berikut ke dalam modul VBA baharu dalam pembentangan destinasi anda. Semua butiran tentang cara melakukannya boleh didapati dalam tutorial PowerPoint VBA kami .
Berikut ialah kod VBA yang anda perlukan untuk menyalin dan menampal slaid secara automatik.
Beberapa andaian yang saya buat:
- Persembahan sumber anda dinamakan source.pptm
- Anda akan menampal slaid 2-4 daripada pembentangan sumber anda
- Anda akan meletakkan slaid yang disalin bermula slaid 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
Jelas sekali, jangan ragu untuk menukar pengindeksan nombor slaid dalam kod supaya ia sesuai dengan keperluan anda.
Anda boleh membuat gelung melalui beberapa pembentangan dan memasukkan slaid tertentu daripada setiap satu ke dalam laporan pengurusan anda.
PowerPoint VBA untuk menduplikasi slaid
Daripada menyalin slaid ke pembentangan lain, anda mungkin mahu mengklon satu atau lebih slaid dalam pembentangan anda:
Sub CopySlides()
' Short snippet to duplicate the third slide in a presentation, change the index/es accrodingly
ActivePresentation.Slides(3).Duplicate
End Sub
Itu hanyalah beberapa contoh mudah automasi PowerPoint. Pembaca yang mencari soalan khusus, sila hantar pertanyaan melalui halaman Kenalan.
Semoga Bermanfaat 🙂
Kekalkan Pemformatan Semasa Menyalin Slaid
Masalah dengan contoh sebelumnya ialah pemformatan tema persembahan asal tidak disalin. Andaikan 2 helaian mempunyai pemformatan yang berbeza, inilah yang akan berlaku:
Contoh 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
|

Ini pembentangan dengan slaid yang ingin kami salin:
Keputusan:
Untuk mengatasi masalah ini, anda boleh menggunakan kod di bawah:


| |
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
|
Selain daripada menyalin slaid, kod di atas menyalin reka bentuk. Jika anda ingin melakukan ini secara manual, anda akan menyalin master slaid ke persembahan baharu. Anda tidak boleh menyalin master slaid menggunakan VBA tetapi sebaliknya anda boleh menetapkan sifat reka bentuk slaid.