Crearea unei funcții pentru PowerPoint

Funcția de mai jos este realizată ca exemplu pentru PowerPoint. Funcția verifică dacă tot textul dintr-un diapozitiv are fontul de dimensiunea minimă specificată și afișează o casetă cu un mesaj de eroare dacă dimensiunea este mai mică. (Se apasă Alt + F11 pentru a deschide VBA Editor, apoi dacă nu apare fereastra Code, se alege Insert > Module, ca să apară fereastra în care se va scrie codul.)

Funcție în PowerPoint

1. Option Explicit
2.
3. Function VerificareMarimeFont(objPrezentare As Presentation) As Boolean
4.
5.  Dim objSlide As Slide
6.  Dim objShape As Shape
7.
8.  VerificareMarimeFont = True
9.
10. For Each objSlide In objPrezentare.Slides
11.    objSlide.Select
12.    objSlide.Shapes.SelectAll
13.    For Each objShape In Windows(1).Selection.ShapeRange
14.        If objShape.Type = msoPlaceholder Then
15.          If objShape.TextFrame.TextRange.Font.Size < 14 Then
16.             VerificareMarimeFont = False
17.             Exit Function
18.          End If
19.        End If
20.     Next objShape
21. Next objSlide
22. End Function
23.
24. Sub Verificare_Font()
25.   If VerificareMarimeFont(ActivePresentation) = False Then
26.     MsgBox "Unele fonturi din prezentare sunt prea mici." _
          & vbCr & vbCr & "Modificati marimea fontului la cel putin 14 puncte.", vbCritical + vbOKOnly, "Verificare marime font"
27. End If
28. End Sub

Iată cum funcționează codul:

  • Linia 1 conține instrucțiunea Option Explicit pentru ca modulul să forțeze declarații explicite ale tuturor variabilelor. Linia 2 este goală (distanțier sau spacer).
  • Linia 3 declară funcția numită VerificareMarimeFont de tip Boolean și specifică că funcționează pe o variabilă numită objPrezentare, care este de tip Presentation. Linia 4 este goală.
  • Linia 5 declară o variabilă numită objSlide care este de tip Slide (diapozitiv). Linia 6 declară o variabilă numită objShape care este de tip Shape (formă). Linia 7 este goală.
  • Linia 8 stabilește valoarea funcției VerificareMarimeFont la True. Acest lucru indică faptul că dimensiunile fontului sunt minime sau mai mari. Linia 9 este goală.
  • Linia 10 începe o buclă For Each...Next care continuă până la linia 21 și care verifică fiecare obiect objSlide din colecția Slides din obiectul objPrezentare. Această buclă face ca funcția să examineze fiecare obiect Slide din prezentarea care este transmisă funcției.
  • Linia 11 selectează obiectul objSlide curent, iar linia 12 utilizează metoda SelectAll din colecția de diapozitive.
  • Linia 13 pornește o buclă imbricată pentru For Each...Next care se execută câte o dată pentru fiecare obiect objShape din obiectul ShapeRange din obiectul Selection din prima fereastră folosind Windows(1). Obiectul ShapeRange conține toate obiectele Shape din selecție. Aici, obiectele Shape sunt reprezentate de variabila objShape.
  • Linia 14 utilizează o instrucțiune If pentru a vedea dacă proprietatea Type a obiectului Shape curent este msoPlaceholder, tipul care indică un marcator de loc utilizat pentru text. Dacă forma este un placeholder (deținător de loc), linia 15 verifică dacă dimensiunea fontului folosită în obiectul TextRange din obiectul TextFrame din obiectul Formă este mai mică de 14 puncte. Dacă da, linia 16 atribuie valoarea False funcției VerificareMarimeFont, iar linia 17 folosește o instrucțiune Exit Function pentru a opri executarea funcției. Acest lucru se întâmplă deoarece, după ce a fost găsit text cu un font mai mic decât dimensiunea minimă permisă, nu mai este necesară verificarea în continuare.

Funcția caută doar primul caracter, deci obiectul TextRange nu va identifica caracterele cu dimensiunea fontului mai mică decât 14, care se află după primul caracter.
  • Linia 18 conține instrucțiunea End If care încheie structura If imbricată, iar linia 19 conține instrucțiunea End If care încheie structura If exterioară.
  • Linia 20 conține instrucțiunea Next objShape care încheie bucla imbricată For Each...Next, iar linia 21 conține instrucțiunea Next ObjSlide care încheie exteriorul buclei For Each...Next.
  • Linia 22 conține instrucțiunea End Function care încheie funcția. Linia 23 este goală.
  • Liniile de la 24 până la 28 conțin o subrutină numită Verificare_Font care rulează funcția VerificareMarimeFont pe obiectul ActivePresentation. Dacă funcția returnează False, subprocedura afișează o casetă de mesaj care avertizează utilizatorul asupra problemei.