Lucrul cu forme

Majoritatea obiectelor dintr-un diapozitiv PowerPoint tipic sunt obiectele Shape. De exemplu, o casetă de titlu este un obiect Shape, la fel și o imagine sau un tabel pe care l-ați copiat din Word. Accesați obiectele Shape prin colecția Shapes ale unui obiect Slide, SlideRange sau Master.

Adăugarea formelor la diapozitive

Diferite metode ale colecției Shapes adaugă diferitele tipuri de forme. Tabelul de mai jos listează obiectele Shape pe care le puteți adăuga și metodele și argumentele pentru adăugarea lor. Următoarele secțiuni explică argumentele. Puteți găsi detalii suplimentare despre obiectul Shape aici:

http://msdn.microsoft.com/en-us/library/office/ff745286.aspx

Argumente partajate pentru adăugarea formelor

Acestea sunt argumente care sunt partajate între diferite metode de adăugare ale formei:

  • BeginX and EndX sunt argumente necesare (de tip Single) care specifică poziția orizontală de pornire și poziția de sfârșit a conectorului sau liniei, măsurate în puncte, de la marginea din stânga a diapozitivului.
  • BeginY and EndY sunt argumente necesare de tip Single care specifică punctul de plecare vertical și punctul de sfârșit al conectorului sau liniei, măsurate în puncte, din partea de sus a diapozitivului.
  • FileName este un argument necesar de tip String utilizat pentru a specifica fișierul de utilizat pentru crearea obiectului (de exemplu, fișierul media pentru crearea unui obiect media).
  • Left este un argument necesar de tip Single care specifică poziția marginii stângi a formei, de la marginea stângă a diapozitivului, măsurată în puncte. Top este un argument necesar de tip Single care specifică poziția marginii superioare a formei, de la marginea de sus a diapozitivului, măsurată în puncte.
  • Height este un argument necesar de tip Single care specifică înălțimea formei, măsurată în puncte. Width este un argument necesar de tip Single care specifică lățimea formei, măsurată în puncte.
  • LinkToFile este un argument opțional pe care îl puteți seta la msoTrue pentru a lega imaginea la fișierul sursă.
  • NumColumns și NumRows sunt argumente necesare de tip Long care specifică numărul de coloane și rânduri din tabelul pe care îl adăugați.
  • Orientation este un argument obligatoriu care specifică orientarea: msoTextOrientationHorizontal (orizontală) sau msoTextOrientationVerticalFarEast (verticală).
  • SafeArrayOfPoints este un argument necesar de tip Variant care furnizează o serie de perechi de coordonate care dau nodurile și punctele de control ale unei curbe sau polilinii. Linia începe la prima pereche de coordonate și se termină la ultima pereche.
  • SaveWithDocument este un argument obligatoriu care controlează dacă PowerPoint salvează imaginea legată în prezentare (msoTrue) sau nu (msoFalse). Dacă setați LinkToFile: =msoFalse, trebuie să setați SaveWithDocument: =msoTrue.

Argumentul Type pentru adăugarea formelor

Argumentul Type este diferit pentru diferitele metode care îl utilizează. Iată câteva exemple:

    • Type pentru metoda AddPlaceholder este un argument obligatoriu care specifică tipul de placeholder care se va adăuga. Numele sunt auto-explicative: ppPlaceholderBitmap, ppPlace- holderBody, ppPlaceholderCenterTitle, ppPlaceholderChart, ppPlaceholderDate, ppPlaceholderFooter, ppPlaceholderHeader,ppPlaceholderMediaClip,ppPlace- holderMixed, ppPlaceholderObject, ppPlaceholderOrgChart, ppPlaceholderPic- ture, ppPlaceholderSlideNumber, ppPlaceholderSubtitle, ppPlaceholderTable, ppPlaceholderTitle, ppPlaceholderVerticalBody, ppPlaceholderVerticalObject, ppPlaceholderVerticalTitle

Limitări ale Placeholders

