Viimeksi päivitetty: kesäkuussa 2020
Koskee: Office 2019 ja vanhempia. Vain Windows.
Tässä kysymys lukijalta:
Osana neljännesvuosittaista raporttiesitystäni johdolle joudun usein kopioimaan useita yleistietoja dioja muista esityksistä. Ei iso juttu, mutta tämän harjoituksen automatisointi olisi merkittävä säästö. Kaikki VBA-makrot auttavat tämän saavuttamisessa!
Kuten juuri mainitsit, voit automatisoida diojen kopioinnin ja liittämisen PowerPointissa Visual Basic for Applications -sovelluksella. Jos sinun on luotava useita esityksiä kuukaudessa, tästä diakopiointi-/tuontiautomaatiosta voi tulla valtava ajansäästö!
PowerPoint VBA diojen lisäämiseen
Aloitetaan tällä yksinkertaisella harjoituksella.
Varmista ensin, että kehitysvälilehti on käytössä ja näkyvissä. Näin teet sen .
Oletan, että olet jo luonut makroa käyttävän esityksen (tiedostotyyppi on .pptm), jonka olet sijoittanut samaan hakemistoon kuin lähdeesitys (jota kutsun nimellä source.pptm). Näin voit luoda PowerPoint-esityksen VBA:lla .
Otetaan ensin varmuuskopio esityksestä (yksinkertainen kopiointi ja tallennus).
Sitten mennään eteenpäin ja lisätään seuraava makro uuteen VBA-moduuliin kohdeesitykseesi. Kaikki tiedot sen tekemisestä löytyvät PowerPoint VBA -opetusohjelmastamme .
Tässä on VBA-koodi, jota tarvitset, jotta voit kopioida ja liittää dioja automaattisesti.
Tein pari oletusta:
- Lähdeesityksen nimi on source.pptm
- Liität lähdeesityksen diat 2–4
- Kopioidut diat asetetaan diasta 5 alkaen.
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
Tietysti voit vapaasti muuttaa dian numeroiden indeksointia koodissa, jotta ne sopivat tarpeisiisi.
Pystyt käymään läpi useita esityksiä ja lisäämään jokaisesta tietyt diat hallintoraporttiisi.
PowerPoint VBA diojen monistamiseen
Sen sijaan, että kopioit dioja toiseen esitykseen, saatat haluta kloonata yhden tai useamman dian esitykseen:
Sub CopySlides()
' Short snippet to duplicate the third slide in a presentation, change the index/es accrodingly
ActivePresentation.Slides(3).Duplicate
End Sub
Nämä olivat vain pari yksinkertaista esimerkkiä PowerPoint-automaatiosta. Tarkkoja kysymyksiä etsivät lukijat voit lähettää kyselyn Yhteystiedot-sivun kautta.
Toivottavasti se auttaa 🙂
Säilytä muotoilu, kun kopioit dioja
Edellisen esimerkin ongelmana oli, että alkuperäisen esityksen teemamuotoilua ei kopioitu. Oletetaan, että kahdella arkilla oli eri muotoilu, tämä olisi tapahtunut:
Esimerkki 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
|

Tämä esitys dialla, jonka haluamme kopioida:
Tulos:
Tämän ongelman voittamiseksi voit käyttää alla olevaa koodia:


| |
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
|
Sen lisäksi, että kopioit dian, yllä oleva koodi kopioi mallin. Jos haluat tehdä tämän manuaalisesti, kopioi diamasterin uuteen esitykseen. Et voi kopioida diamasteria VBA:lla, mutta sen sijaan voit asettaa diojen suunnitteluominaisuuden.