Paar päeva tagasi tahtsin automatiseerida üsna igapäevast ülesannet luua mõned PowerPointi slaidid. PowerPointi automatiseerimisel töötate tavaliselt kogumiga Slaidid ja kujundid. Slaidid on üsna iseenesestmõistetavad ja kujundid on peaaegu kõik muu, sealhulgas tekstikastid, toimingunupud, meediumiobjektid, sildid, pildid, tähelepanulaiendid, vooskeemid jne ja nii edasi. Kuigi ma tutvustan PowerPointi tehnikaid, on osa süntaksist tegelikult Microsoft Wordi ja Exceli jaoks üsna rakendatav.
Kokkuvõtteks: enne kui alustate PowerPointis VBA makrode arendamisega, peate lubama oma arenduse vahekaardi .
Alustuseks loome mõne slaidiga automaatselt esitluse, nagu on näidatud selles õpetuses: esitluse loomine VBA-s .
Nüüd saame alustada tööd Shapesiga. Kõigepealt avame VBA redaktori, vajutades Alt+ F11. Kui järgisite eelmist õpetust, peaks teie moodulite loendis olema moodul 1 (nagu allpool näidatud).
Kujunditega töötamine VBA-ga
Tekstikasti lisamine VBA-ga
Alustuseks lisame esitluse esimesele slaidile vertikaalse tekstikasti. Lisage moodulile 1 järgmine kood, seejärel vajutage nuppu Salvesta (Ctrl+s) ja käivitage makro (vajutage F5 või nuppu Käivita alam-/kasutajavorm).
Sub CreateTextBox()
Set MySlide = ActivePresentation.Slides(2)
With MySlide.Shapes
.AddTextbox(Orientation:=msoTextOrientationVertical, _
Left:=90, Top:=200, Width:=80, _
Height:=200).TextFrame.TextRange.Text _
= ("This is my vertical text box")
End With
End Sub
Pange tähele, et VBA abil saate tekstikasti mõõtmeid üsna lihtsalt muuta. Sel juhul muudame teise slaidi esimese kujundi suurust, muutke vastavalt vajadusele.
Sub ResizeText()
Set MyShape = ActivePresentation.Slides(2).Shapes(1)
'Add your required dimensions as needed below
With MyShape
.Width = 200
.Height = 35
End With
End Sub
Tekstiefektid VBA-ga
Oletame nüüd, et tahame esitluses kõikidele slaididele lisada tekstikasti, seekord veidi visuaalselt atraktiivsema. Selleks kasutame VBA-d, et luua kohandatud tekstiefekte, mida saame esitluse ühele või mitmele slaidile manustada. Kõigepealt vaatame esitlusslaidid läbi ja seejärel lisame vajadusel tekstiefekti.
Sub SetEffects()
Dim i As Integer
For i = 1 To ActivePresentation.Slides.Count
ActivePresentation.Slides(i) _
.Shapes.AddTextEffect msoTextEffect12, "Draft for Review", _
"Segoe UI", 32, msoTrue, msoTrue, 650, 50
Next
End Sub
Siin on tulemus ;-):

Pange tähele, et selle konkreetse tulemuse saavutamiseks võite kasutada ka lihtsat vesimärki.
PowerPointi viiktekstid VBA-ga
Meie järgmine näide on teie esitlusele tähelepanulaiendite lisamine. Selles näites lisame teisele slaidile tähelepanulaiendi.
Sub CreateCallout()
ActivePresentation.Slides(2).Shapes.AddCallout(Type:=msoCalloutTwo, Left:=200, Top:=50, _ Width:=300, Height:=100).TextFrame.TextRange.Text = "My Callout"
End Sub