Lucrul cu Windows și Views

Pentru ca fereastra PowerPoint să se afle în poziția/ mărimea dorită, va trebui adesea să lucrați cu Window și cu View. PowerPoint utilizează două tipuri de ferestre:

  • Document Windows sunt ferestre care conțin documente (fișiere de prezentare) în loc de slide show-uri. VBA consideră că ferestrele de documente sunt obiecte DocumentWindow organizate în colecția DocumentWindows, dar le reprezintă ca obiecte Window organizate în colecția Windows. (Sună ciudat, dar veți vedea cum funcționează în scurt timp.)
  • Slide-show Windows sunt ferestre care conțin expuneri ale diapozitivelor deschise. VBA folosește obiecte SlideShowWindow și colecția SlideShowWindows pentru a reprezenta ferestrele slide-show ale diapozitivelor.

Colecția Windows conține câte un obiect Window pentru fiecare fereastră deschisă din aplicația PowerPoint. Când deschideți o prezentare în timp ce lucrați interactiv, PowerPoint deschide o fereastră astfel încât să puteți vedea prezentarea. Când o macrocomandă deschide o prezentare prin VBA, puteți seta argumentul WithWindow al metodei Add la msoFalse pentru a împiedica ca PowerPoint să afișeze utilizatorului o fereastră pentru prezentare. În interfața cu utilizatorul, aveți posibilitatea să deschideți mai multe ferestre, după este necesar, de exemplu, făcând clic pe butonul New Window din secțiunea Window din fila View de pe panglică.

Lucrul cu fereastra activă

PowerPoint utilizează obiectul ActiveWindow pentru a reprezenta fereastra activă (fereastra care are în prezent focalizarea și este, astfel, cea care acceptă clicuri de mouse sau tastare).

La un moment dat este activă o singură fereastră. Fereastra activă este întotdeauna primul obiect Window din colecția Windows – Windows(1).

Dacă nu este deschisă nici o fereastră, sau toate ferestrele deschise sunt ascunse, nu există nici o fereastră activă și dacă folosiți obiectul ActiveWindow, VBA va returna o eroare. Pentru a vă asigura că este deschisă o fereastră, verificați dacă proprietatea Count din colecția Windows este 0. Iată un exemplu:

If Windows.Count = 0 Then MsgBox "Nu este activa nicio fereastra.", vbOkOnly + _ 
    vbExclamation, "Nicio fereastra deschisa"

Când lucrați cu prezentări utilizând VBA, puteți folosi obiectul ActiveWindow pentru a accesa o prezentare, în special într-o macrocomandă pe care utilizatorul o execută după alegerea prezentării, diapozitivului sau a altui obiect pe care dorește să îl modifice. În alte cazuri, obiectul ActivePresentation este o modalitate mai convenabilă de a accesa prezentarea cu care trebuie să lucrați sau puteți accesa prezentarea prin colecția Presentations.

Deschiderea unei ferestre noi într-o prezentare

Pentru a deschide o fereastră nouă, utilizați metoda NewWindow a obiectului Window corespunzător. Această metodă nu are argumente. De exemplu, următoarea instrucțiune deschide o fereastră nouă care arată conținutul ferestrei active:

ActiveWindow.NewWindow

Închiderea unei ferestre

Pentru a închide o fereastră, utilizați metoda Close cu obiectul Window corespunzător. În PowerPoint, metoda Close nu are argumente.

Fiți atent la închiderea ferestrelor cu ajutorul unei macrocomenzi

Dacă fereastra pe care o închideți este ultima fereastră deschisă pentru acea prezentare, PowerPoint închide pur și simplu fereastra fără a solicita utilizatorului să salveze modificările nesalvate. Din acest motiv, aveți grijă la închiderea ferestrelor sau la codul dvs.

De exemplu, puteți închide toate ferestrele, cu excepția uneia dintr-o prezentare:

Do While ActivePresentation.Windows.Count > 1
ActivePresentation.Windows(ActivePresentation.Windows.Count).Close
Loop

Alternativ, se poate utiliza metoda Save pentru a salva o prezentare înainte de a închide ultima sa fereastră, ca în exemplul următor. (Mai simplu, puteți utiliza metoda Close pentru a închide prezentarea în sine după salvarea acesteia.)

With ActivePresentation 
  If .Path = "" Then
