birotică profesională - asebiroticaprofesionala.ase.ro/selif/b/bpcursul12 - vba.pdfmediul de...
TRANSCRIPT
![Page 1: Birotică Profesională - ASEbiroticaprofesionala.ase.ro/selif/B/BPCursul12 - VBA.pdfMediul de dezvoltare Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin](https://reader033.vdocuments.pub/reader033/viewer/2022041812/5e587429a9f5e06f023917cd/html5/thumbnails/1.jpg)
Birotică Profesională
Cursul 12
![Page 2: Birotică Profesională - ASEbiroticaprofesionala.ase.ro/selif/B/BPCursul12 - VBA.pdfMediul de dezvoltare Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin](https://reader033.vdocuments.pub/reader033/viewer/2022041812/5e587429a9f5e06f023917cd/html5/thumbnails/2.jpg)
Sumar
Visual Basic for Applications (VBA)
Tipuri de date
Structuri de control
Funcţii si proceduri
Obiecte si colecţii
![Page 3: Birotică Profesională - ASEbiroticaprofesionala.ase.ro/selif/B/BPCursul12 - VBA.pdfMediul de dezvoltare Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin](https://reader033.vdocuments.pub/reader033/viewer/2022041812/5e587429a9f5e06f023917cd/html5/thumbnails/3.jpg)
VBA
Mediu de programare destinat in
special realizării de macro-uri
Macrocomandă: secvenţă de
instrucţiuni obţinută prin înregistrarea
unui set de acţiuni specifice unei
aplicaţii in vederea execuţiei ulterioare
Limbaj de programare: Visual Basic
![Page 4: Birotică Profesională - ASEbiroticaprofesionala.ase.ro/selif/B/BPCursul12 - VBA.pdfMediul de dezvoltare Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin](https://reader033.vdocuments.pub/reader033/viewer/2022041812/5e587429a9f5e06f023917cd/html5/thumbnails/4.jpg)
Mediul de dezvoltare
Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin combinația de taste ALT+F11
Prin butonul Visual Basic din selectorul Developer (selectorul se activeaza din optiunile aplicatiei, categoria Popular)
Module Conțin codul VBA grupat in subprograme si
declarații
Sint incluse in fișierele asociate aplicațiilor Office (nu sint salvate in fișiere distincte)
![Page 5: Birotică Profesională - ASEbiroticaprofesionala.ase.ro/selif/B/BPCursul12 - VBA.pdfMediul de dezvoltare Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin](https://reader033.vdocuments.pub/reader033/viewer/2022041812/5e587429a9f5e06f023917cd/html5/thumbnails/5.jpg)
Tipuri de date
Boolean
Byte
Currency
Date
Double
Integer
Long
Single
String
Variant
![Page 6: Birotică Profesională - ASEbiroticaprofesionala.ase.ro/selif/B/BPCursul12 - VBA.pdfMediul de dezvoltare Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin](https://reader033.vdocuments.pub/reader033/viewer/2022041812/5e587429a9f5e06f023917cd/html5/thumbnails/6.jpg)
Variabile
Dim NumeVariabila
Dim NumeVariabila As Tip
Dim MasivUnidimensional(dim-1)
as Tip
Option Explicit
Option Base
![Page 7: Birotică Profesională - ASEbiroticaprofesionala.ase.ro/selif/B/BPCursul12 - VBA.pdfMediul de dezvoltare Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin](https://reader033.vdocuments.pub/reader033/viewer/2022041812/5e587429a9f5e06f023917cd/html5/thumbnails/7.jpg)
Variabile
Dim i as Integer
Dim sir as String
Dim vect(9) As Integer
Dim vect2(1 To 10) As Single
Dim rezultat
Dim V(1 to 10, 1 to 12) As Double
![Page 8: Birotică Profesională - ASEbiroticaprofesionala.ase.ro/selif/B/BPCursul12 - VBA.pdfMediul de dezvoltare Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin](https://reader033.vdocuments.pub/reader033/viewer/2022041812/5e587429a9f5e06f023917cd/html5/thumbnails/8.jpg)
Variabile
i = 0
vect(i) = i * i
sir = “test”
V(i, j) = i * j
![Page 9: Birotică Profesională - ASEbiroticaprofesionala.ase.ro/selif/B/BPCursul12 - VBA.pdfMediul de dezvoltare Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin](https://reader033.vdocuments.pub/reader033/viewer/2022041812/5e587429a9f5e06f023917cd/html5/thumbnails/9.jpg)
Constante
Se utilizează Const
Exemplu:
Const PI as Single = 3.14
Const Mesaj as String = "Informare“
Const DataReferinta As Date =
#5/25/2009#
![Page 10: Birotică Profesională - ASEbiroticaprofesionala.ase.ro/selif/B/BPCursul12 - VBA.pdfMediul de dezvoltare Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin](https://reader033.vdocuments.pub/reader033/viewer/2022041812/5e587429a9f5e06f023917cd/html5/thumbnails/10.jpg)
Constante predefinite
la nivelul limbajului Visual Basic
vbOKOnly, vbInformation
la nivelul fiecărui model de
programare (Word, Excel etc.):
wdToggle, xlNormal
![Page 11: Birotică Profesională - ASEbiroticaprofesionala.ase.ro/selif/B/BPCursul12 - VBA.pdfMediul de dezvoltare Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin](https://reader033.vdocuments.pub/reader033/viewer/2022041812/5e587429a9f5e06f023917cd/html5/thumbnails/11.jpg)
Operatori
+, -, *, \, /, ^, Mod Operatori aritmetici
& Concatenare siruri
=, >, <, >=, <=, <> Operatori relationali
And, Or, Xor, Not Operatori logici
![Page 12: Birotică Profesională - ASEbiroticaprofesionala.ase.ro/selif/B/BPCursul12 - VBA.pdfMediul de dezvoltare Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin](https://reader033.vdocuments.pub/reader033/viewer/2022041812/5e587429a9f5e06f023917cd/html5/thumbnails/12.jpg)
Structuri de control
If conditie Then
'instructiuni
Else
'instructiuni
End If
![Page 13: Birotică Profesională - ASEbiroticaprofesionala.ase.ro/selif/B/BPCursul12 - VBA.pdfMediul de dezvoltare Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin](https://reader033.vdocuments.pub/reader033/viewer/2022041812/5e587429a9f5e06f023917cd/html5/thumbnails/13.jpg)
Structuri de control
Select Case expresie
Case v1
'instructiuni
Case v2
'instructiuni
Case Else
'instructiuni
End Select
![Page 14: Birotică Profesională - ASEbiroticaprofesionala.ase.ro/selif/B/BPCursul12 - VBA.pdfMediul de dezvoltare Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin](https://reader033.vdocuments.pub/reader033/viewer/2022041812/5e587429a9f5e06f023917cd/html5/thumbnails/14.jpg)
Structuri de control
For contor = vi To vf [Step
pas]
'instructiuni
[Exit For]
'instructiuni
Next [contor]
![Page 15: Birotică Profesională - ASEbiroticaprofesionala.ase.ro/selif/B/BPCursul12 - VBA.pdfMediul de dezvoltare Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin](https://reader033.vdocuments.pub/reader033/viewer/2022041812/5e587429a9f5e06f023917cd/html5/thumbnails/15.jpg)
Structuri de control
Option Base 1
...
Dim Cheltuieli(12, 4) As Single
Dim i As Byte
Dim j As Byte
For i = 1 To 12
For j = 1 To 4
Cheltuieli(i, j) = 0
Next j
Next i
![Page 16: Birotică Profesională - ASEbiroticaprofesionala.ase.ro/selif/B/BPCursul12 - VBA.pdfMediul de dezvoltare Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin](https://reader033.vdocuments.pub/reader033/viewer/2022041812/5e587429a9f5e06f023917cd/html5/thumbnails/16.jpg)
Structuri de control
While conditie
'instructiuni
Wend
![Page 17: Birotică Profesională - ASEbiroticaprofesionala.ase.ro/selif/B/BPCursul12 - VBA.pdfMediul de dezvoltare Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin](https://reader033.vdocuments.pub/reader033/viewer/2022041812/5e587429a9f5e06f023917cd/html5/thumbnails/17.jpg)
Structuri de control
Do
'instructiuni
[Exit Do]
'instructiuni
Loop [{While | Until}
conditie]
![Page 18: Birotică Profesională - ASEbiroticaprofesionala.ase.ro/selif/B/BPCursul12 - VBA.pdfMediul de dezvoltare Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin](https://reader033.vdocuments.pub/reader033/viewer/2022041812/5e587429a9f5e06f023917cd/html5/thumbnails/18.jpg)
Structuri de control
Do [{While | Until} conditie]
'instructiuni
[Exit Do]
'instructiuni
Loop
![Page 19: Birotică Profesională - ASEbiroticaprofesionala.ase.ro/selif/B/BPCursul12 - VBA.pdfMediul de dezvoltare Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin](https://reader033.vdocuments.pub/reader033/viewer/2022041812/5e587429a9f5e06f023917cd/html5/thumbnails/19.jpg)
Proceduri si funcţii
Sub NumeProcedura (argument1 As Tip1, argument2 As Tip2, ...)
'instructiuni VBA
End Sub
Function NumeFunctie (argument1 As Tip1, argument2 As Tip2, ...) as Tip
'instructiuni VBA
NumeFunctie = valoareReturnata
End Function
![Page 20: Birotică Profesională - ASEbiroticaprofesionala.ase.ro/selif/B/BPCursul12 - VBA.pdfMediul de dezvoltare Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin](https://reader033.vdocuments.pub/reader033/viewer/2022041812/5e587429a9f5e06f023917cd/html5/thumbnails/20.jpg)
Proceduri si funcţii
Parametri prin valoare ByVal (implicit)
Parametri prin referinta ByRef
![Page 21: Birotică Profesională - ASEbiroticaprofesionala.ase.ro/selif/B/BPCursul12 - VBA.pdfMediul de dezvoltare Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin](https://reader033.vdocuments.pub/reader033/viewer/2022041812/5e587429a9f5e06f023917cd/html5/thumbnails/21.jpg)
Apel funcții/proceduri
ProceduraFaraParametri
ProceduraCuParametri p1, ,p3
Rez = FunctieFaraParametri
Rez = FunctieCuParametri(p1, ,p3,
p4)
![Page 22: Birotică Profesională - ASEbiroticaprofesionala.ase.ro/selif/B/BPCursul12 - VBA.pdfMediul de dezvoltare Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin](https://reader033.vdocuments.pub/reader033/viewer/2022041812/5e587429a9f5e06f023917cd/html5/thumbnails/22.jpg)
Funcţii predefinite
Matematice Abs, Atn, Cos, Sin, Exp, Rnd,
Log
Prelucrare
siruri
Asc, Chr, LCase, Len, LTrim,
RTrim, Trim, UCase, Val, Str,
Mid, Left, Right
Data si timp Date, Time, Now, Day, Month,
Year
Financiare Pmt, NPV, IRR, FV
![Page 23: Birotică Profesională - ASEbiroticaprofesionala.ase.ro/selif/B/BPCursul12 - VBA.pdfMediul de dezvoltare Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin](https://reader033.vdocuments.pub/reader033/viewer/2022041812/5e587429a9f5e06f023917cd/html5/thumbnails/23.jpg)
Funcţii pentru
preluarea/afişarea datelor
MsgBox(mesaj , [butoane], [titlu], …)
Returnează codul butonului apăsat
InputBox(mesaj, [titlu],
[text_initial],[pozx], [pozy], …)
Returnează şirul de caractere introdus
de utilizator sau şirul vid în cazul
apăsării butonului Cancel
![Page 24: Birotică Profesională - ASEbiroticaprofesionala.ase.ro/selif/B/BPCursul12 - VBA.pdfMediul de dezvoltare Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin](https://reader033.vdocuments.pub/reader033/viewer/2022041812/5e587429a9f5e06f023917cd/html5/thumbnails/24.jpg)
Funcţii pentru
preluarea/afişarea datelor
i = InputBox("Valoarea", "Transforma
in hexa")
MsgBox Hex$(Val(i)), , "Hexa"
![Page 25: Birotică Profesională - ASEbiroticaprofesionala.ase.ro/selif/B/BPCursul12 - VBA.pdfMediul de dezvoltare Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin](https://reader033.vdocuments.pub/reader033/viewer/2022041812/5e587429a9f5e06f023917cd/html5/thumbnails/25.jpg)
Clase si obiecte
Clasa – tip definit de utilizator
Obiect – variabilă (instanţă) de tip
clasă
Clasa = Proprietăţi + Metode
Evenimente
![Page 26: Birotică Profesională - ASEbiroticaprofesionala.ase.ro/selif/B/BPCursul12 - VBA.pdfMediul de dezvoltare Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin](https://reader033.vdocuments.pub/reader033/viewer/2022041812/5e587429a9f5e06f023917cd/html5/thumbnails/26.jpg)
Colecţii
Multime de obiecte de acelasi tip
Metode: Add
Proprietati: First, Last, Count
Parcurgerea secventiala a obiectelor:
For Each obiect In Colectie
'Prelucrare obiect
Next
![Page 27: Birotică Profesională - ASEbiroticaprofesionala.ase.ro/selif/B/BPCursul12 - VBA.pdfMediul de dezvoltare Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin](https://reader033.vdocuments.pub/reader033/viewer/2022041812/5e587429a9f5e06f023917cd/html5/thumbnails/27.jpg)
Proprietăţi si metode
Obiect.Proprietate
Obiect.Metoda(param)
With Obiect
.Proprietate
.Metoda(param)
End With
![Page 28: Birotică Profesională - ASEbiroticaprofesionala.ase.ro/selif/B/BPCursul12 - VBA.pdfMediul de dezvoltare Editorul VBA, accesibil din orice aplicație Microsoft Office 2007/2010: Prin](https://reader033.vdocuments.pub/reader033/viewer/2022041812/5e587429a9f5e06f023917cd/html5/thumbnails/28.jpg)
Bibliografie
P. McFedries – Absolute Beginner's Guide to VBA, Que, 2004
R. Mansfield – Office 2003 Application Development All-in-One Desk Reference For Dummies, Wiley Publishing, Inc., 2004
P. Pocatilu si D. Vespan (coord) – Birotică Profesională, Ed. ASE, 2009
R. Shepherd – Excel VBA Macro Programming, McGraw-Hill/Osborne, 2004