Configurarea și executarea unei expuneri de diapozitive

Nu numai că puteți asambla și formata o expunere de diapozitive utilizând VBA; o puteți și rula, folosind VBA. Pentru a configura o expunere de diapozitive, utilizați proprietatea SlideShowSettings a obiectului Prezentare pentru a returna obiectul SlideShowSettings. Când executați expunerea de diapozitive, VBA creează un obiect SlideShowWindow, pe care îl puteți manipula pentru a controla expunerea de diapozitive.

Controlul Show Type

Pentru a specifica tipul de afișare, setați proprietatea ShowType a obiectului SlideShowSettings la ppShowTypeSpeaker (pentru o prezentare standard pe ecran complet prezentată la un difuzor), ppShowTypeKiosk (pentru o prezentare de tip chioșc) sau ppShowTypeWindow (pentru o "răsfoire individuală", care apare într-o fereastră). Pentru o afișare într-o fereastră, aveți posibilitatea să utilizați proprietățile Left și Top pentru a specifica poziția colțului din stânga sus al ferestrei și proprietățile Height și Width pentru a specifica dimensiunea acesteia.

Pentru a controla dacă se utilizează animație și narațiune, setați proprietatea ShowWithAnimation și proprietatea ShowWithNarration a obiectului SlideShowSettings la msoTrue sau msoFalse.

Pentru a controla dacă prezentarea se repetă în buclă până când este oprită, setați proprietatea LoopUntilStopped a obiectului SlideShowSettings la msoTrue sau msoFalse.

Pentru a controla modul în care avansează prezentarea, setați proprietatea AdvanceMode la ppSlideShowManualAdvance (pentru avansare manuală), ppSlideShowUseSlideTimings (pentru avansarea automată utilizând temporizările deja setate) sau ppSlideShowRehearseNewTimings (pentru a repeta noi sincronizări în timp ce este redată prezentarea).

Următorul exemplu setează prezentarea activă care rulează ca o prezentare de tip chioșc care va avansa automat utilizând temporizările și se va repeta în buclă până când este oprită:

With ActivePresentation.SlideShowSettings 
  .LoopUntilStopped = msoCTrue 
  .AdvanceMode = ppSlideShowUseSlideTimings 
  .ShowType = ppShowTypeKiosk 
  .Run 
End With

Exemplul următor setează prezentarea numită Corporate.pptm să ruleze în modul difuzor/speaker (ecran complet), dimensionând imaginea la 800x600 pixeli și poziționând-o în colțul din stânga sus a ecranului. Prezentarea utilizează avansarea manuală:

With Presentations("Corporate.pptm").SlideShowSettings 
  .LoopUntilStopped = msoFalse 
  .ShowType = ppShowTypeSpeaker 
  .AdvanceMode = ppSlideShowManualAdvance 
  With .Run
     .Height = 600
     .Width = 800
     .Left = 0 .Top = 0 
  End With 
End With

Crearea unei expuneri particularizate

Expunerile particularizate dintr-o prezentare sunt reprezentate de colecția NamedSlideShows din obiectul SlideShowSettings. Utilizați proprietatea NamedSlideShows a obiectului SlideShowSettings pentru a returna colecția NamedSlideShows.

Pentru a crea o expunere particularizată, utilizați metoda Add din colecția NamedSlideShows. Sintaxa este după urmează:

expression.Add(Name, SafeArrayOfSlideIDs)

Aici, expression este o expresie necesară care returnează un obiect NamedSlideShows. Name este un argument necesar de tip String care specifică numele care va fi atribuit la noua expunere particularizată. SafeArrayOfSlideIDs este un argument necesar de tip Variant care specifică numerele sau numele diapozitivelor care vor fi incluse.

De exemplu, următoarele comenzi declară o matrice de tip Long; i se atribuie diapozitivele 2, 4, 5 și 10 din prezentarea deschisă numită Corporate.pptm; și se creează o nouă expunere particularizată denumită Scurtă prezentare utilizând următoarea matrice:

Dim myArray(4) As Long 
With Presentations("Corporate.pptm") 
  myArray(1) = .Slides(2).SlideID 
  myArray(2) = .Slides(4).SlideID 
  myArray(3) = .Slides(5).SlideID 
  myArray(4) = .Slides(10).SlideID
  .SlideShowSettings.NamedSlideShows.Add Name:="Scurta prezentare", _
    safeArrayOfSlideIDs:=myArray
End With

Ștergerea unei expuneri particularizate

Pentru a șterge o expunere particularizată, utilizați metoda Delete cu obiectul NamedSlideShow corespunzător. De exemplu, următoarea instrucțiune șterge expunerea particularizată denumită Overview din prezentarea activă:

ActivePresentation.SlideShowSettings.NamedSlideShows("Overview").Delete

Pornirea unei expuneri de diapozitive

Pentru a porni o expunere de diapozitive utilizând întreaga prezentare, utilizați metoda Run a obiectului SlideShow Settings. De exemplu, următoarea instrucțiune pornește expunerea de diapozitive care se execută în prezentarea identificată de variabila obiect myPresentation:

myPresentation.SlideShowSettings.Run

Pentru a afișa numai câteva diapozitive dintr-o prezentare, setați proprietatea RangeType a obiectului SlideShowSettings la ppShowSlideRange, utilizați proprietatea StartingSlide a obiectului SlideShowSettings pentru a specifica primul diapozitiv și proprietatea EndingSlide pentru a specifica ultimul diapozitiv, apoi utilizați metoda Run pentru a reda prezentarea.