MsgBox "Salvati aceasta prezentare.", vbOKOnly
Else
.Save
    For Each myWindow In Windows .Close
    Next myWindow 
  End If 
End With 

Activarea unei ferestre

Pentru a activa o fereastră sau unul dintre panourile sale, utilizați metoda Activate a obiectului fereastră corespunzător. De exemplu, următoarea instrucțiune activează prima fereastră deschisă în prezentarea Benefits.pptm:

Presentations("Benefits.pptm").Windows(1).Activate

Aranjarea și redimensionarea ferestrelor

Pentru a aranja ferestrele, utilizați metoda Arrange cu colecția Windows corespunzătoare. Sintaxa este următoarea:

expression.Arrange(ArrangeStyle)

Aici, expression este o expresie necesară care returnează o colecție Windows. ArrangeStyle este un argument obligatoriu care specifică modul de aranjare al ferestrelor: ppArrangeCascade (pune ferestrele în cascadă într-un aranjament care le suprapune și vă permite să vedeți bara de titlu a fiecărei ferestre, dar numai conținutul ferestrei din față) sau ppArrangeTiled (stivuiește ferestrele; setarea implicită).

Aveți posibilitatea să maximizați, să minimizați sau să restaurați fereastra aplicației setând proprietatea WindowState a obiectului Application la ppWindowMaximized, ppWindowMinimized sau ppWindowNormal. În mod similar, în fereastra aplicației, aveți posibilitatea să maximizați, să minimizați sau să restaurați un document setându-i proprietatea WindowState.

Atunci când o fereastră este într-o stare "normală" (ppWindowNormal, nemaximizată sau minimizată), o puteți poziționa utilizând proprietățile Top și Left pentru a specifica poziția colțului din stânga sus al ferestrei și dimensiona prin setarea proprietăților sale Height și Width.

Următorul exemplu maximizează fereastra aplicației și aranjează în cascadă ferestrele documentului din ea:

Application.WindowState = ppWindowMaximized 
Windows.Arrange ArrangeStyle:=ppArrangeCascade

Modificarea vizualizării

Pentru a modifica vizualizarea dintr-o fereastră, setați proprietatea ViewType a obiectului WIndow corespunzător la una dintre aceste 12 constante: ppViewHandoutMaster, ppViewMasterThumbnails, ppViewNormal, ppViewNotesMaster, ppViewNotesPage, ppViewOutline, ppViewPrintPreview, ppViewSlide, ppViewSlideMaster, ppViewSlideSorter, ppViewThumbnails sau ppViewTitleMaster. De exemplu, următoarea instrucțiune comută fereastra activă în vizualizarea Sortare diapozitive:

ActiveWindow.ViewType=ppViewSlideSorter

Pentru a mări vizualizarea, specificați o valoare de la 10 la 400 pentru proprietatea Zoom a obiectului View pentru fereastra corespunzătoare. Valoarea reprezintă procentul de zoom, dar nu includeți un semn procentual. De exemplu, următoarea instrucțiune mărește fereastra activă la 150 la sută:

ActiveWindow.View.Zoom = 150

Lucrul cu panouri

Obiectul Pane reprezintă un panou al ferestrei PowerPoint din vizualizarea Slide. Panoul Outline este reprezentat de numărul de index 1, panoul Slide de numărul de index 2 și panoul Note, de numărul de index 3. Aveți posibilitatea să activați un panou utilizând metoda Activate cu obiectul panou corespunzător. Următorul exemplu comută vizualizarea din fereastra activă la ViewSlide și activează panoul Outline:

With ActiveWindow
   .ViewType = ppViewSlide 
   .Panes(1).Activate 
End With

Pentru a modifica dispunerea panourilor într-o fereastră PowerPoint în vizualizarea Slide, utilizați proprietatea SplitHorizontal și proprietatea SplitVertical a obiectului fereastră.

Proprietatea SplitHorizontal controlează procentul din lățimea ferestrei documentului pe care îl ocupă panoul Outline, iar proprietatea SplitVertical controlează procentul din înălțimea ferestrei documentului pe care îl ocupă panoul Slide. Următorul exemplu setează panoul Outline la 25 la sută din lățimea ferestrei documentului (lăsând 75 la sută pentru panoul diapozitiv) și panoul Slide la 75 la sută din înălțimea ferestrei (lăsând 25 la sută pentru panoul Note):

With ActiveWindow
    .SplitHorizontal = 25 
    .SplitVertical = 75 
End With