Cum se creează și se inserează forme în PowerPoint cu VBA?

Acum câteva zile, am vrut să automatizez sarcina destul de banală de a crea niște diapozitive PowerPoint. Când automatizați PowerPoint, de obicei lucrați cu colecția Slides and Shapes. Slide-urile se explică de la sine, iar formele reprezintă aproape orice altceva, inclusiv casete de text, butoane de acțiune, obiecte media, etichete, imagini, înștiințări, diagrame și așa mai departe. Deși voi prezenta tehnicile cu PowerPoint, o parte din sintaxă este de fapt destul de aplicabilă Microsoft Word și Excel.

Pentru a recapitula, înainte de a începe cu dezvoltarea macro VBA în PowerPoint, trebuie să aveți fila de dezvoltare activată .

În primul rând, să începem prin a crea automat o prezentare cu câteva diapozitive, așa cum se arată în acest tutorial: crearea unei prezentări în VBA .

Acum putem începe să lucrăm cu Shapes. În primul rând, haideți să deschidem Editorul VBA apăsând Alt+ F11. Dacă ați urmat tutorialul anterior, ar trebui să aveți modulul 1 în lista de module (după cum se arată mai jos)

Lucrul cu forme cu VBA

Adăugarea unei casete de text cu VBA

Vom începe prin a adăuga o casetă de text verticală la primul nostru slide din prezentare. Adăugați următorul cod la Module1, apoi continuați și apăsați butonul Salvare (Ctrl+s) și rulați macrocomanda (apăsați F5 sau apăsați Executare formular sub/utilizator).

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

Rețineți că puteți redimensiona dimensiunile casetei de text destul de ușor cu VBA. În acest caz, vom redimensiona prima formă din al doilea diapozitiv, nu ezitați să o modificați după cum este necesar.

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

Efecte de text cu VBA

Să presupunem acum că vrem să adăugăm o casetă de text la toate diapozitivele din prezentare, de data aceasta puțin mai atrăgătoare din punct de vedere vizual. Pentru a face asta, vom folosi VBA pentru a crea efecte de text personalizate pe care le putem încorpora într-unul sau mai multe diapozitive din prezentare. Mai întâi vom parcurge diapozitivele de prezentare și apoi vom adăuga efectul de text după cum este necesar.

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

Iata rezultatul ;-):

Cum se creează și se inserează forme în PowerPoint cu VBA?

Rețineți că ați putea la fel de bine să utilizați un filigran simplu pentru a obține acest rezultat specific.

Înștiințări PowerPoint cu VBA

Următorul nostru exemplu va fi adăugarea de înștiințări la prezentarea dvs. În acest exemplu, vom adăuga o înștiințare în al doilea diapozitiv.

Sub CreateCallout()

ActivePresentation.Slides(2).Shapes.AddCallout(Type:=msoCalloutTwo, Left:=200, Top:=50, _  Width:=300, Height:=100).TextFrame.TextRange.Text = "My Callout"

End Sub

Setarea proprietăților pentru o formă

Multe proprietăți de formatare ale formelor nu sunt stabilite de proprietăți care se aplică direct  obiectului Shape  sau  ShapeRange  . În schimb, atributele legate de formă sunt grupate sub obiecte secundare, cum ar fi  obiectul FillFormat  , care conține toate proprietățile care se referă la umplerea formei, sau obiectul  LinkFormat  , care conține toate proprietățile care sunt unice pentru obiectele OLE legate. Pentru a seta proprietăți pentru o formă, trebuie mai întâi să returnați obiectul care reprezintă setul de atribute de formă asociate și apoi să setați proprietățile acelui obiect returnat. De exemplu, utilizați  proprietatea Fill  pentru a returna  obiectul FillFormat  , apoi setați  proprietatea ForeColor  a  obiectului FillFormat  pentru a seta culoarea primului plan de umplere pentru forma specificată, așa cum se arată în exemplul următor.

VB

Set myDocument = ActivePresentation.Slides(1)
myDocument.Shapes(1).Fill.ForeColor.RGB = RGB(255, 0, 0)

Aplicarea unei proprietăți sau metode la mai multe forme în același timp

În interfața cu utilizatorul, există câteva operații pe care le puteți efectua cu mai multe forme selectate; de exemplu, puteți selecta mai multe forme și puteți seta toate umplerile lor individuale simultan. Există și alte operații pe care le puteți efectua doar cu o singură formă selectată; de exemplu, puteți edita textul dintr-o formă numai dacă este selectată o singură formă.

