Lucrul cu diapozitive

După ce ați creat sau ați deschis prezentarea pe care doriți să o modificați, aveți posibilitatea să accesați diapozitivele pe care le conține utilizând colecția Slides, care conține un obiect Slide pentru fiecare diapozitiv din prezentare. Fiecare diapozitiv este identificat după numărul său de index, dar puteți atribui nume diapozitivelor în trei moduri diferite:

Folosind variabilele obiect Apoi, puteți face referire la fiecare diapozitiv după numele variabilei obiectului.

Folosind numere ID Consultați secțiunea intitulată "Găsirea unui diapozitiv după numărul său de identificare" descrisă mai jos.

Folosind proprietatea Name Consultați secțiunea intitulată "Accesarea unui diapozitiv după nume" descrisă mai jos.

Numele unic pentru un diapozitiv este util mai ales atunci când adăugați diapozitive sau ștergeți diapozitive dintr-o prezentare, deoarece acest lucru determină modificarea numerelor de index ale diapozitivelor. Este mult mai ușor să denumiți diapozitivele decât să încercați să țineți evidența numerelor lor de index care se schimbă.

Adăugarea unui diapozitiv la o prezentare

Pentru a adăuga un diapozitiv la o prezentare, utilizați metoda Add cu colecția Slides. Sintaxa este următoarea:

expression.Add(Index, Layout)

Iată componentele acestei sintaxe:

  • expression este o expresie necesară care returnează o colecție Slides. În multe cazuri, este mai ușor să utilizați direct colecția Slides.
  • Index este un argument necesar de tip Long care specifică numărul de index pentru poziționarea diapozitivului în prezentare. De exemplu, numărul 2 face ca noul diapozitiv să fie al doilea diapozitiv din prezentare.
  • Layout este un argument necesar de tip Long care specifică aspectul pentru noul diapozitiv. Numele pentru aspect corespunde îndeaproape cu numele pe care le vedeți în caseta de dialog Insert Slide sau în panoul de activități Slide Layout. De exemplu, ppLayoutBlank specifică un diapozitiv necompletat, ppLayoutTitleOnly, un diapozitiv doar cu titlu și ppLayoutChartAndText un diapozitiv diagramă și text. Următoarele comenzi declară o variabilă obiect numită mySlide și îi atribuie un nou diapozitiv titlu adăugat la începutul prezentării active:
Dim mySlide As Slide
Set mySlide = ActivePresentation.Slides.Add(Index:=1, _
   Layout:=ppLayoutTitle)

ÎNȚELEGEREA CONSTANTELOR "MIXED"

Dacă vă uitați la lista de constante pentru proprietatea Layout, veți observa că una se numește ppLayoutMixed. Nu există niciun aspect "mixt" în lista de aspecte ale diapozitivelor PowerPoint și dacă încercați să aplicați ppLayoutMixed la un diapozitiv, VBA va returna o eroare. Aceasta se întâmplă deoarece ppLayoutMixed este valoarea pe care VBA o întoarce pentru proprietatea aspect pentru un interval de diapozitive care conține mai multe diapozitive cu modele diferite.

Alte proprietăți au valori Mixed similare pentru a indica faptul că obiectele utilizează valori diferite. De exemplu, ppTransitionSpeedMixed înseamnă că diapozitivele sau formele utilizează diferite viteze de tranziție. Cu toate acestea, nu încercați să setați o proprietate la o valoare mixtă, deoarece acest lucru returnează întotdeauna o eroare. Alegeți o altă modalitate, puteți prelua (citi) informații despre o valoare mixtă, dar nu le puteți seta (scrie).

Inserarea diapozitivelor dintr-o prezentare existentă

Atunci când creați automat prezentări, este adesea util să inserați diapozitive dintr-o prezentare existentă. Pentru aceasta, utilizați metoda InsertFromFile din colecția Diapozitive. Sintaxa este următoarea:

expression.InsertFromFile(FileName, Index, SlideStart, SlideEnd)

