Modelul de obiecte PowerPoint
În acest capitol se prezinta principalele obiecte din modelul de obiecte Microsoft PowerPoint 97. Pentru a vedea o imagine a întregului model de obiecte PowerPoint ca si enumerarile complete ale proprietatilor si metodelor se vor consulta, totusi, intrarile respective din Help.
Afisarea sistemului de help Microsoft PowerPoint Visual Basic este posibila daca la instalarea aplicatiei PowerPoint s-a selectat instalarea componentei Online Help for Visual Basic. Pentru a vedea continutul si indexul acestui sistem de fisiere Help, click pe Contents and Index în meniul Help din Visual Basic Editor (VBE), iar în fisa Contents din dialogul Help Topics dublu click pe "Microsoft PowerPoint Visual Basic Reference".
La pornirea unei sesiuni PowerPoint, se creeaza un obiect Application. Proprietatile si metodele acestui obiect sunt utilizate pentru controlarea atributelor si comportarii întregii aplicatii si obtinerea accesului la restul modelului de obiecte PowerPoint.
Urmatoarele proprietati pot fi utilizate fara calificatorul Application, constituind accesori la modelul de obiecte: ActivePresentation, ActiveWindow, AddIns, Assistant, CommandBars, Presentations, SlideShowWindows si Windows. Pentru alte proprietati si metode este necesara calificarea. De exemplu:
Application.QuitCele mai utilizate proprietati si metode sunt prezentate, dupa functionalitate, în continuare.
Din cod executate în PowerPoint, obiectul Application este referit prin cuvântul cheie Application, ca în exemplul anterior.
Daca se atribuie unei variabile obiectul Application, variabila se va declara de tip PowerPoint.Application, dupa modelul
Dim appPPT As PowerPoint.ApplicationSe poate utiliza de asemenea proprietatea Application a oricarui obiect PowerPoint pentru a returna obiectul Application PowerPoint. Aceasta metoda este utila atunci când este necesar sa se obtina referinta la obiectul Application dintr-o prezentare PowerPoint scufundata în documentul altei aplicatii. Urmatorul exemplu, executat din Excel, stabileste o variabila la obiectul aplicatie PowerPoint utilizând primul shape (care trebuie sa fie o prezentare PowerPoint) din foaia de calcul.
Dim appPPT As PowerPoint.ApplicationUrmatorul exemplu creeaza un obiect Application PowerPoint din alta aplicatie, porneste PowerPoint si deschide o prezentare existenta:
Set ppt = CreateObject("Powerpoint.Application.8")Un rezumat al proprietatilor si metodelor care controleaza aspectul ferestrei în care se executa PowerPoint este prezentat în tabelul urmator.
Actiunea |
Proprietatea sau metoda utila |
Activarea ferestrei aplicatiei PowerPoint |
Metoda Activate |
Verificarea faptului ca fereastra aplicatiei PowerPoint este activa |
Proprietatea Active |
Stabilirea sau returnarea textului care apare în bara de titlu a aplicatiei PowerPoint |
Proprietatea Caption |
Stabilirea sau returnarea marimii si pozitiei ferestrei PowerPoint pe ecran |
Proprietatile Height, Left, Top si Width |
Stabilirea sau returnarea vizibilitatii ferestrei aplicatiei. Trebuie data valoarea True la crearea obiectului Application PowerPoint în alta aplicatie pentru a vedea PowerPoint pe ecran. |
Proprietatea Visible |
Stabilirea sau returnarea starii ferestrei aplicatiei: maximizata, minimizata sau flotanta. |
Proprietatea WindowsState |
Multe dintre aceste proprietati si metode se aplica, de asemenea, obiectului DocumentWindow pentru controlarea aspectului ferestrei documentului.
Atributele sau actiunile caracteristice pentru întreaga aplicatie PowerPoint sunt controlate prin proprietatile si metodele prezentate în tabelul urmator.
Actiunea |
Proprietatea sau metoda utila |
Numele imprimantei active |
Proprietatea ActivePrinter |
Returnarea numarului de constructie PowerPoint |
Proprietatea Build |
Afisarea unui subiect de Help |
Metoda Help |
Returnarea numelui sistemului de operare |
Proprietatea OperatingSystem |
Returnarea caii catre aplicatia PowerPoint |
Proprietatea Path |
Parasirea (închiderea) aplicatiei PowerPoint |
Metoda Quit |
Executarea unei proceduri Visual Basic |
Metoda Run |
Returnarea numarului de versiune |
Proprietatea Version |
Proprietatile enumerate în tabelul urmator dau acces la principalele obiecte continute în obiectul Application: prezentari, ferestre ale documentului, ferestre de vizualizare a diapozitivelor. Toate proprietatile sunt ale obiectului Application.
Obiectul returnat |
Proprietatea utilizata |
Presentations (colectie) |
Proprietatea Presentations |
Prezentarea activa |
Proprietatea ActivePresentation |
DocumentWindows (colectie) |
Proprietatea Windows |
Fereastra documentului activ |
Proprietatea ActiveWindow |
AddIns (colectie) |
Proprietatea AddIns |
SlideShowWindows (colectie) |
Proprietatea SlideShowWindows |
Obtinerea referintelor de obiecte comune tuturor aplicatiilor Microsoft Office, cum ar fi barele de meniuri si de unelte, FileSearch etc., este rezumata în tabelul urmator.
Referinta la |
Proprietatea utilizata |
Office Assistant |
Proprietatea Assistant |
Meniuri si bare de unelte PowerPoint |
Proprietatea CommandBars |
Cautarea fisierelor |
Proprietatea FileSearch |
Editorul Visual Basic |
Proprietatea VBE |
Se creeaza un obiect Presentation de fiecare data când se deschide sau se creeaza un fisier (o prezentare) în PowerPoint. Se va observa ca multe dintre proprietatile si metodele obiectului Presentation corespund intrarilor din meniul File. Proprietatile si metodele obiectului Presentation, sau ale colectiei respective, sunt utilizate pentru a deschide, crea, salva sau închide fisiere. Prin intermediul lor se vor controla atributele si comportarea globala si, de asemenea, se va obtine acces la obiectele continute: slide-uri si mastere.
Se va utiliza proprietatea ActivePresentation a obiectului Application pentru a returna prezentarea care este afisata în fereastra activa. Urmatorul exemplu salveaza prezentarea activa:
ActivePresentation.SaveSe poate returna oricare dintre prezentarile deschise curent prin colectia Presentations, în modul uzual de referire a unui element dintr-o colectie:
Presentations("Sample Presentation").Slides.Add 1, 1adauga un nou slide la prezentarea "Sample Presentation".
Prin proprietatea Presentation a obiectelor DocumentWindow si SlideShowWindow se poate returna o referinta la prezentarea care a creat respectivele ferestre (de remarcat ca proprietatea Parent returneaza un obiect diferit daca obiectul apartine unei prezentari scufundate). Urmatorul exemplu afiseaza numele prezentarii care se executa în prima fereastra slide show:
MsgBox SlideShowWindow(1).Presentation.NamePentru a returna un obiect Presentation reprezentând o prezentare scufundata, se utilizeaza proprietatea Object a obiectului OLEFormat pentru forma (shape) care contine prezentarea scufundata, dupa modelul
Dim embeddedPres As Presentationprin care se atribuie variabilei embeddedPres prezentarea scufundata în al treilea shape de pe diapozitivul cu numarul 1.
Metoda Open a colectiei Presentations (returnata de proprietatea sinonima a obiectului Application) realizeaza deschiderea unei prezentari, dupa modelul
Dim myPres As Presentationunde prezentarea deschisa este vizualizata în modul Slide Sorter.
În acest scop se utilizeaza metoda Add a colectiei Presentations. Este uzual ca obiectul Presentation obtinut sa fie atribuit unei variabile pentru procesare programatica ulterioara. În exemplul urmator se creeaza o prezentare noua si se adauga un slide.
Dim myPres As PresentationAtribuirea unui nume semnificativ are de asemenea rolul de a permite o referire usoara la o prezentare. În exemplul urmator se creeaza o noua prezentare care este salvata imediat cu un nume prin aplicarea metodei SaveAs. Este de remarcat ca proprietatea Name a obiectului Presentation este read-only si prin urmare nu poate fi modificata; astfel o prezentare este identificata în mod unic prin numele sau într-un proiect. Numele poate fi utilizat în mod uzual pentru a obtine o referinta prin intermediul colectiei Presentations:
Crearea unei prezentari dintr-un outline scris în Word se realizeaza din Microsoft Word prin metoda PresentIt a obiectului Document reprezentând outline-ul. Exemplul urmator este ilustrativ:
Documents.Open("C:\Presentation Outline.doc").PresentItNu exista o metoda Activate pentru obiectul Presentation. Activarea prezentarii are loc o data cu activarea uneia dintre ferestrele de document ale prezentarii:
Presentations("Sales Report").Windows(1).ActivateProprietatea PageSetup a obiectului Presentation returneaza un obiect PageSetup. Acest obiect contine valorile pentru orientarea pagini de note si a diapozitivelor, dimensiuni si numerotare. Proprietatile obiectului PageSetup sunt similare dialogului PageSetup din meniul File, astfel încât anumite atribuiri produc în mod automat efecte asupra altor parametri (de exemplu o latime mai mare decât înaltimea produce o orientare landscape). Proprietatile sunt:
FirstSlideNumber - returneaza sau stabileste numerotarea primului diapozitiv.
NotesOrientation, SlideOrientation - returneaza sau stabilesc orientarea pe ecran si imprimanta a notelor si diapozitivelor. Pot fi una dintre valorile (MsoOrientation): msoOrientationHorizontal, msoOrientationMixed sau msoOrientationVertical.
SlideHeight, SlideWidth - returneaza sau stabilesc dimensiunile unui diapozitiv, în puncte.
SlideSize - tipul de dimensiune a unui diapozitiv. Poate fi una dintre constantele predefinite (PpSlideSizeType): ppSlideSize35MM, ppSlideSizeA4Paper, ppSlideSizeCustom, ppSlideSizeLetterPaper, ppSlideSizeOnScreen sau ppSlideSizeOverhead.
Exemplul urmator stabileste pentru toate diapozitivele dimensiunea 11" x 8.5" si numerotarea diapozitivelor de la 17.
With ActivePresentation.PageSetupAr fi de remarcat ca stabilirea explicita a dimensiunilor produce trecerea proprietatii SlideSize la valoarea ppSlideSizeCustom si a proprietatii SlideOrientation la msoOrientationHorizontal.
Se poate lucra programatic cu sabloane si cu elementele master ale unei prezentari.
Aplicarea unui sablon se efectueaza prin metoda ApplyTemplate a obiectului Presentation, dupa modelul
ActivePresentation.ApplyTemplate " … template-ul, eventual cu cale …"
Proprietatile HandoutMaster, NotesMaster, SlideMaster sau TitleMaster ale obiectului Presentation returneaza un obiect Master care reprezinta masterul entitatii respective.
Utilizarea proprietatilor obiectului Master permite stabilirea fundalului, modificarea schemei de culori, adaugarea de controale ActiveX, lucrul cu stilurile de text. Orice modificare efectuata pentru Master se reflecta în categoria respectiva de elemente ale prezentarii.
Dintre proprietatile obiectului Master prezentam câteva în continuare, fiecare necesitând însa o cautare în Help deoarece returneaza colectii de obiecte complexe.
Background - returneaza un obiect ShapeRange reprezentând background-ul diapozitivului.
ColorScheme - returneaza sau stabileste obiectul ColorScheme reprezentând schema de culori a masterului.
HeadersFooters - returneaza colectia HeadersFooters care reprezinta antetul, subsolul, data si numarul de pagina al diapozitivului.
Height, Width - returneaza dimensiunile, în puncte. Sunt read-only pentru un master.
Shapes - returneaza colectia Shapes reprezentând toate elementele care au foest plasate sau inserate în master. Colectia poate contine desene, forme (shapes), obiecte OLE, imagini etc.
TextStyles - returneaza colectia TextStyles reprezentând trei stiluri de text: title text (stilul titlului), body text (textul din interiorul diapozitivului) si default text (textul din forme grafice – shapes).
Urmatorul exemplu stabileste umplerea fundalului diapozitivului master:
ActivePresentation.SlideMaster.Background.Fill.PresetGradient _Daca se doreste ca o forma specifica, cum ar fi o imagine sau un control ActiveX, sa apara pe toate slide-urile unei prezentari, aceasta se va adauga la master. Un control ActiveX de pe master va raspunde la evenimente din prezentarea diapozitivelor la fiecare click pe control, pe orice slide s-ar afla.
Modificarile uniforme ale textului se realizeaza prin intermediul stilurilor. Fiecare obiect TextStyle (din colectia returnata de proprietatea TextStyles) contine un obiect TextFrame care descrie cum este plasat textul în boxa de text si un obiect Ruler care contine tab stopurile si informatia de indentare. Proprietatea Levels a obiectului TextStyle returneaza colectia TextStyleLevels care contine informatia de formatare pentru 5 nivele de lista ierarhizata (pentru titlu si corp se va utiliza întotdeauna nivelul întâi). Exemplul urmator utilizeaza aceste proprietati pentru o formatare:
With ActivePresentation.SlideMaster.TextStyles(ppBodyStyle).Levels(1)Observatie. Stilurile pentru titlu si textul interior se poate stabili în mod diferit pentru fiecare master. Stilul textului din formele gafice nu se aplica pentru fiecare master, ci este global, pentru întreaga prezentare.
Metoda PrintOut a obiectului Presentation tipareste prezentarea:
ActivePresentation.PrintOutOptiunile de tiparire sunt fixate anterior tiparirii prin proprietatile si metodele obiectului PrintOptions (returnat de proprietatea sinonima a obiectului Presentation).
Dintre proprietatile obiectului PrintOptions enumeram:
OutputType care returneaza sau stabileste care elemente ale presentarii
se tiparesc. Poate fi o
ppPrintOutputBuildSlides |
ppPrintOutputNotesPages |
ppPrintOutputOutline |
ppPrintOutputSixSlideHandouts |
ppPrintOutputSlides (implicita) |
ppPrintOutputThreeSlideHandouts |
ppPrintOutputTwoSlideHandouts |
NumberOfCopies care returneaza sau stabileste numarul de copii tiparite.
FitToPage care este True daca la tiparire se va scala diapozitivul încât sa se potriveasca foii de hârtie.
Ranges care returneaza obiectul PrintRanges reprezentând domeniile de dipozitive care se tiparesc.
Collate care este True (si implicit) daca o copie a prezentarii este tiparita complet înaintea copiei urmatoare.
Exemplul urmator utilizeaza câteva asemenea proprietati:
With ActivePresentation.PrintOptionsunde se remarca faptul ca proprietatea Parent returneaza obiectul Presentation caruia i se poate folosi proprietatea PrintOut.
Prima salvare a prezentarii, în care i se daun nume, se efectueaza prin metoda SaveAs:
With Presentations.AddUrmatoarele salvari se obtin prin metoda Save:
ActivePresentation.SavePentru a închide o prezentare se aplica obiectului Presentation metoda Close:
Presentations("Sample").CloseDaca prezentarea a fost modificata de la ultima salvare, este afisat, în mod automat, un mesaj de interogare asupra salvarii. Pentru a închide prezentarea fara salvare si fara afisarea mesajului se stabileste mai întâi proprietatea Saved la True:
With Application.Presentations("Sample")Se va utiliza proprietatea SlideShowSettings a obiectului Presentation pentru a returna obiectul sinonim SlideShowSettings care reprezinta executia unei prezentari de diapozitive.
Obiectul SlideShowSettings are o singura metoda, Run, care executa prezentarea potrivit parametrilor stabiliti de proprietatile obiectului SlideShowSettings.
Dintre proprietati enumeram câteva în continuare.
AdvanceMode returneaza sau stabileste valoarea care controleaza modul
de trecere la urmatorul diapozitiv. Poate fi o
StartingSlide, EndingSlide stabilesc sau returneaza diapozitivul cu care se începe executia prezentarii si cel unde se termina vizionarea.
LoopUntilStopped care este True daca prezentarea se executa ciclic pâna la apasarea tastei ESC.
RangeType returneaza sau fixeaza tipul de prezentare executata. Poate fi una dintre constantele de tip PpSlideShowRangeType: ppShowAll, ppShowNamedSlideShow sau ppShowSlideRange.
Urmatorul exemplu ilustreaza câteva proprietati:
With ActivePresentation.SlideShowSettingsunde se remarca faptul ca ultima instructiune apeleaza metoda Run, dupa ce s-au fixat atributele executiei.
Prin metoda Slides a obiectului Presentation se obtine accesul la diapozitivele prezentarii si, de aici, la textul si grafica unui diapozitiv. Obiectul Slide este prezentat în sectiunea urmatoare.
Exista trei obiecte diferite în modelul de obiecte PowerPoint care reprezinta diapozitive: colectia Slides a tuturor diapozitivelor dintr-o prezentare, colectia SlideRange a diapozitivelor dintr-o submultime de diapozitive si obiectul Slide care reprezinta un diapozitiv individual. În general, se va utiliza colectia Slides pentru adaugarea unui diapozitiv si când se parcurg toate diapozitivele prezentarii; se va utiliza obiectul Slide daca se lucreaza cu un anumit diapozitiv; se va utiliza colectia SlideRange pentru a formata sau lucra cu mai multe diapozitive.
Întreaga multime de diapozitive a unei prezentari este referita prin proprietatea Slides a obiectului Presentation. Urmatorul exemplu insereaza slide-urile din Clipboard la sfârsitul prezentarii (pentru ca nu s-a specificat locul lipirii prin .Paste(index)):
Activepresentation.Slides.PasteO referinta la un slide anumit se obtine prin intermediul colectiei Slides în mod uzual prin metoda Item. Metoda fiind implicita, mentioanrea ei este facultativa.
ActivePresentation.Slides(3).Copycopie al treilea slide în Clipboard.
Fiecare diapozitiv al unei prezentari are atasat un numar de identificare unic, definit automat la crearea diapozitivului. Atunci când în proiectarea unei prezentari se insereaza noi diapozitive, se sterg diapozitive, se sorteaza etc., referirea prin indice nu returneaza întotdeauna acelasi diapozitiv. Referirea prin numarul de identificare conduce mereu la acelasi diapozitiv. Proprietatea SlideID a unui slide returneaza numarul de identificare, proprietatea fiind read-only. Proprietatea FindBySlideID permite specificarea unui slide prin ID-ul sau. Exemplul urmator utilizeaza aceste proprietati:
Dim newSlideID As LongPentru a obtine o referinta la diapozitivul afisat curent într-o fereastra document sau de slide show, se utilizeaza proprietatea Slide a obiectului View al ferestrei, dupa modelul
Windows(2).View.Slide.CopyPentru a returna un slide dintr-o selectie, se foloseste Selection.SlideRange(index), unde index este numele sau numarul de ordine din colectie:
ActiveWindow.Selection.SlideRange(1).Layout = ppLayoutTitlePrin Slides.Range(index), unde index este numele, indexul sau un tablou de asemenea elemente (nume sau indici), se returneaza un obiect SlideRange din colectia Slides. Pentru diapozitivele selectate astfel se poate realiza o formatare unitara etc.
With Activepresentation.Slides.Range(Array(1, 3))La colectia Slides se aplica metoda Add. Se creeaza un nou diapozitiv, se adauga la colectia tuturor diapozitivelor. Metoda accepta doua argumente prin care se specifica locul noului slide si layout-ul diapozitivului. Ca rezultat al aplicarii metodei se returneaza un obiect Slide. Sintaxa:
expression.Add(Index, Layout)
unde
expression returneaza o colectie Slides.
Index specifica rangul noului slide în colectia Slides (locul efectiv ocupat). Nu poate depasi Slides.Count + 1.
Layout specifica formatul noului diapozitiv. Poate fi una dintre constantele PpSlideLayout:
ppLayoutBlank |
ppLayoutChart |
ppLayoutChartAndText |
ppLayoutClipartAndText |
ppLayoutClipArtAndVerticalText |
ppLayoutFourObject |
sppLayoutLargeObject |
ppLayoutMediaClipAndText |
ppLayoutObject |
ppLayoutObjectAndText |
ppLayoutObjectOverText |
ppLayoutOrgchart |
ppLayoutTable |
ppLayoutText |
ppLayoutTextAndChart |
ppLayoutTextAndClipart |
ppLayoutTextAndMediaClip |
ppLayoutTextAndObject |
ppLayoutTextAndTwoObjects |
ppLayoutTextOverObject |
ppLayoutTitle |
ppLayoutTitleOnly |
ppLayoutTwoColumnText |
ppLayoutTwoObjectsAndText |
ppLayoutTwoObjectsOverText |
ppLayoutVerticalText |
ppLayoutVerticalTitleAndText |
ppLayoutVerticalTitleAndTextOverChart |
Exemplul urmator adauga un slide titlu la începutul prezentarii active.
ActivePresentation.Slides.Add 1, ppLayoutTitleOnlyInserarea de diapozitive bazate pe un outline Word se realizeaza prin metoda InsertFromFile, dupa modelul
ActivePresentation.Slides.InsertFromFile _Metoda are un domeniu mai larg de aplicabilitate, sintaxa este
expression.InsertFromFile(FileName, Index, SlideStart, SlideEnd)
unde
expression returneaza o colectie Slides.
FileName este numele fisierului, eventual cu cale.
Index rangul diapozitivului din colectia Slides specificata dupa care se insereaza noile diapozitive.
SlideStart, SlideEnd specifica prin indicii de inceput si de sfârsit domeniul diapozitivelor din fisier care se insereaza în colectia Slides. Indicele omis este luat implicit drept indicele minim, respectiv maxim.
Pentru o formatare globala se vor utiliza elementele master. Daca se doreste ca un diapozitiv sau un grup de diapozitive sa aiba o formatare distincta, se va utiliza proprietatea Background sau ColorScheme a obiectului Slide sau SlideRange.
Proprietatea Background returneaza un obiect ShapeRange, se aplica proprietatea Fill pentru returnarea obiectului FillFormat si acest obiect reprezinta umplerea fundalului. Proprietatile si metodele acestui obiect modifica aspectul background-ului dorit. Este de mentionat ca pentru a pastra modificarile valabile doar pentru diapozitivul (diapozitivele) procesat, proprietatea FollowMasterBackground trebuie fixata pe False.
Datorita complexitatii obiectului, FillFormat se va studia din Help, pentru a vedea multiplele proprietati si metode suportate.
Exemplul urmator da o imagine redusa a posibilitatilor de prelucrare grafica:
With ActivePresentation.Slides(1)metoda PresetGradient aplica un efect vizual caracterizat de trei parametri, Style, Variant si PresetGradientType, corespunzând dialogului Fill Effects din PowerPoint (si nu numai).
Modificarea culorilor se poate realiza prin schimbarea schemei de culori sau prin editarea unei culori particulare dintr-o schema. Proprietatea ColorScheme a unui obiect Slide sau SlideRange returneaza obiectul ColorScheme care reprezinta schema de culori. Se poate schimba apoi schema sau se poate utiliza metoda Colors pentru a edita culori. Numerotarea schemelor de culori este cea din dialogul Color Scheme din PowerPoint. Exemplele urmatoare ilustreaza mecanismul modificarilor.
With ActivePresentationsau
ActivePresentation.Slides(1).ColorScheme.Colors(ppTitle).RGB = RGB(0,255,0)care coloreaza titlul în verde. Culorile schemei de culori pot fi referite
printr-o
Schema de culori este pierduta la aplicarea unui template, moment în care se schimba si schemele de culori disponibile.
La adaugarea unui diapozitiv s-a vazut ca se stabileste si layout-ul acestuia prin argumentul Layout. Returnarea sau modificarea layout-ului se realizeaza prin proprietatea Layout:
ActivePresentation.Slides(1).Layout = ppLayoutTextAndChartLa modificarea layout-ului sunt totusi pastrate si rezervarile care contin text sau obiecte.
Se pot adauga obiecte (cum ar fi AutoShapes, obiecte OLE, imagini) la un diapozitiv utilizând una dintre metodele colectiei Shapes. O referinta la aceasta colectie se obtine prin proprietatea Shapes a obiectului Slide, colectia reprezentând întregul layer de desen de pe un diapozitiv. Operarea cu aceste obiecte este descrisa într-un capitol separat, dedicat obiectelor desenate.
Pentru a schimba locul unui diapozitiv într-o prezentare se utilizeaza metodele Cut si Paste prin care se ia un diapozitiv din locul vechi si se insereaza în noua pozitie:
With ActivePresentation.Slidescare muta diapozitivul diapozitivul 4 pe locul 6 din prezentare.
Atributele tranzitiei unui diapozitiv sunt pastrate în proprietatile obiectului SlideShowTransition, returnat de proprietatea sinonima SlideShowTransition a obiectului Slide sau SlideRange. Proprietatile privind tranzitia corespund optiunilor disponibile prin dialogul specializat din PowerPoint: AdvanceOnClick, AdvanceOnTime, AdvanceTime, EntryEffect, SoundEffect, Speed.
Primele doua proprietati, AvanceOnClick si AvanceOnTime, sunt True daca trecerea la urmatorul slide are loc la click sau dupa un timp fixat de AdvanceTime. Pot fi stabilite ambele tipuri de avans la True.
EntryEffect stabileste modul de aparitie a noului diapozitiv. Poate avea una dintre valorile tipului enumerat PpEntryEffect, de forma ppEffectAppear, ppEffectBlindsHorizontal, ppEffectBlindsVertical, ppEffectBoxIn si înca alte vreo 60 de constante, descriind efectele selectabile prin dialogurile PowerPoint.
SoundEffect returneaza obiectul sinonim care controleaza ce se va cânta când are loc tarnzitia. Metoda utila (nu sunt multe altele) este ImportFromFile prin care se specifica un fisier de tip sound.
Speed precizeaza ritmul efectuarii tranzitiei. Returneaza sau
stabileste acest ritm ca o
Exemplul urmator ilustreaza câteva dintre aceste proprietati.
With ActivePresentation.Slides(1).SlideShowTransitionÎn exemplu se remarca faptul ca proprietatea AdvanceMode ia valoarea ppSlideShowUseSlideTimings, pentru considerarea timpului fixat la tranzitia diapozitivului.
Proprietatea NotesPages returneaza un obiect SlideRange care reprezinta paginile de note pentru un diapozitiv sau un domeniu de diapozitive. Obiectul returnat are anumite restrictii în privinta utilizarii unor proprietati si metode în raport cu obiectul SlideRange care reprezinta un domeniu de slide-uri.
Pentru a modifica toate diapozitivele simultan se va utiliza proprietatea NotesMaster a obiectului Presentation, proprietatea care returneaza un obiect Slide reprezentând masterul notitelor.
ActivePresentation.Slides(1).NotesPage.Shapes.Placeholders(2) _În PowerPoint, obiectul Selection reprezinta selectia efectuata într-o fereastra de document. Se pot utiliza metodele obiectului Selection pentru a taia, copia, sterge sau deselecta portiunea selectata. Proprietatea Type a obiectului Selection identifica tipul selectiei (diapozitive, shape, text sau nimic). Pentru returnarea unui anumit tip de selectie se vor utiliza proprietatile ShapeRange, SlideRange si TextRange.
Observatie. Codul bazat pe o selectie este în general ineficient si presupunerea selectarii prealabile a unei entitati nu este de obicei necesara; de exemplu, se poate schimba fontul unui text si fara a-l selecta în prealabil. Daca proiectul VBA porneste de la cod obtinut prin Macro Recorder, se va modifica pentru a-l face, pe cât posibil, independent de selectie.
Se poate obtine o selectie fie în mod manual, fie aplicând metoda Select unuia dintre obiectele Shape, ShapeRange, Slide, SlideRange sau TextRange. Exemplul urmator selecteaza formele 1 si 3 de pe slide-ul 1 din prezentarea activa:
ActivePresentation.Slides(1).Shapes.Range(Array(1,3)).SelectEste de retinut ca se poate efectua o selectie programatica doar daca s-ar putea efectua aceeasi selectie în mod manual: obiectul trebuie sa fie accesibil, viziunea trebuie sa permita selectii de acel tip etc.
Se va utiliza proprietatea Selection a obiectului DocumentWindow pentru a returna selectia din fereastra respectiva:
ActiveWindow.Selection.CutPrin proprietatea ShapesRange a obiectului Selection se returneaza colectia ShapeRange care include toate formele desenate din selectie. Se utilizeaza metoda Item pentru accesul la un obiect din colectie. Exemplul urmator taie a treia forma desenata din selectia existenta în fereastra activa:
ActiveWindow.Selection.ShapeRange(3).CutPrin intermediul proprietatii TextRange se poate accesa textul dintr-o selectie sau textul dintr-o forma desenata. În continuare se prezinta principalele operatiuni realizate prin intermediul obiectului TextRange.
Returnarea domeniului de text dintr-o selectie.
ActiveWindow.Selection.TextRange.CopyPrin intermediul metodelor Characters, Lines, Paragraphs, Runs, Sentences sau Words se poate obtine o portiune anumita de text din textul continut în TextRange.
Returnarea domeniului de text dintr-o forma desenata (shape) se realizeaza prin proprietatea TaxtRange a obiectului TextFrame.
ActiveWindow.Selection.ShapeRange(3).TextFrame.TextRange _Se utilizeaza proprietatea HasTextFrame pentru a vedea daca o forma are atasat un cadru cu text si se utilizeaza proprietatea HasText pentru a determina daca exista text în cadrul de text.
Inserarea de text, data si timp sau numar de slide se realizeaza prin intermediul metodelor InsertAfter, InsertBefore, InsertDateTime, InsertSlideNumber sau InsertSymbol.
Prin proprietatea SlideRange a obiectului Selection se returneaza colectia SlideRange care include toate diapozitivele selectate. Exemplul urmator taie diapozitivele selectate în fereastra activa.
ActiveWindow.Selection.SlideRange.CutLa deschiderea unui fisier în PowerPoint, se creeaza simultan un obiect Presentation, care reprezinta continutul fisierului, un obiect DocumentWindow, care reprezinta interfata dintre utilizator si fisier în modul design, un obiect View, care reprezinta un container pentru continutul fisierului în modul design.
La pornirea unui slide show, se creeaza un obiect SlideShowWindow, care reprezinta interfata între utilizator si fisier în modul run, si un obiect SlideShowView, care reprezinta un container pentru continutul fisierului în modul run (de executie).
Modificarile entitatilor care se vad pe ecranul aplicatiei se realizeaza prin modificarea unuia dintre obiectele Presentation, DocumentWindow sau View. Care anume dintre obiecte se modifica este prezentat în continuare.
Schimbarile efectuate asupra continutului efectiv al diapozitivelor — cum ar fi adaugarea, stergerea sau formatarea obiectelor — sunt modificari ale prezentarii si sunt controlate de proprietatile si metodele obiectului Presentation ca si de obiectele inferioare în ierarhia de obiecte PowerPoint.
Schimbarile efectuate asupra interfetei care afiseaza continutul – cum ar fi modificarea dimensiunii ferestrei sau comutarea afisarii în alb-negru – sunt modificari ale ferestrei documentului sau ferestrei de demonstrare a diapozitivelor si sunt controlate de proprietatile/metodele obiectelor DocumentWindow sau SlideShowWindow. Aceste modificari nu afecteaza continutul fisierului. Modiifcarile ferestrei documentului se pastreaza la comutarea viziunilor.
Schimbarile efectuate asupra modului în care informatia este afisata – cum ar fi daca se vede text si grafica sau numai grafica, cât de mari apar pe ecran elementele – sunt modificari ale viziunii si sunt controlate de proprietatile si metodei obiectelor View si SlideShowView. Aceste modificari nu afecteaza continutul fisierului si nu sunt retinute la comutarea viziunilor.
Obiectul View reprezinta modul în care informatia este afisata în fereastra documentului. Se utilizeaza proprietatea View a obiectului DocumentWindow pentru a returna un obiect View. Urmatorul exemplu fixeaza fereastra documentului sa se ajusteze automat la dimensiunile ferestrei aplicatiei.
Windows(1).View.ZoomToFit = TrueObiectul SlideShowView reprezinta modul în care informatia este afisata în fereastra de slide show. Se utilizeaza proprietatea View a obiectului SlideShowWindow pentru a returna obiectul SlideShowView. Urmatorul exemplu executa un slide show a prezentarii active cu inhibarea shortcut-urilor (metoda Run a obiectului SlideShowSettings returneaza un obiect SlideShowWindow)
ActivePresentation.SlideShowSettings.Run.View _Urmatorul exemplu fixeaza culoarea pointerului si forma pointerului pentru al doilea slide show care se executa curent (exista doar o fereastra pe aplicatie în care se executa un slide show, dar pot exista mai multe aplicatii care executa slide show-uri în acelasi timp).
With SlideShowWindow(2).ViewPrin metoda GoToSlide a obiectului View sau SlideShowView se activeaza slide-ul specificat. Este de mentionat ca termenul "diapozitiv activ" depinde de viziunea curenta: în slide view sau în note view, slide-ul curent este cel afisat; în outline view sau slide sorter view, slide-ul activ este cel selectat.
SlideShowWindows(1).View.GoToSlide 3Se poate trece la primul diapozitiv prin metoda First, la ultimul diapozitiv prin Last, sau se poate trece la un slide show denumit prin metoda GoToNamedShow. Prin ultima metoda se trece la alta prezentare de diapozitive în timpul unei alte prezentari. Când prezentarea avanseaza, urmatorul diapozitiv aratat este urmatorul din prezentarea unde s-a facut transferul si nu urmatorul din prezentarea curenta. Sintaxa este
expression.GotoNamedShow(SlideShowName)
unde
expression este obligatorie, returneaza un obiect SlideShowView.
SlideShowName este obligatoriu, numele slide show-ului unde se trece controlul.
SlideShowWindows(1).View.GotoNamedShow "…slide show-ul unde se trece …"
Prin metoda Paste a obiectului View se alipeste continutul din Clipboard la viziunea din fereastra de document activa. Urmatorul exemplu copie selectia din prima fereastra în Clipboard si o alipeste apoi la viziunea din fereastra a doua. Daca operatiunea nu poate avea loc (vezi tabelul urmator) se produce o eroare.
Windows(1).Selection.CopyOperatiunea de alipire depinde de viziunea ferestrei. Situatiile posibile de copiere a continutului din Clipboard sunt prezentate în tabelul urmator.
Viziunea |
Se poate alipi |
Slide view sau notes page view |
Shapes, text sau diapozitive întregi. Formele alipite sunt adaugate în top-ul ordinei pe z si nu înlocuiesc formele selectate. Daca este selectata o forma, textul alipit va fi adaugat la textul formei; daca este selectat text, textul alipit înlocuieste selectia; daca nu este selectat nimic, textul alipit este plasat într-un text frame propriu. Daca se alipeste un întreg slide, o imagine a slide-ului este inserata pe diapozitiv, master sau pagina de note ca un obiect scufundat. |
Outline view |
Text sau diapozitive întregi. Un slide alipit este inserat înaintea slide-ului care contine punctul de insertie. Nu se pot alipi forme desenate în outline view. |
Slide sorter view |
Diapozitive întregi. Un slide alipit este inserat la punctul de insertie sau dupa ultimul slide din selectie. Nu se pot alipi forme sau text în slide sorter view. |
Din tabel rezulta importanta alegerii unei viziuni corecte pentru prezentare înainte de a efectua o operatiune de taiere+alipire.
Prin proprietatea Type a obiectului View se obtine ce fel de viziune are documentul activ iar proprietatea ViewType a obiectului DocumentWindow se utilizeaza pentru a stabili viziunea din fereastra documentului. Urmatorul exemplu realizeaza o copiere cu fixarea tipului de viziune adecvat operatiunii de alipire.
Windows(1).Selection.CopyAlte constante pentru viziuni sunt grupate în PpViewType:
ppViewHandout, |
ppViewHandoutMaster, |
ppViewNotesMaster, |
ppViewNotesPage, |
ppViewOutline, |
ppViewSlide, |
ppViewSlideMaster, |
ppViewSlideShow, |
ppViewSlideSorter |
ppViewTitleMaster |
Interpretarile sunt imediate.
Proprietatea Slide returneaza obiectul Slide care reprezinta diapozitivul afisat în acel moment într-o fereastra de slide show sau într-o fereastra document.
SlideShowWindows(1).View.Slide.CopyDaca slide-ul afisat curent este dintr-o prezentare scufundata, se poate utiliza proprietatea Parent a obiectului Slide returnat de proprietatea sinonima pentru a returna prezentarea scufundata (proprietatea Presentation a obiectului SlideShowWindow sau DocumentWindow returneaza prezentarea în care fereastra a fost creata si nu prezentarea scufundata).
Întregul strat de desen de pe un diapozitiv este reprezentat de colectia Shapes si fiecare obiect de pe un diapozitiv – fie ca este o rezervare de loc (placeholder), o forma AutoShape sau un obiect OLE – este reprezentat de un obiect Shape. Utilizând proprietatile si metodele colectiei Shapes se pot adauga obiecte la diapozitive si se obtine acces la obiectele individuale de pe un diapozitiv. Prin proprietatile si metodele unui obiect Shape se poate controla aspectul formei, textul sau obiectul OLE care este continut si modul în care se comporta forma respectiva în timpul unui slide show.
În continuare se discuta doar despre comportarea formei desenate în slide show, aspectele celelalte fiind discutate în capitolul dedicat desenelor din Microsoft Office.
Obiectul AnimationSettings contine proprietatile si metodele care controleaza cum si când apare un shape pe un anumit slide în timpul prezentarii. Urmatorul exemplu fixeaza forma a doua de pe primul slide sa devina animata în mod automat dupa cinci secunde.
With ActivePresentation.Slides(1).Shapes(2).AnimationSettingsLa lucrul cu proprietatile obiectului AnimationSettings este important sa se înteleaga interactiunea dintre proprietatile obiectului între ele si cu proprietatea AdvanceMode a obiectului SlideShowSettings.
Efectele valorilor stabilite pentru proprietatile obiectului AnimationSettings nu devin vizibile decât daca forma respectiva este animata, adica proprietatea Animate este fixata pe True.
În animarea textului proprietatea TextUnitEffect stabileste unitatea de animatie (cuvânt, paragraf etc) prin ppAnimateByCharacter, ppAnimateByParagraph, ppAnimateByWord sau ppAnimateUnitMixed. Proprietatea TextLevelEffect (care interactioneaza cu precedenta la anumite valori) stabileste nivelul ierarhic al textului animat:
ppAnimateByAllLevels |
ppAnimateByFifthLevel |
PpAnimateByFirstLevel |
ppAnimateByFourthLevel |
ppAnimateBySecondLevel |
PpAnimateByThirdLevel |
ppAnimateLevelMixed |
ppAnimateLevelNone. |
Pentru introducerea temporizarii în animatie, se va stabili proprietatea AdvanceMode la ppAdvanceOnTime si se va indica un numar de secunde în AdvanceTime. Totodata, proprietatea AdvanceMode a obiectului SlideShowSettings trebuie sa fie ppSlideShowUseSlideTimings.
Proprietatea AfterEffect controleaza ce se întâmpla dupa ce forma a devenit animata. Daca forma a fost animata si alta forma nu este animata dupa ea, atunci efectele ulterioare nu sunt vizibile. În plus, efectul proprietatii DimColor nu este vizibil decât daca AfterEffect este stabilit la ppAfterEffectDim.
Ordinea de animare a formelor de pe un slide este stabilita prin proprietatea AnimationOrder, proprietatea EntryEffect stabileste modul de aparitie a formei iar ChartUnitEffect controleaza modul de animare al elementelor unei diagrame.
Efectul actiunilor mouse-ului (click sau trecere peste forma) este controlat de colectia ActionSettings. Colectia contine doua obiecte identificate prin indexul ppMouseClick sau ppMouseOver reprezentând, respectiv, actiunile la click sau trecerea mouse-ului pe deasupra formei sau textului în timpul unui slide show.
With ActivePresentation.Slides(1).Shapes(3).TextFrame. _Unde se remarca utilizarea indexului de identificare a actiunii la click pe forma si definirea unei actiuni prin proprietatea Action.
Valorile posibile pentru Action sunt constantele PpActionType:
ppActionEndShow |
ppActionFirstSlide |
ppActionHyperlink |
ppActionLastSlide |
ppActionLastSlideViewed |
ppActionMixed |
ppActionNamedSlideShow |
ppActionNextSlide |
ppActionNone |
ppActionOLEVerb |
ppActionPreviousSlide |
ppActionRunMacro |
ppActionRunProgram. |
Este de notat ca anumite actiuni sunt proprii doar unor tipuri de forme si se vor alege acele actiuni care sunt disponibile în interfata utilizator din PowerPoint pentru forma procesata.
În urmatorul exemplu se stabileste ca, în slide show, atunci când a treia forma de pe al doilea diapozitiv este click-ata, culoarea formei este momentan inversata, se aude fisierul sound "applause" si prezentarea revine la primul slide.
With ActivePresentation.Slides(2).Shapes(3) _Daca se stabileste o proprietate a obiectului ActionSettings dar fara efectul scontat, se va verifica valoarea atribuita proprietatii Action. Tabelul care urmeaza ofera câteva precizari.
Daca se utilizeaza proprietatea |
Pentru a efectua |
Valoarea necesara pentru proprietatea Action |
Hyperlink |
Stabilirea proprietatilor pentru hiperlegatura care este urmarita ca raspuns la actiunea mouse-ului. |
ppActionHyperlink |
Run |
Returnarea/stabilirea numelui programului executat ca raspuns la actiunile mouse-ului. |
ppActionRunProgram |
Run |
Returnarea/stabilirea numelui procedurii macro executate ca raspuns la actiunea mouse-ului. |
ppActionRunMacro |
ActionVerb |
Stabilirea verbului OLE care va fi invocat ca raspuns la actiunea mouse-ului. |
ppActionOLEVerb |
SlideShowName |
Stabilirea numelui slide show-ului propriu care se va executa ca raspuns la o actiune a mouse-ului. |
ppActionNamedSlideShow |
Urmatorul exemplu utilizeaza proprietatea Hyperlink:
With ActivePresentation.Slides(1).Shapes(1).ActionSettings(ppMouseClick)Obiectul PlaySettings, returnat prin proprietatea PlaySettings a obiectului AnimationSettings, contine proprietati si metode care controleaza cum si când se deruleaza un clip media. Urmatorul exemplu insereaza un movie numit "Clock.avi" în primul slide din prezentarea activa, fixeaza executia automata dupa animatia sau tranzitia precedenta, specifica continuarea show-ului în timp ce se executa filmul si specifica faptul ca obiectul movie este ascuns în timpul slide show-ului cu exceptia timpului când se executa.
Set clockMovie = ActivePresentation.Slides(1).Shapes.AddMediaObject _În functie de modul cum se insereaza clipul ca un obiect OLE (utilizând comanda Object din meniul Insert sau utilizând metoda AddMediaObject) sau ca un obiect media nativ (utilizând meniul Movies and Sounds sau metoda AddMediaObject), se pot aplica diferite proprietati obiectului PlaySettings. Se regasesc astfel optiunile disponibile în fisa Play Settings din dialogul Custom Animation (deschis din meniul SlideShow).
Modul preferat de inserare a clipurilor este ca obiecte native media, deoarece acestea nu necesita Windows Media Player si reactioneaza astfel mai rapid. Multe dintre proprietatile obiectului PlaySettings se aplica numai clipurilor media native. Proprietatea ActionVerb, care corespunde optiunilor listate în boxa Object din fisa PlaySettings a dialogului Custom Animation, este singura care nu se aplica clipurilor media native.
Utilizând proprietatea Type a obiectului Shape se poate determina daca un clip este nativ (valoarea returnata msoMedia) sau nu. Proprietatea MediaType a obiectului Shape determina daca este sound sau movie (ppMediaTypeMixed, ppMediaTypeMovie, ppMediaTypeOther sau ppMediaTypeSound). Urmatorul exemplu fixeaza toate obiectele native sound din primul slide sa se execute mereu pâna sunt oprite manual.
Dim so As Shape
|