Puteți utiliza placeholders ppPlaceholderVerticalBody și ppPlaceholderVerticalTitle numai pe diapozitivele care utilizează text vertical—șabloanele diapozitivului ppLayoutVerticalText, ppLayoutClipArtAndVerticalText, ppLayoutVerticalTitleAndText, și ppLayout VerticalTitleAndTextOverChart.

  • Type pentru metoda AddCallout este un argument obligatoriu care specifică tipul de linie pentru callout care va fi adăugat: msoCalloutOne (o linie cu un singur segment care poate fi verticală sau orizontală), msoCalloutTwo (o linie cu un singur segment care se rotește liber), msoCalloutThree (o linie cu două segmente) sau msoCalloutFour (o linie formată din trei segmente).
  • Type pentru metoda AddShape este un argument obligatoriu care specifică tipul de AutoShape care va fi adăugat. Există prea multe constante pentru a fi scrise aici, dar cele mai multe sunt ușor de identificat după numele lor (în engleză). De exemplu, msoShapeHeart este o formă de inimă, msoShapeLightningBolt are forma unui fulger și așa mai departe. Pentru a vedea o listă a constantelor, căutați metoda AddShape în fișierul de ajutor al VBA Editor, apoi faceți clic pe legătura pentru msoAutoShapeType. Sau tastați msoautoshapetype în câmpul de căutare al Object Browser.
  • Type pentru metoda AddDiagram este un argument obligatoriu care specifică tipul diagramei: msoDiagramCycle (o diagramă ciclu), msoDiagramOrgChart (o organigramă), msoDiagram Pyramid (o diagramă piramidală), msoDiagramRadial (o diagramă radială), msoDiagramTarget (o diagramă țintă) sau msoDiagramVenn (o diagramă Venn).

Ce este MSO? SFATURI PRACTICE PENTRU PROGRAMATORUL NEDUMERIT

Este posibil să fi observat că multe dintre enumerările și constantele pe care le executați în PowerPoint au prefixul mso (opusul celor anexate). Acest acronim vine de la Microsoft Office. Și este folosit doar la enumerarea din powerpoint și nu la alte enumerări din Office 2016.

Iată un alt mister. De-a lungul deceniilor de programare, și în toate celelalte versiuni de bază și VBA, utilizați cuvintele True și False pentru adevărat și fals. Asta are un anumit sens când te gândești la asta. Cu toate acestea, în PowerPoint 2016, puteți utiliza, de asemenea, constantele încorporate msoTrue și msoFalse pentru a seta proprietatea vizibilă a unui subsol de pe un diapozitiv. Din fericire, aceste constante sunt opționale. Puteți utiliza în continuare tradiționalele True și False. Nu există nici o diferență între True Microsoft Office și True, în general. (Vorbesc aici strict în contextul acestor constante.)

Mso apare, de asemenea, în tipul de variabilă MsoTriState — acel tip bizar uber-Boolean pe care l-ați întâlnit anterior.

Argumente specifice metodei AddTextEffect

Următoarele argumente se aplică numai metodei AddTextEffect:

  • PresetTextEffect este un argument obligatoriu care specifică efectul presetat care va fi folosit la text. Aceste efecte presetate pentru texte sunt identificate de constante, de la msoTextEffect1 până la msoTextEffect30, care corespund ordinii în care eșantioanele apar în caseta de dialog WordArt Gallery (de la 1 până la 6 se află pe primul rând, de la 7 până la 12 pe al doilea rând și așa mai departe).
  • Text este un argument necesar de tip String care specifică textul de utilizat în obiectul WordArt.
  • FontBold este un argument obligatoriu care poate fi setat la msoTrue pentru a face fontul aldin sau la msoFalse pentru a nu-l face aldin.
  • FontItalic este un argument obligatoriu care poate fi setat la msoTrue pentru a face fontul cursiv și la msoFalse pentru a nu-l face cursiv.
  • FontName este un argument necesar de tip String care specifică numele fontului care va fi utilizat.
  • FontSize este un argument necesar de tip Single care specifică dimensiunea fontului.