În Visual Basic, există două moduri de a aplica proprietăți și metode unui set de forme. Aceste două moduri vă permit să efectuați orice operație pe care o puteți efectua pe o singură formă pe o serie de forme, indiferent dacă puteți efectua sau nu aceeași operație în interfața cu utilizatorul.

  • Dacă operațiunea funcționează pe mai multe forme selectate în interfața cu utilizatorul, puteți efectua aceeași operație în Visual Basic, construind o  colecție ShapeRange  care conține formele cu care doriți să lucrați și aplicând proprietățile și metodele corespunzătoare direct colecției  ShapeRange  .

  • Dacă operațiunea nu funcționează pe mai multe forme selectate în interfața cu utilizatorul, puteți efectua operația în Visual Basic, parcurgând bucla prin colecția  Shapes  sau printr-o  colecție ShapeRange  care conține formele cu care doriți să lucrați și aplicând proprietățile corespunzătoare. și metode la obiectele individuale  Shape  din colecție.

Multe proprietăți și metode care se aplică obiectului  Shape  și  colecției ShapeRange  eșuează dacă sunt aplicate anumitor tipuri de forme. De exemplu,  proprietatea TextFrame  eșuează dacă este aplicată unei forme care nu poate conține text. Dacă nu sunteți sigur că fiecare formă dintr-o  colecție ShapeRange  poate avea o anumită proprietate sau metodă aplicată acesteia, nu aplicați proprietatea sau metoda colecției  ShapeRange  . Dacă doriți să aplicați una dintre aceste proprietăți sau metode unei colecții de forme, trebuie să treceți prin colecție și să testați fiecare formă individuală pentru a vă asigura că este un tip adecvat de formă înainte de a aplica proprietatea sau metoda acesteia.

Aplicarea unei proprietăți sau metode la o colecție ShapeRange

Dacă puteți efectua o operație pe mai multe forme selectate în interfața cu utilizatorul în același timp, puteți face echivalentul programatic prin construirea unei  colecții ShapeRange  și apoi aplicând proprietățile sau metodele adecvate acesteia. Următorul exemplu construiește o gamă de forme care conține formele automate numite „Big Star” și „Little Star” și le aplică o umplere cu gradient și le aplică o umplere cu gradient.myDocument

VB

Set myDocument = ActivePresentation.Slides(1) 
Set myRange = myDocument.Shapes _ 
    .Range(Array("Big Star", "Little Star")) 
myRange.Fill.PresetGradient msoGradientHorizontal, _ 
    1, msoGradientBrass

Următoarele sunt linii directoare generale pentru modul în care proprietățile și metodele se comportă atunci când sunt aplicate unei   colecții ShapeRange .

  • Aplicarea unei metode la colecție este echivalentă cu aplicarea metodei fiecărui  obiect Shape individual  din acea colecție.

  • Setarea valorii unei proprietăți a colecției este echivalentă cu setarea valorii proprietății fiecărei forme individuale din acel interval.

  • O proprietate a colecției care returnează o constantă returnează valoarea proprietății pentru o formă individuală din colecție dacă toate formele din colecție au aceeași valoare pentru acea proprietate. Dacă nu toate formele din colecție au aceeași valoare pentru proprietate, aceasta returnează constanta „mixtă”.

  • O proprietate a colecției care returnează un tip de date simplu (cum ar fi  Long ,  Single sau  String ) returnează valoarea proprietății pentru o formă individuală dacă toate formele din colecție au aceeași valoare pentru acea proprietate.

  • Valoarea unor proprietăți poate fi returnată sau setată numai dacă există exact o formă în colecție. Dacă există mai multe forme în colecție, apare o eroare de rulare. Acesta este în general cazul pentru returnarea sau setarea proprietăților atunci când acțiunea echivalentă în interfața utilizator este posibilă doar cu o singură formă (acțiuni precum editarea textului într-o formă sau editarea punctelor unei forme libere).

Ghidurile precedente se aplică și atunci când setați proprietăți ale formelor care sunt grupate sub obiecte secundare ale  colecției ShapeRange  , cum ar fi  obiectul FillFormat  . Dacă obiectul secundar reprezintă operațiuni care pot fi efectuate pe mai multe obiecte selectate în interfața cu utilizatorul, veți putea returna obiectul dintr-o  colecție ShapeRange  și veți putea să îi setați proprietățile. De exemplu, puteți utiliza  proprietatea Fill  pentru a returna  obiectul FillFormat  care reprezintă umplerile tuturor formelor din  colecția ShapeRange  . Setarea proprietăților acestui  obiect FillFormat  va seta aceleași proprietăți pentru toate formele individuale din  colecția ShapeRange  .

Buclă printr-o colecție Shapes sau ShapeRange

Chiar dacă nu puteți efectua o operație pe mai multe forme din interfața cu utilizatorul în același timp, selectându-le și apoi folosind o comandă, puteți efectua acțiunea echivalentă în mod programatic, parcurgând bucla prin colecția Shapes  sau  printr-o  colecție ShapeRange  care conține formele pe care le aveți. doriți să lucrați cu și să aplicați proprietățile și metodele adecvate obiectelor individuale  Shape  din colecție. Următorul exemplu parcurge toate formele de pe și adaugă text la fiecare formă care este o formă automată. și adaugă text la fiecare formă care este o formă automată.myDocument

