Documente Academic
Documente Profesional
Documente Cultură
Microsoft Office
Evaluare
prima jumtate a semestrului
test scris
susinere n sptmna a 8-a
Bibliografie ajuttoare
P. Blattner, L. Ulrich, K. Cook, T. Dyck, Totul
despre Ms Excel 2000, Ed. Teora, Bucureti,
2001
VBA for Office developers
http://msdn.microsoft.com/en-us/office/ff688774.aspx
MSDN
3
Introducere
Obiecte Excel
Obiecte Word
Obiecte PowerPoint
Dialoguri
I. Introducere
VBA
Visual Basic for Applications
face parte din familia de limbaje Visual Basic
scop - automatizarea funcionrii programelor
Microsoft
adoptat ulterior i de ali productori de
software
Corel
Autodesk etc.
6
Caracteristici VBA
limbaj compilat
dar cu multe caracteristici ale limbajelor
interpretate
ex.: nu este obligatorie declararea variabilelor
forme (.frm)
conin definiiile dialogurilor utilizator i codul
pentru tratarea evenimentelor asociate
referine
indic entitile din alte proiecte/aplicaii accesate
din proiectul curent
8
Macrouri (1)
sunt de fapt proceduri
apelabile de ctre utilizator
pot fi asociate unor combinaii de taste
creare
scrierea codului n editorul VBA
nregistrarea aciunilor efectuate de utilizator
(Macro Recorder)
apoi se poate observa/edita codul astfel generat n
editorul VBA
util pentru depanare i nelegerea aciunilor
9
Macrouri (2)
aciunile care se pot realiza prin cod sunt
similare celor care pot fi realizate direct din
interfaa programului
deci, pentru a putea scrie cod corect, trebuie s
cunoatem bine aplicaia n care ne aflm
MS-Office pune la dispoziie o serie de obiecte
predefinite care permit accesul la
funcionalitile aplicaiei de baz
unele sunt generale
majoritatea sunt specifice fiecrei aplicaii
10
Editorul VBA
accesibil
prin combinaia de taste Alt + F11
prin combinaia de taste Alt + F8, urmat de
selectarea unui macro i editarea acestuia
din interfaa programului folosit (Word, Excel,
PowerPoint, ...)
permite
editarea codului
execuia i depanarea codului
vizualizarea proprietilor obiectelor etc.
11
Sistemul de ajutor
accesibil
din interfaa editorului VBA
Help - Microsoft Visual Basic Help
prin tasta F1
furnizeaz automat informaii despre cuvntul pe care
este poziionat cursorul (cuvnt-cheie, obiect,
metod/proprietate, procedur etc.)
Module de cod
opiuni de compilare
cuvntul-cheie Option
declaraii
variabile globale
pot lipsi
proceduri
nu pot fi imbricate
pot fi apelate din alte proceduri
sau direct de ctre utilizator
13
I.1. Declaraii
16
Tipuri de date
predefinite
este introdus un tip special (Variant)
se poate substitui oricrui tip predefinit
mai puin String de lungime variabil
poate lua valori speciale
Empty - neiniializat
Null - nu conine date
Error - valoare primit printr-o operaie eronat
Nothing - pentru variabile de tip Object
definite de utilizator
similar structurilor din limbajul C
17
True, False
0-255
reprezentri financiare
reprezentarea datei i orei
numere zecimale
numere n virgul mobil
numere ntregi
referine la obiecte MS-Office
iruri de caractere
tip universal
18
Declaraii - constante
[Public|Private] Const name [As type] = expression
Constante predefinite
specifice diverselor obiecte sau proceduri
predefinite
numele lor au prefixe standard
Excel: xl (ex. xlNoChange)
Word: wd (ex. wdCharacter)
PowerPoint: pp (ex. ppLayoutBlank)
atenie
pot exista constante diferite cu aceleai valori
se recomand utilizarea fiecrui nume de constant
doar n contextul n care a fost introdus
20
()
tablou alocat dinamic
poate fi dimensionat ulterior, prin ReDim
22
exemple de declaraii
Dim i As Integer
Public obiect
tip implicit Variant
Dim matrice(1 To 10, 9) As Double
Dim wdoc As Document
document Word
23
Tablouri
pot fi create prin declaraiile de variabile, ca
anterior
dinamic - prin apelul funciei Array
din cod
prin apelare direct
[[Project_name.]Module_name.]Proc_name Arglist
prin instruciunea Call
Call [[Project_name.]Module_name.]Proc_name (Arglist)
parantezele sunt necesare pentru lista de parametri
doar la utilizarea instruciunii Call
29
Selection.HomeKey(wdLine, wdExtend)
Selection.HomeKey Extend:=wdExtend, Unit:=wdLine
30
I.2. Instruciuni
Generaliti (1)
se recomand scrierea cte unei instruciuni pe
un rnd
dac o instruciune este prea lung
poate fi continuat pe mai multe rnduri prin
utilizarea simbolului "_" la finalul fiecrei linii, mai
puin cea final
simbolul trebuie separat prin spaiu de restul liniei
Generaliti (2)
dac este necesar, o linie poate avea un
identificator
comentarii
Operatori
aritmetici: ^ (ridicare la putere), *, /, -, +
(adunare, concatenare iruri), \ (mprire
ntreag), mod
de comparare: <, <=, >, >=, =, <>, Is (referine
la acelai obiect), Like (potrivire de iruri)
de concatenare: +, &
logici: And, Eqv, Imp, Not, Or, Xor
acioneaz att pentru condiii de test compuse, ct
i pe bii
34
Instruciuni de atribuire
valori care nu reprezint obiecte - Let
cuvntul-cheie poate lipsi
[Let] i = i + 1
obiecte - Set
Set newdoc = ActiveDocument
line:
Return
salt
GoTo line
tratarea erorilor
On Error
36
End
suspendarea execuiei programului
Stop
37
bucl simpl
While condition
[statements]
Wend
38
Do
[statements]
[Exit Do]
[statements]
Loop [{While|Until} condition]
39
[Else
[statements]]
End If
atenie la scrierea pe linii a instruciunii
42
[Case Else
[statements]]
End Select
expresiile 1, 2, ... nu sunt neaprat constante
43
Intrri-ieiri
comunicarea cu utilizatorul
dialoguri predefinite
intrare - InputBox
ieire - MsgBox
lucrul cu fiiere
instruciuni pentru lucrul la nivel jos
46
Funcia MsgBox
var = MsgBox(Prompt[, Buttons] [, Title] [, Helpfile, Context])