ARGUMENTE SPECIFICE METODEI ADDOLEOBJECT

Următoarele argumente se aplică numai metodei AddOLEObject:

  • ClassName este un argument opțional de tip String care specifică ID-ul programului (ProgID) sau numele clasei OLE de tip Long pentru obiect. Trebuie să utilizați fie ClassName, fie FileName, dar nu ambele. În majoritatea cazurilor, este mai ușor de utilizat FileName.
  • DisplayAsIcon este un argument opțional pe care îl puteți seta la msoTrue pentru a afișa obiectul OLE ca o pictogramă, în loc să fie afișat obiectul însuși (implicit).
  • IconFileName este un argument opțional de tip String pe care îl puteți utiliza cu DisplayAsIcon:=True pentru a specifica numele de fișier al pictogramei pe care doriți să o afișați pentru obiect.
  • IconIndex este un argument opțional de tip Integer care specifică indexul pictogramei de utilizat în fișierul pictogramă specificat de IconFileName. Dacă omiteți argumentul IconIndex, VBA utilizează a doua pictogramă din fișierul pictogramă, pictograma din poziția 1 (prima pictogramă din fișier este în poziția 0).
  • IconLabel este un argument opțional de tip String pe care îl puteți utiliza pentru a specifica legenda (sau label) care se va afișa sub pictogramă.
  • Link este un argument opțional pe care îl puteți seta la msoTrue pentru a lega obiectul OLE de sursa acestuia când folosiți argumentul FileName. Link trebuie să fie msoFalse atunci când folosiți ClassName pentru a specifica numele unei clase.

UN EXEMPLU DE UTILIZARE A METODEI ADDSHAPE

Următoarea comandă utilizează metoda AddShape pentru a adăuga o săgeată îndoită în sus la colțul din dreapta sus al ultimului diapozitiv din prezentarea activă. Înainte de a executa acest exemplu, faceți clic pe fila Fișier din Panglica PowerPoint, apoi faceți clic pe opțiunea New din panoul din stânga pentru a vedea unele dintre șabloanele și temele care pot fi valorificate. Faceți dublu clic pe unul dintre șabloane, astfel încât veți avea câteva diapozitive cu care să lucrați în acest exemplu. (În versiunile de PowerPoint înainte de 2013, va trebui să deschideți folderul Sample Templates înainte de a alege un șablon.)

Deschideți Editorul Visual Basic apăsând Alt+F11. Găsiți proiectul în fereastra Project, faceți clic dreapta pe numele său (va fi scris îngroșat) și alegeți Insert > Module. Tastați următoarele în noul modul, apoi apăsați F5 cu cursorul intermitent în interiorul acestei subrutine pentru a executa codul și a vedea efectul:

Sub test()
ActivePresentation.Slides(ActivePresentation.Slides.Count) _
.Shapes.AddShape Type:=msoShapeBentUpArrow, Left:=575, Top:=10, _
Width:=150, Height:=75
End Sub

Pentru a vedea ce s-a întâmplat, uitați-vă la ultimul diapozitiv și observați că a fost adăugată o formă la diapozitiv – o săgeată îndoită în sus.

UN EXEMPLU DE UTILIZARE A METODEI ADDTEXTEFFECT

Următorul exemplu utilizează metoda AddTextEffect pentru a suprapune un element WordArt pe al treilea diapozitiv. Asigurați-vă că aveți cel puțin trei diapozitive apăsând Ctrl+M de câteva ori pentru a adăuga diapozitive noi.

Acest cod scrie textul Questions & Answers (pe trei linii) pe diapozitiv. Acest element WordArt este instruit de codul nostru să folosească fontul Garamond de 54 puncte, bold.

ActivePresentation.Slides(3).Shapes.AddTextEffect _ 
  PresetTextEffect:=msoTextEffect14, _
    Text:="Intrebari" + Chr$(CharCode:=13) + _
    "&" + Chr$(CharCode:=13) + "Raspunsuri", _
    FontName:="Garamond", FontSize:=54, FontBold:=msoTrue, _ 
    FontItalic:=msoFalse, Left:=230, Top:=125

