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

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  LongSingle 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.


7 moduri de a remedia eroarea Blue Screen of Death (BSOD) în Windows 10

7 moduri de a remedia eroarea Blue Screen of Death (BSOD) în Windows 10

Luptă cu eroarea Blue Screen of Death (BSOD) în Windows 10. Obțineți remedieri de depanare pentru a rezolva această eroare cu ușurință.

Cum se creează etichete în aplicația Gmail? Iată tot ce trebuie să știi

Cum se creează etichete în aplicația Gmail? Iată tot ce trebuie să știi

Dacă doriți să creați etichete în aplicația Gmail, acest ghid vă oferă soluția. Aflati cum sa faceti acest lucru atât pe telefon, cât și pe desktop.

Cum să adăugați chenar la o pagină în Microsoft Word

Cum să adăugați chenar la o pagină în Microsoft Word

Îmbunătățiți-vă documentele cu un chenar de pagină personalizat în Word. Află cum să adăugați și să personalizezi chenarul.

Cum să remediați Xbox nu se conectează la Wi-Fi? [10 soluții rapide]

Cum să remediați Xbox nu se conectează la Wi-Fi? [10 soluții rapide]

Dacă Xbox-ul dvs. nu se va conecta la Wi-Fi, urmăriți soluțiile furnizate în acest articol pentru a vă conecta Xbox și a continua să jucați.

REPARAT: PS4 se oprește de la sine Problemă aleatorie [Remediere rapidă]

REPARAT: PS4 se oprește de la sine Problemă aleatorie [Remediere rapidă]

Dacă PS4 se oprește de la sine, urmați soluțiile noastre eficiente pentru a remedia problema rapid și ușor.

Remediați „Microfonul este dezactivat de setările sistemului Google Meet” [6 trucuri]

Remediați „Microfonul este dezactivat de setările sistemului Google Meet” [6 trucuri]

Aflați cele mai bune soluții pentru a remedia eroarea „microfonul este dezactivat de setările sistemului” pe Google Meet, Zoom și Hangouts.

Cum să scrieți fracții în Google Docs

Cum să scrieți fracții în Google Docs

Descoperiți modalitățile simple și eficiente de a scrie fracții în Google Docs folosind caractere speciale și echivalente automate.

7 Remedieri rapide pentru eroarea ReCaptcha pentru proprietarul site-ului: Tip cheie nevalid

7 Remedieri rapide pentru eroarea ReCaptcha pentru proprietarul site-ului: Tip cheie nevalid

Remedierea eroarei Google ReCaptcha „Eroare pentru proprietarul site-ului: tip cheie invalid” prin soluții eficiente și actualizate.

Cum să calibrați culoarea monitorului în Windows 10

Cum să calibrați culoarea monitorului în Windows 10

Setările de calibrare a culorilor încorporate în Windows 10 vă ajută să îmbunătățiți acuratețea culorii monitoarelor dvs. Acest ghid detaliat vă arată cum să găsiți și să configurați aceste setări.

Conectarea la PlayStation Network a eșuat [FIXAT]

Conectarea la PlayStation Network a eșuat [FIXAT]

Conectarea la rețeaua PlayStation a eșuat atunci când vă conectați la PS4, apoi urmați remedieri precum actualizarea software-ului sistemului PSN, modificarea setărilor DNS...