VB

Set myDocument = ActivePresentation.Slides(1) 
For Each sh In myDocument.Shapes 
    If sh.Type = msoAutoShape Then 
        sh.TextFrame.TextRange.InsertAfter " (version 1)" 
    End If 
Next

Următorul exemplu construiește  o colecție ShapeRange  care conține toate formele selectate curent în fereastra activă și setează textul în fiecare formă din colecție care poate conține text.

VB

For Each sh in ActiveWindow.Selection.ShapeRange
    If sh.HasTextFrame Then
        sh.TextFrame.TextRange = "Initially selected"
    End If
Next

Alinierea, distribuirea și gruparea formelor într-un interval de forme

Utilizați  metodele Aliniere  și  Distribuire  pentru a poziționa un set de forme unul față de celălalt sau față de documentul care le conține. Utilizați  metoda Grupare  sau  metoda Regrupare  pentru a forma o singură formă grupată dintr-un set de forme.

Lasă un comentariu

Șablon imprimabil de strategie de marketing de o pagină pentru afaceri locale

Șablon imprimabil de strategie de marketing de o pagină pentru afaceri locale

Folosește acest șablon de strategie de marketing imprimabil de o pagină pentru a alege un public local, o ofertă, un mix de canale, un buget, acțiuni și obiective măsurabile.

Șablon gratuit de program de ture pentru angajați pentru Excel cu calculator automat de ore

Șablon gratuit de program de ture pentru angajați pentru Excel cu calculator automat de ore

Creați gratuit un program de ture pentru angajați în Excel, cu ore de început/sfârșit, deduceri pentru pauze, gestionarea turelor de noapte, totaluri săptămânale și un calculator simplu de ore.

Cele mai bune aplicații gratuite de facturare pentru întreprinderile mici de servicii din SUA (2026)

Cele mai bune aplicații gratuite de facturare pentru întreprinderile mici de servicii din SUA (2026)

Compară cele mai bune aplicații gratuite de facturare pentru companiile de servicii din SUA în 2026, inclusiv Zoho Invoice, Square, Wave, PayPal și Invoice Ninja.

Șablon Excel simplu pentru urmărirea salariilor la două săptămâni pentru echipe mici: o configurare ușor de utilizat pentru începători

Șablon Excel simplu pentru urmărirea salariilor la două săptămâni pentru echipe mici: o configurare ușor de utilizat pentru începători

Creați un sistem simplu de urmărire a salarizării, bi-săptămânal, în Excel pentru o echipă mică, cu foi clare, formule, cecuri și limite practice pentru reconcilierea sigură a salariilor.

Cum să exporti contactele Salesforce într-un format Excel curat

Cum să exporti contactele Salesforce într-un format Excel curat

Aflați cum să exportați contactele Salesforce într-un fișier Excel curat, să păstrați ID-urile și câmpurile de text, să eliminați duplicatele în siguranță și să evitați greșelile comune din fișierele CSV.

Printable Construction Job Estimate Template in Excel for Small Contractors

Printable Construction Job Estimate Template in Excel for Small Contractors

Build a printable construction job estimate in Excel with practical cost categories, formulas, markup fields, print settings, and a contractor-ready checklist.

Listă de verificare pentru planificarea evenimentelor și șablon de buget imprimabil pentru Word

Listă de verificare pentru planificarea evenimentelor și șablon de buget imprimabil pentru Word

Utilizați această listă de verificare imprimabilă pentru planificarea evenimentelor și șablonul de buget în Word pentru a urmări responsabilii, termenele, costurile, furnizorii și pregătirea pentru ziua evenimentului, cu verificări clare de calitate.

Cum să repari o formulă Excel care nu se calculează automat în 3 pași simpli

Cum să repari o formulă Excel care nu se calculează automat în 3 pași simpli

Repară formulele Excel care nu se calculează automat în trei pași: restaurează modul de calcul, forțează o recalculare și repară formulele formatate ca text.

Șablon de program săptămânal de curățenie imprimabil pentru gazde Airbnb (Word și PDF)

Șablon de program săptămânal de curățenie imprimabil pentru gazde Airbnb (Word și PDF)

Utilizați acest program săptămânal de curățenie imprimabil pentru găzduirea Airbnb pentru a organiza schimbările de oaspeți, curățenia recurentă, realimentarea stocurilor, inspecțiile și transferurile din Word în PDF.

Șablon Excel pentru jurnalul de întreținere a echipamentelor pentru managerii de atelier: Ghid de configurare în 4 pași

Șablon Excel pentru jurnalul de întreținere a echipamentelor pentru managerii de atelier: Ghid de configurare în 4 pași

Creați un jurnal practic de întreținere a echipamentelor în Excel pentru managerii de atelier, cu ID-uri de active, istoric de service, termene limită, controale de status, urmărire timp de oprire și o listă de verificare finală pentru audit.