Există 30 de constante msoTextEffect cu care puteți experimenta. Acestea încep de la msoText Effect1 și se încheie cu msoTextEffect30. msoTextEffect14 este frumos; acesta oferă un fel de efect metalic. A se vedea figura următoare.

UN EXEMPLU DE UTILIZARE A METODEI ADDTEXTBOX

Următorul exemplu adaugă o casetă text la al doilea diapozitiv din prezentarea activă și îi atribuie text:

Dim myTextBox As Shape
With ActivePresentation.Slides(2)
Set myTextBox = .Shapes.AddTextbox _
(Orientation:=msoTextOrientationHorizontal, Left:=100, Top:=50, _ 
   Width:=400, Height:=100)
myTextBox.TextFrame.TextRange.Text = "Test TextBox"
End With

Ștergerea unei forme

Pentru a șterge o formă, utilizați metoda Delete cu obiectul Shape corespunzător. De exemplu, următoarea instrucțiune șterge primul obiect formă din al doilea diapozitiv din prezentarea activă:

ActivePresentation.Slides(2).Shapes(1).Delete

Selectarea tuturor formelor

Pentru a selecta toate formele dintr-un diapozitiv, utilizați metoda SelectAll a colecției Shapes corespunzătoare. De exemplu, următoarea instrucțiune selectează toate obiectele Formă de pe primul diapozitiv din prezentarea activă:

ActivePresentation.Slides(1).Shapes.SelectAll

Repoziționarea și redimensionarea unei forme

Pentru a repoziționa o formă, setați proprietatea sa Left (pentru a specifica distanța în puncte de la marginea stângă a diapozitivului la marginea din stânga a formei) și proprietatea sa Top (pentru a specifica distanța în puncte de la marginea de sus a diapozitivului la marginea de sus a formei).

Pentru a modifica dimensiunea unei forme, setați proprietățile Width și Height la numărul corespunzător de puncte.

De exemplu, următoarele declarații poziționează prima formă pe primul diapozitiv din prezentarea activă la 200 de puncte din partea stângă a diapozitivului și la 100 de puncte din partea de sus și face ca forma să fie lată de 300 de puncte și înaltă de 200 de puncte:

With ActivePresentation.Slides(1).Shapes(1)
   .Left = 200
   .Top = 100
   .Width = 300
   .Height = 200 
End With

De asemenea, aveți posibilitatea să mutați o formă în raport cu locația sa curentă utilizând metoda IncrementLeft și metoda IncrementTop. Rotiți forma utilizând metoda IncrementRotation.

Rețineți că aceste metode nu sunt locații specificate absolut într-un diapozitiv. Noua lor poziție se calculează relativ la poziția curentă sau rotația formei. Fiecare dintre aceste metode are un argument Increment:

  • Pentru metodele IncrementLeft și IncrementTop, argumentul Increment specifică numărul de puncte pentru a muta forma. Un număr negativ mută forma spre stânga sau în sus, în timp ce un număr pozitiv mută forma spre dreapta sau în jos.
  • Pentru metoda IncrementRotation, argumentul Increment specifică numărul de grade pentru a roti forma. Un număr pozitiv rotește forma în sensul acelor de ceasornic; un număr negativ rotește forma în sens antiorar.

Următorul exemplu modifică poziția primei forme de pe al treilea diapozitiv al prezentării active, mișcând-o cu 100 de puncte spre stânga și 200 de puncte în jos și rotind-o cu 90 de grade în sens antiorar:

With ActivePresentation.Slides(3).Shapes(1)
   .IncrementLeft Increment:=-100 
   .IncrementTop Increment:=200 
   .IncrementRotation Increment:=-90 
End With

Copierea formatării de la o formă la alta

Adesea, este util să puteți aplica aceeași formatare la mai multe forme. Când o formă are formatarea dorită, aveți posibilitatea să utilizați metoda PickUp a obiectului Shape pentru a copia formatarea din acea formă, apoi utilizați metoda Apply pentru a aplica acea formatare la o altă formă.