Următorul exemplu afișează diapozitivele de la 4 până la 8 în prezentarea denumită Corporate.pptm:

With Presentations("Corporate.pptm").SlideShowSettings 
  .RangeType = ppShowSlideRange 
  .StartingSlide = 4 
  .EndingSlide = 8
  .Run
End With

Pentru a începe să executați o expunere particularizată, setați proprietatea RangeType a obiectului SlideShowSettings la ppShowNamedSlideShow, utilizați proprietatea SlideShowName pentru a specifica numele expunerii particularizate, apoi utilizați metoda Run pentru a executa expunerea particularizată. Următorul exemplu afișează expunerea particularizată denumită Scurtă expunere în prezentarea activă:

With ActivePresentation.SlideShowSettings 
  .RangeType = ppShowNamedSlideShow 
  .SlideShowName = "Scurta expunere"
  .Run
End With

Când porniți o expunere de diapozitive, VBA creează un obiect SlideShowWindow care reprezintă obiectul. Aveți posibilitatea să accesați obiectul SlideShowWindow fie prin colecția SlideShowWindows (un obiect creatabil care conține un obiect SlideShowWindow pentru fiecare expunere de diapozitive deschise) sau prin proprietatea SlideShowWindow a obiectului Presentation. Dacă știți ce prezentare se execută, este mai ușor să treceți prin obiectul Presentation corespunzător.

Modificarea dimensiunii și poziției unei expuneri de diapozitive

Pentru a afla dacă o prezentare de diapozitive este afișată pe ecran complet sau într-o fereastră, verificați proprietatea IsFullScreen a obiectului SlideShowWindow. Dacă proprietatea IsFullScreen returnează -1, prezentarea este pe ecran complet; dacă proprietatea returnează 0, prezentarea este într-o fereastră.

Pentru a seta înălțimea și lățimea ferestrei de diapozitive în pixeli, utilizați proprietățile Height și Width. Pentru a-i seta poziția, utilizați proprietatea Top pentru a specifica distanța în pixeli de la marginea superioară a prezentării până la partea de sus a ferestrei sau ecranului, iar proprietatea Left pentru a specifica distanța în pixeli de la marginea din stânga a prezentării până la marginea stângă a ferestrei sau a ecranului.

Trecerea de la un diapozitiv la altul

În afară de controlul poziției și dimensiunii prezentării, majoritatea acțiunilor pe care le puteți întreprinde cu o prezentare implică obiectul View. Pentru a afla ce diapozitiv este afișat, returnați proprietatea CurrentShowPosition:

MsgBox ActivePresentation.SlideShowWindow.View.CurrentShowPosition

Pentru a afișa primul diapozitiv din prezentare, utilizați metoda First. Pentru a afișa ultimul diapozitiv, utilizați metoda Last:

ActivePresentation.SlideShowWindow.View.First
ActivePresentation.SlideShowWindow.View.Last

Pentru a afișa diapozitivul următor, utilizați metoda Next. Pentru a afișa diapozitivul anterior, utilizați metoda Previous. Iată un exemplu:

ActivePresentation.SlideShowWindow.View.Previous

Pentru a afișa un anumit diapozitiv în expunerea de diapozitive, utilizați metoda GotoSlide a obiectului View, utilizând argumentul Index pentru a specifica numărul diapozitivului. De exemplu, următoarea instrucțiune afișează diapozitivul 5 în prima fereastră deschisă de expunere de diapozitive:

Application.SlideShowWindows(1).View.GotoSlide Index:=5

Întreruperea spectacolului și utilizarea ecranelor albe și negre

Pentru a afișa un ecran alb, setați proprietatea de stat la ppSlideShowWhiteScreen. Pentru a afișa un ecran negru, setați proprietatea de stare a obiectului View la ppSlideShowBlackScreen:

ActivePresentation.SlideShowWindow.View.State = ppSlideShowWhiteScreen ActivePresentation.SlideShowWindow.View.State = ppSlideShowBlackScreen

Pentru a dezactiva ecranul negru sau ecranul alb și a pune spectacolul în funcțiune din nou, setați proprietatea State la ppSlideShowRunning.

Pentru a întrerupe prezentarea, setați proprietatea State a obiectului View la ppSlideShowPaused. Pentru a porni din nou expunerea, setați proprietatea State la ppSlideShowRunning, ca în acest exemplu:

With ActivePresentation.SlideShowWindow.View 
  .State = ppSlideShowPaused 
  .State = ppSlideShowRunning 
End With

Pornirea și oprirea expunerilor particularizate

Pentru a reda o expunere particularizată, utilizați metoda GotoNamedShow și utilizați argumentul SlideShowName pentru a specifica numele expunerii particularizate. De exemplu, următoarea instrucțiune pornește expunerea particularizată denumită Expunere nouă:

SlideShowWindows(1).GotoNamedShow SlideShowName:="Expunere noua"

Pentru a ieși dintr-o expunere particularizată, utilizați metoda EndNamedShow, apoi utilizați metoda Next pentru a reda prezentarea. PowerPoint afișează apoi primul diapozitiv din prezentarea completă:

With ActivePresentation.SlideShowWindow.View 
  .EndNamedShow 
  .Next 
End With

Ieșirea dintr-o expunere de diapozitive

Pentru a ieși din expunerea de diapozitive, utilizați metoda Exit din proprietatea View a obiectului SlideShowWindow. De exemplu, următoarea instrucțiune iese din expunerea de diapozitive din prezentarea activă:

ActivePresentation.SlideShowWindow.View.Exit