Iată componentele acestei sintaxe:

  • expression este o expresie necesară care returnează o colecție Slides. De multe ori, veți dori să utilizați direct colecția Slides.
  • FileName este un argument de tip String care specifică fișierul din care se introduc diapozitivele.
  • Index este un argument necesar de tip Long care specifică poziția diapozitivului în prezentarea deschisă unde vor fi introduse diapozitivele.
  • SlideStart este un argument opțional de tip Long care specifică primul diapozitiv care va fi inserat. Dacă omiteți SlideStart, PowerPoint începe de la primul diapozitiv.
  • SlideEnd este un argument opțional de tip Long care specifică ultimul diapozitiv care va fi inserat. Dacă omiteți SlideEnd, PowerPoint merge până la ultimul diapozitiv.

De exemplu, următoarea instrucțiune inserează diapozitivele de la 2 la 8 din prezentarea denumită Handbook.pptm stocată în folderul Z:\Transfer\Presentations, plasând diapozitivele începând de la al cincilea diapozitiv din prezentarea deschisă Corporate.pptm:

Presentations("Corporate.pptm").Slides.InsertFromFile _
FileName:="Z:\Transfer\Presentations\Handbook.pptm", Index:=5, _
SlideStart:=2, SlideEnd:=8

Găsirea unui diapozitiv după numărul său de identificare ID

Când lucrați programatic cu o prezentare, poate fi dificil să urmăriți un anumit diapozitiv, mai ales atunci când adăugați, ștergeți, inserați, copiați sau mutați diapozitive, modificând astfel numerele de index ale diapozitivelor.

Pentru a vă ajuta, PowerPoint atribuie un număr ID de diapozitiv fiecărui diapozitiv atunci când este creat. Numărul ID-ului diapozitivului nu se modifică atunci când mutați un diapozitiv într-o poziție diferită din prezentare, spre deosebire de numărul de index, care reflectă întotdeauna poziția diapozitivului în prezentare. Aveți posibilitatea să verificați numărul de identificare al unui diapozitiv returnând proprietatea SlideID a obiectului Diapozitiv corespunzător.

Pentru a găsi un diapozitiv după numărul său de identificare, utilizați metoda FindBySlideID din colecția Slides. Sintaxa este următoarea:

expression.FindBySlideID(SlideID)

Aici, expression este o expresie necesară care returnează o colecție Slides. SlideID este un argument necesar de tip Long care specifică numărul de identificare al diapozitivului pe care doriți să îl aflați.

Următorul exemplu declară o variabilă de tip Long denumită TargetSlide și îi atribuie un diapozitiv nou adăugat la poziția a cincea din index în prezentarea activă, inserează o prezentare completă de la poziția celui de-al treilea indice, apoi utilizează metoda FindBySlideID pentru a returna diapozitiv identificat de TargetSlide și aplică un șablon diferit. Această abordare este similară cu crearea variabilelor obiect pentru diapozitive, așa este descris mai devreme în acest capitol. Cu toate acestea, aici creați variabile de tip Long pentru a deține numerele id-ul în locul variabilelor obiect:

Dim TargetSlide As Long
TargetSlide = ActivePresentation.Slides.Add(Index:=5, _
    Layout:=ppLayoutFourObjects).SlideID Presentations("Corporate.pptm").Slides.InsertFromFile _
    FileName:="Z:\Transfer\Presentations\Handbook.pptm", Index:=3 
ActivePresentation.Slides.FindBySlideID(TargetSlide).ApplyTemplate _
    FileName:="C:\Program Files\Microsoft Office\Templates\Presentation\Designs\Brain Blitz.potm"

Modificarea aspectului unui diapozitiv existent

Pentru a modifica aspectul unui diapozitiv existent, setați proprietatea Layout. De exemplu, următoarea instrucțiune modifică aspectul primului diapozitiv din prezentarea activă la aspectul clip-art-and-vertical-text:

ActivePresentation.Slides(1).Layout = ppLayoutClipArtAndVerticalText

Când modificați aspectul unui diapozitiv, PowerPoint mută conținutul existent pentru a permite adăugarea oricăror obiecte noi necesare la diapozitiv.

Ștergerea unui diapozitiv existent

Pentru a șterge un diapozitiv existent, utilizați metoda Delete cu obiectul Slide corespunzător. De exemplu, următoarea declarație șterge primul diapozitiv din prezentarea activă:

ActivePresentation.Slides(1).Delete

Rețineți că folosind VBA, PowerPoint nu mai cere confirmarea ștergerii unui diapozitiv.

Copierea și lipirea unui diapozitiv

Pentru a copia un diapozitiv, utilizați metoda Copy a obiectului Slide corespunzător. Metoda Copy nu are argumente. (De asemenea, puteți decupa un diapozitiv utilizând metoda Cut, care nu are argumente.)

Pentru a adăuga diapozitivul copiat, utilizați metoda Paste din colecția Slides. Metoda Paste are un argument Index care specifică poziția diapozitivului unde va fi adăugat diapozitivul copiat.

De exemplu, următoarele comenzi copie primul diapozitiv din prezentarea activă și îl adaugă în al cincilea diapozitiv:

ActivePresentation.Slides(1).Copy ActivePresentation.Slides.Paste Index:=5

Duplicarea unui diapozitiv

În loc să copiați și să lipiți, aveți posibilitatea să duplicați direct un diapozitiv utilizând metoda Duplicate a obiectului Slide. Această metodă nu are argumente și plasează dublura diapozitivului imediat după original în lista de numere index. De exemplu, următoarea comandă dublează al patrulea diapozitiv din prezentarea activă, plasând copia în poziția a cincea din index:

ActivePresentation.Slides(4).Duplicate

Mutarea unui diapozitiv

În loc să tăiați (Cut) și să lipiți (Paste) un diapozitiv, îl puteți muta direct utilizând metoda MoveTo cu obiectul Slide corespunzător. Mutarea unui diapozitiv are același efect final ca tăierea și lipirea acestuia, dar are avantajul de a nu modifica conținutul Clipboard-ului (pe care poate trebuie să îl păstrați pentru utilizator sau în alte scopuri). Sintaxa pentru metoda MoveTo este următoarea:

expression .MoveTo(ToPos)

Aici, expression este o expresie necesară care returnează un obiect Slide, iar ToPos este un argument necesar de tip Long care specifică poziția indexului în care doriți să mutați diapozitivul.

De exemplu, următoarea comandă mută al treilea diapozitiv din prezentare identificat de variabila obiect myPresentation la începutul prezentării:

myPresentation.Slides(3).MoveTo ToPos:=1

Accesarea unui diapozitiv după nume

În loc să accesați un diapozitiv după numărul său de index, aveți posibilitatea să îi atribuiți un nume utilizând proprietatea Name a obiectului Slide. De exemplu, următoarele declarații atribuie numele „Introducerea președintelui” la diapozitivul al cincilea din prezentarea activă și apoi utilizează metoda Select a obiectului Slide pentru a selecta acel diapozitiv după nume:

ActivePresentation.Slides(1).Name = "Introducerea presedintelui" 
ActivePresentation.Slides("Introducerea presedintelui").Select

Lucrul cu un interval de diapozitive

Pentru a lucra cu un interval de diapozitive, utilizați metoda Range a colecției Slides pentru a returna un obiect SlideRange care reprezintă diapozitivele. Obiectul SlideRange poate reprezenta un singur diapozitiv, dar de obicei este mai bine să îl utilizați pentru a reprezenta un interval de diapozitive. (Puteți accesa un singur diapozitiv mai ușor după numărul său de index sau după un nume pe care îl atribuiți decât printr-un obiect SlideRange.)

Pentru a returna un obiect SlideRange care cuprinde două sau mai multe diapozitive, utilizați funcția Array cu o listă delimitată prin virgulă a diapozitivelor. Lista poate utiliza fie numerele de index, fie numele diapozitivelor. De exemplu, următoarele declarații declară variabila mySlideRange a obiectului SlideRange și îi atribuie primele cinci diapozitive în prezentarea deschisă numită HR.pptm:

Dim mySlideRange As SlideRange
Set mySlideRange = _
Presentations("HR.pptm").Slides.Range(Array(1, 2, 3, 4, 5))

Următoarea instrucțiune atribuie variabilei mySlideRange a obiectului SlideRange diapozitivele denumite Intro și Outro în prezentarea activă:

Set mySlideRange = ActivePresentation.Slides.Range(Array("Intro", "Outro"))

Formatarea unui diapozitiv

Aveți posibilitatea să aplicați un șablon de proiectare unui diapozitiv utilizând metoda ApplyTemplate, așa cum s-a descris mai sus, la „Aplicarea unui șablon la o prezentare, la un diapozitiv sau la o gamă de diapozitive”. De asemenea, aveți posibilitatea să aplicați un fundal sau o schemă de culori, cum este descris în secțiunile următoare.

Aplicarea unui fundal la unul sau mai multe diapozitive

Pentru a aplica un fundal unui diapozitiv sau mai multor diapozitive, utilizați proprietatea Background a obiectului Slide corespunzător sau a obiectului SlideRange pentru a returna obiectul ShapeRange care reprezintă fundalul diapozitivului sau al diapozitivelor. Apoi utilizați obiectul Fill pentru a seta o culoare, o umplere, un gradient sau o imagine în fundal.

În următorul exemplu se aplică imaginea Winter.jpg din folderul C:\Sample Pictures la al patrulea diapozitiv din prezentarea denumită Corporate.pptm. Exemplul setează proprietatea FollowMasterBackground la msoFalse, făcând diapozitivul să utilizeze un fundal diferit de cel din coordonatorul de diapozitive (slide master); de asemenea, setează proprietatea DisplayMasterShapes la msoFalse, împiedicând diapozitivul să afișeze formele din coordonatorul de diapozitive:

With Presentations("Corporate.pptm").Slides(4)
   .FollowMasterBackground = msoFalse 
   .DisplayMasterShapes = msoFalse 
   With .Background
      .Fill.ForeColor.RGB = RGB(255, 255, 255)
      .Fill.BackColor.SchemeColor = ppAccent1 
      .Fill.UserPicture "C:\Sample Pictures\Winter.jpg"
   End With 
End With

Aplicarea unei scheme de culori la un diapozitiv

O schemă de culori este un grup de opt culori care sunt utilizate pentru a crea aspectul titlului, fundalului și al altor elemente ale unui diapozitiv, diapozitiv sau pagină de note. VBA utilizează un obiect RGBColor pentru a reprezenta fiecare culoare și un obiect ColorScheme pentru a reprezenta fiecare schemă de culori. Obiectele ColorScheme sunt adunate într-o colecție ColorSchemes pentru întreaga prezentare.

Pentru a modifica schema de culori a unui diapozitiv sau a mai multor diapozitive, utilizați proprietatea ColorScheme a obiectului Slide corespunzător sau a obiectului SlideRange pentru a returna obiectul ColorScheme, apoi lucrați cu metoda Colors pentru a specifica culoarea. Sintaxa este următoarea:

expression.Colors(SchemeColor)

Aici, expression este o expresie necesară care returnează un obiect ColorScheme. SchemeColor este un argument necesar care specifică ce culoare din schema de culori să seteze — de exemplu, ppAccent1 (pentru primul accent din schema de culori), ppBackground (pentru culoarea de fundal) sau ppTitle (pentru culoarea titlului).

Următoarea comandă setează culoarea de fundal a schemei de culori pentru primele trei diapozitive din prezentarea activă la negru, adică RGB(0, 0, 0):

ActivePresentation.Slides.Range(Array(1, 2, 3)) _
.ColorScheme.Colors(ppBackground).RGB = RGB(0, 0, 0)

Setarea unei tranziții pentru un diapozitiv, a unui interval de diapozitive sau a unui coordonator (Master)

Pentru a seta o tranziție pentru un diapozitiv, un interval de diapozitive sau un coordonator, utilizați proprietatea SlideShowTransition a obiectului Slide, SlideRange sau Master pentru a returna obiectul SlideShowTransition.Pentru a specifica viteza cu care se execută tranziția, setați proprietatea Speed la ppTransitionSpeedFast, ppTransitionSpeedMedium sau ppTransitionSpeedSlow.

Crearea unor tranziții eficiente între diapozitive

Utilizarea tranzițiilor între diapozitive poate face ca o prezentare să arate ca și cum ar fi făcută de profesioniști sau de amatori.