Nici metoda PickUp, nici metoda Apply nu utilizează argumente. Următorul exemplu copiază formatarea de la prima formă de pe al doilea diapozitiv din prezentarea activă și o aplică celei de-a treia forme de pe cel de al patrulea diapozitiv:

With ActivePresentation
.Slides(2).Shapes(1).PickUp 
.Slides(4).Shapes(3).Apply 
End With

Lucrul cu textul dintr-o formă

Textul dintr-o formă este conținut într-un obiect TextRange, care este conținut într-un obiect TextFrame. Pentru a lucra cu textul dintr-o formă, utilizați proprietatea TextFrame a obiectului Formă pentru a returna obiectul TextFrame și apoi utilizați proprietatea TextRange a obiectului TextFrame pentru a returna obiectul TextRange. (Amintiți-vă că unele obiecte pot avea relații complexe, derutante.)

În cadrul obiectului TextRange, proprietatea Text conține textul, obiectul Font conține formatarea fontului, obiectul ParagraphFormat conține formatarea paragrafului, iar colecția ActionSettings conține setările acțiunii pentru zona de text.

Cum se află dacă o formă conține un cadru text

Nu orice formă are un cadru text; deci, înainte de manipularea textului, este o idee bună să verificați mai întâi dacă forma pe care o folosiți chiar are un cadru de text.

Pentru aceasta, verificați dacă proprietatea HasTextFrame a obiectului Shape este msoTrue, ca în acest exemplu:

If ActivePresentation.Slides(1).Shapes(1).HasTextFrame = msoTrue Then 
    MsgBox "Forma contine un cadru text."
End If

De asemenea, poate fi necesar să verificați dacă cadrul text conține text. Pentru aceasta, verificați dacă proprietatea HasText a obiectului TextFrame este msoTrue. Iată un exemplu:

With ActivePresentation.Slides(1).Shapes(1).TextFrame 
  If .HasText = msoTrue Then MsgBox .TextRange.Text 
End With

Returnarea și setarea textului într-un interval de text

Pentru a returna (citi) sau a seta (specifica) textul dintr-un interval de text, puteți utiliza pur și simplu proprietatea Text a obiectului TextRange. De exemplu, următoarea instrucțiune setează textul în prima formă din diapozitivul patru în prezentarea identificată de variabila obiect myPresentation la Întâlnire de planificare strategică:

Sub Test()
Dim myPresentation As Presentation 
Set myPresentation = Presentations(1)
myPresentation.Slides(4).Shapes(1).TextFrame.TextRange.Text _
  = "Intalnire de planificare strategica"
End Sub

De asemenea, aveți posibilitatea să returnați părți ale textului utilizând metoda Paragraphs, metoda Sentences, metoda Lines, metoda Words, metoda Characters sau metoda Execute. Sintaxa pentru aceste metode este prezentată aici, utilizând ca exemplu metoda Paragraph:

expression.Paragraphs(Start, Length)

Componentele sintaxei sunt următoarele:

  • expression este o expresie necesară care returnează un obiect TextRange.
  • Start este un argument opțional de tip Long care specifică primul element care va fi returnat (paragraf, propoziție, linie, cuvânt, caracter sau text run – explicat mai jos).
  • Length este un argument opțional de tip Long care specifică câte elemente să fie returnate—de exemplu, două paragrafe, trei propoziții sau patru cuvinte.

Ce înseamnă TEXT RUN

Text run este o secvență de caractere care au aceeași formatare de font. Text run poate fi util pentru alegerea de părți din intervalele de text care sunt formatate într-un anumit mod.

Următorul exemplu de cod returnează al doilea până la al cincilea cuvânt (cele patru cuvinte începând cu al doilea cuvânt) din prima formă de pe primul diapozitiv din prezentarea activă:

MsgBox ActivePresentation.Slides(1).Shapes(1).TextFrame _ 
   .TextRange.Words(Start:=2, Length:=4)

Următorul exemplu de cod setează textul celui de-al doilea paragraf din forma a doua din al șaselea diapozitiv din prezentare identificat de variabila obiect myPresentation la VP de dezvoltare a afacerii:

myPresentation.Slides(6).Shapes(2).TextFrame.TextRange _
   .Paragraphs(Start:=2, Length:=1).Text = "VP de dezvoltare a afacerii"

Formatarea textului într-o zonă de text

Pentru a formata textul dintr-o zonă de text, utilizați obiectul ParagraphFormat pentru a controla formatarea paragrafului (inclusiv alinierea și spațiul înainte și după paragraf) și obiectul Font pentru a controla formatarea fontului.

Acestea sunt proprietățile cele mai utile ale obiectului ParagraphFormat:

  • Proprietatea Alignment controlează alinierea. Folosiți ppAlignLeft pentru alinierea la stânga, ppAlignCenter pentru centrare, ppAlignJustify pentru aliniere stânga-dreapta, ppAlign Distribute pentru aliniere distribuită (stânga-dreapta utilizând tot spațiul disponibil) sau ppAlignRight pentru alinierea la dreapta.
  • Proprietatea Bullet returnează obiectul BulletFormat, care reprezintă formatarea pentru marcatori. Consultați secțiunea următoare pentru detalii.
  • Proprietățile LineRuleBefore, LineRuleAfter și LineRuleWithin stabilesc dacă măsurătorile stabilite de proprietățile SpaceBefore, SpaceAfter și SpaceWithin folosesc linii (msoTrue) sau puncte (msoFalse).
  • Proprietățile SpaceBefore și SpaceAfter controlează spațiul înainte și după fiecare paragraf. Proprietatea SpaceWithin controlează spațiul dintre liniile de bază dintr-un paragraf. Toate măsurătorile sunt în puncte.

Următorul exemplu setează alinierea la stânga, 18 puncte de spațiere înainte și după paragrafe și 12 puncte de spațiere între linii pentru a doua formă din diapozitiv identificată de variabila obiect mySlide:

Dim mySlide As Slide
Set mySlide = Presentations(1).Slides(2)
With mySlide.Shapes(2).TextFrame.TextRange.ParagraphFormat 
   .Alignment = ppAlignLeft
   .LineRuleAfter = msoFalse
   .SpaceAfter = 18
   .LineRuleBefore = msoFalse
   .SpaceBefore = 18
   .LineRuleWithin = msoFalse
   .SpaceWithin = 12
End With

FORMATAREA MARCATORILOR PENTRU UN INTERVAL DE TEXT

Marcatorii și numerotarea sunt vitale pentru listele utilizate în multe diapozitive PowerPoint. Pentru a controla dacă și apar marcatori și numere, utilizați proprietatea Bullet a obiectului TextRange pentru a returna obiectul BulletFormat, și apoi lucrați cu proprietățile și metodele obiectului BulletFormat.

Pentru a face marcatorii și numerotarea vizibile, setați proprietatea Visible a obiectului BulletFormat la msoTrue; pentru a ascunde marcatorii și numerele, setați Visible la msoFalse.

Pentru a specifica ce tip de marcator sau numerotare va fi utilizată, setați proprietatea Type a obiectului BulletFormat la ppBulletUnnumbered (pentru un marcator), ppBulletNumbered (pentru numerotare), ppBulletPicture (pentru o imagine) sau ppBulletNone (fără marcator).

Alt tip de date mixte

Proprietatea Type a obiectului BulletFormat returnează valoarea ppBulletMixed când selecția include mai multe tipuri de marcatori. Nu se poate seta (scrie) ppBulletMixed la Type. Această valoare poate fi doar citită.

Pentru a specifica caracterul de marcare, utilizați proprietatea Character și numărul caracterului. Puteți afla numărul caracterului din caseta de dialog Simbol sau din programul Character Map, pe care îl puteți executa apăsând tasta Windows pentru a deschide meniul Start în Windows 10 (sau pentru a afișa vizualizarea pictogramelor în Windows 8) și apoi tastând charmap sau Character Map.