Pentru a specifica ce efect să utilizați, setați proprietatea EntryEffect la o constantă. Există prea multe constante pentru a le scrie aici, dar numele lor sunt, în general, suficient de descriptive pentru a fi ușor de descifrat. De exemplu, constanta ppEffectBlindsHorizontal generează o tranziție care amintește de o ajustare a jaluzelelor venețiene și ppEffectDissolve este un efect de topire.

Dar ar trebui să evitați cele două efecte, și de cele mai multe alte tranziții disponibile, cu excepția cazului în care doriți să folosiți efecte de tranziție stângace. Televiziunea și filmele contemporane folosesc tranziții clare, subtile și discrete între scene. Iar diapozitivele sunt scene simple. Deci, ar trebui să renunțați la tranzițiile vechi, cum ar fi jaluzele venețiene sau tranziții brute, cum ar fi ppEffectDissolve, care este foarte pixelată.

Pentru a descoperi care dintre efectele de tranziție sunt sofisticate și discrete, încercați-le. Aveți posibilitatea să examinați toate tranzițiile făcând clic pe fila Tranziții (Transitions) de pe Panglica PowerPoint. Apoi faceți clic pe orice tranziție de diapozitiv pe care doriți să o vedeți.

Tranziția implicită este o dizolvare destul de bună, dar dacă doriți să încercați o altă tranziție elegantă, experimentați ppEffectFade. Este similară cu cea implicită. De asemenea, încercați să experimentați cu fila Animații (Animations) de pe Panglica PowerPoint, care guvernează modul în care animați diferitele obiecte de tip formă dintr-un diapozitiv.

Și încercați să modificați viteza de tranziție pentru a potrivi animația cu subiectul prezentării.

Pentru a controla modul în care avansează diapozitivul, setați proprietatea AdvanceOnTime la msoTrue (pentru avansare automată) sau msoFalse (pentru avansare manuală). Dacă utilizați avansarea automată, utilizați proprietatea AdvanceTime pentru a specifica numărul de secunde. Dacă doriți ca diapozitivul să avanseze atunci când utilizatorul face clic, setați proprietatea AdvanceOnClick la msoTrue. (Puteți seta atât AdvanceOnTime și AdvanceOnClick la msoTrue. Diapozitivul avansează manual dacă utilizatorul face clic înainte de expirarea intervalului ales în AdvanceTime.)

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

PowerPoint 2016 poate reda oricare dintre următoarele tipuri de fișiere audio: .aiff, .au, .mid, .midi, .mp3, .m4a, .mp4, .wav sau .wma. Dar fiți conștienți de faptul că, chiar dacă un fișier are unul dintre aceste extensii de fișiere, tot nu ar putea fi redate în cazul în care nu este disponibil un codec corespunzător. De aceea este bine să faceți mai întâi un test de prezentare cu echipamentul pe care îl veți folosi pentru prezentarea oficială.

Dacă doriți ca sunetul să se repete până la următorul sunet, setați proprietatea LoopSoundUntilNext a obiectului SlideShowTransition la msoTrue. Valoarea implicită este msoFalse.

Următorul exemplu stabilește o tranziție pentru al doilea diapozitiv din prezentarea activă. Tranziția utilizează efectul Fade care rulează la viteză medie, stabilește avansul fie la clic, fie după 30 de secunde și redă un fișier de sunet dintr-o sursă externă, fără buclă (repetare):

With ActivePresentation.Slides(2)
With .SlideShowTransition
   .EntryEffect = ppEffectFade
   .Speed = ppTransitionSpeedMedium
   .AdvanceOnClick = msoTrue
   .AdvanceOnTime = msoTrue
   .AdvanceTime = 30
   .SoundEffect.ImportFromFile _
      FileName:="d:\Sounds\Crescendo.wav"
   .LoopSoundUntilNext = msoFalse 
End With 
End With

Pentru a vedea acest efect, aveți posibilitatea să apăsați F5 în fereastra Cod, să comutați la fereastra PowerPoint, apoi să apăsați din nou F5. (De asemenea, va trebui fie să ștergeți cele două linii de cod care se referă la sunet, fie să furnizați o cale de fișier către un fișier de sunet care se află pe computerul dvs.)