Pentru Windows 7 și versiunile anterioare, click Start > All Programs > Accessories > System Tools > Character Map.

Din păcate, codurile de caractere sunt date în sistemul de numerotare hexazecimal. Dacă căutați simbolul casetei de selectare pentru fontul Wingdings care este utilizat în următorul exemplu de cod, programul Character Map nu arată caracterul 254, în sistem de numerotare zecimală umană, ci 0xFE (254 în mod hexazecimal).

Pentru a rezolva problema cu caracterele în cod hexazecimal, puteți utiliza un calculator care poate face trecerea de la hexazecimal la zecimal, fie doar să pregătiți caracterele &H în fața codului hexazecimal pentru ca VBA să îl traducă atunci când se execută macrocomanda.

De exemplu, în exemplul de cod următor, am folosit 254 (un număr zecimal). Numărul poate fi calculat și cu aplicația Calculator (în care se alege View - Programmer) sau pe pagini web specializate (care pot fi găsite cu o căutare „hex to decimal”). Dar puteți scrie direct codul hexazecimal în macrocomandă:

.Character = &H FE

Utilizați proprietatea Font pentru a specifica numele fontului, dimensiunea și culoarea. Următorul exemplu setează marcatorul pentru prima formă de pe diapozitiv identificat de variabila obiect mySlide la caracterul 254 din Wingdings, o casetă de selectare, folosind culoarea albă, care este RGB(255, 255, 255) și mărimea de 44 punct:

With mySlide.Shapes(1).TextFrame.TextRange.ParagraphFormat.Bullet 
.Type = ppBulletUnnumbered 
.Character = 254 
With .Font
    .Name = "Wingdings"
   .Size = 44
    .Color = RGB(255, 255, 255)
End With
End With

Culoarea este, desigur, un element important în orice design. Puteți afla cu ușurință de ce valori RGB aveți nevoie pentru a utiliza pentru diferite culori vizitând această pagină web:

http://cloford.com/resources/colours/500col.htm

Pentru a utiliza propria imagine particularizată ca marcator, setați proprietatea Type a obiectului BulletFormat la ppBulletPicture și apoi utilizați metoda Picture cu argumentul Picture, un argument necesar de tip String care specifică calea și numele fișierului de utilizat ca marcator. Puteți utiliza cele mai comune tipuri de fișiere grafice, inclusiv fișiere .bmp, .eps, .gif, .jpg, .jpeg, .pcx, .png, .tiff și .wmf. (Tipul de fișier grafic .png permite o rezoluție de calitate mai mare decât majoritatea celorlalte metode și mulți oameni preferă acum acest mod de a salva imagini.) Următorul exemplu utilizează fișierul Face1.png stocat în folderul Z:\Public\Pictures ca marcator pentru prima formă pe diapozitiv identificat de variabila obiect mySlide:

With mySlide.Shapes(1).TextFrame.TextRange.ParagraphFormat.Bullet 
.Type = ppBulletPicture
.Picture Picture:="z:\Public\Pictures\Face1.png"
End With

Animarea unei forme sau a unui interval de forme

Pentru a anima o formă sau mai multe forme, utilizați proprietatea AnimationSettings a obiectului Shape sau obiectul ShapeRange pentru a returna obiectul AnimationSettings.

Pentru a specifica efectul de animație de utilizat, setați proprietatea EntryEffect la constanta pentru un efect. Se alege efectul de animație care arată cel mai bine pentru forma cu care lucrați. Mai întâi, faceți clic pe o formă dintr-un diapozitiv pentru a selecta forma. Acum afișați panoul Add Animation.

Există prea multe constante de animație pentru a le lista aici, dar numele lor sunt ușor de înțeles din numele listate în panoul Add Animation. Pentru a deschide acest panou, faceți clic pe un obiect dintr-un diapozitiv pe care doriți să îl animați (pentru a-l selecta), apoi faceți clic pe fila Animations din Panglica PowerPoint. La final, faceți clic pe pictograma Add Animation din secțiunea Advanced Animation.

În fereastra PowerPoint este afișat un panou, ca în figura următoare.

Ca de obicei, în animații, mai puțin este mai mult. Alegeți efecte subtile.

Pentru a scrie cod care creează o animație, setați proprietatea Animate la msoTrue. (Pentru a dezactiva o animație, setați Animate la msoFalse.)

Pentru a controla modul în care este animat textul dintr-o formă, setați proprietatea TextLevelEffect la ppAnimateLevelNone (fără animație), ppAnimateByFirstLevel, ppAnimateBySecond-Level, ppAnimateByThirdLevel, ppAnimateByFourthLevel, ppAnimateByFifthLevel sau ppAnimateByAllLevels.

Dacă setați TextLevelEffect la orice altă valoare decât ppAnimateByAllLevels sau ppAnimate LevelNone, utilizați proprietatea TextUnitEffect pentru a specifica cum va fi animat textul. Utilizați ppAnimateByParagraph pentru a anima întregul paragraf, ppAnimateByWord pentru a anima cuvintele sau ppAnimateByCharacter pentru a anima fiecare caracter.

Pentru a inversa ordinea animației, setați proprietatea AnimateTextInReverse la msoTrue. (Implicit este msoFalse.)

Pentru a controla modul în care este pornită animația, setați proprietatea AdvanceMode la ppAdvanceOnTime (pentru pornire automată utilizând o sincronizare) sau ppAdvanceOnClick (pentru pornire manuală). Dacă utilizați pornirea automată, utilizați proprietatea AdvanceTime pentru a specifica numărul de secunde de așteptat înainte de a fi pornită.

Pentru a reda un efect de sunet încorporat cu tranziția, utilizați proprietatea SoundEffect a obiectului AnimationSettings pentru a returna obiectul SoundEffect, utilizați proprietatea Name pentru a specifica numele efectului de sunet, apoi utilizați metoda Play pentru a reda efectul de sunet. De asemenea, aveți posibilitatea să redați propriul fișier de sunet utilizând metoda ImportFromFile a obiectului SoundEffect și utilizând argumentul FullName pentru a specifica calea și numele fișierului de sunet.

Pentru a controla modul în care se redă un clip media, utilizați proprietatea PlaySettings a obiectului Animation Settings pentru a returna obiectul PlaySettings. De exemplu, dacă doriți ca sunetul să se repete în buclă până la următorul sunet, setați proprietatea LoopSoundUntilNext a obiectului PlaySettings în obiectul AnimationSettings la msoTrue. Valoarea implicită este msoFalse.

Puteți găsi toate aceste opțiuni apăsând F2 pentru a afișa Object Browser în VBA Editor și apoi căutându-le. De exemplu, căutați ppEntryEffect pentru a vedea toate constantele posibile pentru diferite animații.

Următorul exemplu aplică o animație particularizată primei forme din diapozitiv identificată de variabila obiect mySlide. Animația utilizează efectul de intrare Fly In From Right, redă un efect sonor dintr-un fișier, animă textul după paragrafele de prim nivel și după paragrafe întregi și pornește atunci când utilizatorul face clic:

Dim mySlide As Slide
Set mySlide = Presentations(1).Slides(2)
With mySlide.Shapes(1).AnimationSettings 
  .EntryEffect = ppEffectFlyFromRight 
  .AdvanceMode = ppAdvanceOnClick
  .SoundEffect.ImportFromFile FileName:="D:\Media\Whistle4.wav" 
  .TextLevelEffect = ppAnimateByFirstLevel 
  .TextUnitEffect = ppAnimateByParagraph 
End With 

Pentru a testa acest lucru (sau alte exemple de cod pe care le încercați în PowerPoint), trebuie doar să apăsați tasta F5 în fereastra powerpoint principală, apoi faceți clic în mod repetat pe ecran pentru a activa diferitele tranziții și efecte. Apăsați Esc când ați terminat.