Download - Lectia2_VBA
-
8/11/2019 Lectia2_VBA
1/29
Motto
Isi uita nevoile vechi pentru amplini lipsuri noi
Grigore Moisil
-
8/11/2019 Lectia2_VBA
2/29
Lectia 2
Concepte din Programarea Orientata Pe Obiecte
aplicate Documentelor Word, Foilor De Calcul
Excel si diapozitevelor Power Point
Scopul utilizarii limbajului de programare VBA
este acela de a: scrie programe cu care :a ) sa controlam comportarea obiectelor Excel
b) sa realizam aplicatii complexe in diverse domenii
de activitate.
Programul este o multime ordonata de
instructiuni.
Instructiunea defineste o actiune ; conform
regulilor de sintaxa al limbajului de programare se
comanda sistemului de calcul sa execute o
instructiune.
Algorimul este un sistem de reguli care conduce
de la informatia initiala la o solutie cuajutorul unor Operatii:
succesive
ordonate
unic determinate.
Algorimul are ca forma de reprezentare : limbajul pesudocod
2
-
8/11/2019 Lectia2_VBA
3/29
schema logica
Obiectul este o entitate din lumea reala avand
limite precise si un sens prcis in contextul
problemei studiate1.
Entitatea
Un program (aplicatie) reprezinta o secventa de
actiuni (operatii) care se executa asupra unor entitati
(valori sau obiecte).
Altfel spus un program (aplicatie in vba) constaintr-un set de instructiuni prin intermediul carora se
transmite calcultorului :
ce operatii sa efectueze
in ce ordine
si asupra caror obiecte trebuie sa actioneze.
Limbajul de programare VBA imbina utilizareaobiectelor cu posibilitatile folosirii tehnicii avansate
de programare ( modularizare, structurare, folosirea
instructiunilor de control a secventei de executie).
Limbajul de programare stabileste ce entitati pot
fi prelucrate si in ce fel anume, dar si modul in care
trebuie sa fie descrise atat entitatile, cat si actiunile.
Din punctul de vedere al programatorilorun
obiecteste o multime dedateplus o serie de operatii
(metode) care manipuleaza datele2.
5.1.Obiecte si colectii
1Popa Gheorghe, Iliescu Matei- Visual Basic-Editura Cison-20022Anton Cerchizan
-
8/11/2019 Lectia2_VBA
4/29
Obiect este orice entitate pe care o putem
controla cu ajutorul limbajului Visual Basic. Obiecte
sunt elementele constitutive ale Excel, dar si ceea ce
putem construi cu ajutorul sau. Visual Basic
defineste aceste proceduri.
Obiectul de baza cu care opereaza Excel se numeste
Application,acesta contine valorile parametrilor si
optiunilor de lucru (stabilite prin intermediul
comenzii Options din meniul Tools).
Exemplu : ActiveCell, ActiveSheet,ActiveDialog.ActiveWorkbook, etc.
Obiectele foii de lucru : randuri, coloane, domenii de
celule, celule, obiecte grafice.
5.2. Utilizarea obiectelor
Obiectele au anumite trasaturi specifice care lecaracterizeaza si pe care le numim proprietati.
Proprietatilereprezinta atribute ale obiectelor,care descriu aspectul, starea sau comportarea
acestora.
Pentru obiectul Workbookcele mai semnificative
sunt : Name, PrecisionAsDisplayed,
ReadOnly, Saved sau
pentru obiectul Worksheet sunt: Name, Next,
Previous, Type, Visible etc.
Obiectele sunt caracterizate si prin actiunile pe
care pot sa le efectueze, actiuni numitemetode.
!
-
8/11/2019 Lectia2_VBA
5/29
-
8/11/2019 Lectia2_VBA
6/29
Sub VizInviz ()
ActiveWorkbook.Worksheets(1).Visible = True
ActiveWorkbook.Worksheets(Sheet3).Visible = FalseEnd Sub
Pentru ca sa preluam valoarea unei proprietati
folosim urmatoarea sintaxa :
variabila = obiect.proprietate
unde :
variabila - este variabila in care se va pastra
valoarea citita din proprietate
obiect - este o referinta la un obiect (eventual
incluzand recipientii sai)
proprietate - este numele unei proprietati a
obiectului.
Pentru ca sa preluam, de exemplu, numele unei
foi de lucru, ca un sir de caractere si pentru ca sa-lafisam intr-o caseta pentru dialog predefinita folosim
proprietatea Name si functia MsgBox() :
Sub AfiseazaNume()
Dim NumeFoaie As String
NumeFoaie = ActiveSheet.Name
MsgBox Numele foii de lucru este & NumeFoaie
End Sub
Valoarea unei proprietati o putem folosi in
expresii complexe, in mod asemanator folosirii
variabilelor sau functiilor.
Cum punem obiectele la lucru ?
#
-
8/11/2019 Lectia2_VBA
7/29
Pe langa proprietati , obiectele aumetode. Acestea
stabilesc actiunile pe care le poate executa obiectul sicare pot sa afecteze starea unor proprietati ale
acestuia. Argumentul, spre deosebire de proprietati
care primesc sau returneaza o singura valoare, pot sa
primeasca si mai multe valori de lucru. Pentru
folosirea metodelor intr-o procedura exista trei
situatii posibile:
a)daca metoda apelata nu primeste argumente,
folosim sintaxa urmatoare:
obiect.metodaExemplu:
Sub EliminaFoaie()
ActiveWorkbook.Worksheets(Sheet3).DeleteEnd Sub
Sub CopiazaButon()
ActiveSheet.Buttons(1).Copy
End Sub
b)daca metoda primeste o lista cu argumente, dar
nu dorim sa salvam valoarea returnata demetoda, separam numele metodei de lista de
argumente cu spatiu, iar argumentele prin
separatorul de lista :
obiect.metoda lista_argumente
Exemplu :
Se foloseste metoda Move pentru mutarea foii
Sheet3 din mapa activa inaintea foii Sheet1 din mapa
$
-
8/11/2019 Lectia2_VBA
8/29
CP1.XLS si metoda Copy, pentru copierea foii Sheet1
dupa foaia Sheet9 din mapa CP2.XLS.Se foloseste
numele argumentelor before si after si separarea lor
de argumentul propriu-zis prin operatorul :=
Sub MutaFoaie()
ActiveWorkbook.Worksheets(Sheet3).Move_
before := Workbooks(CP1). Worksheets(Sheet1)
End Sub
c)daca folosim valoarea returnata de metoda, esteobligatorie introducerea listei de argumente
intre paranteze :
variabila = obiect.metoda(lista_argumente)
unde : obiect -este o referinta la un obiect
(eventual incluzand numele recipientilor sai)
metoda -numele metodei folosite
lista_argumente lista argumentelor
despartite intre ele prin separatorul de lista
Argumentele pot sa fie precizate in doua feluri :
caargumente conventionale, caz in care esteimportanta ordinea din lista, iar Visual Basic
le interpreteaza in functie de aceasta)
sau caargumente cu nume(cand ordinea nu
este importanta, iar identificarea numelui se
face pe baza numelui indicat)
%
-
8/11/2019 Lectia2_VBA
9/29
-
8/11/2019 Lectia2_VBA
10/29
In Visual Basic declararea unei variabile se face prin
intermediul instructiunilor Public.Private.Static sau
Dim:
{Public|Private|Static|Dim} nume_variabila [As
tip_date}[.]
Variabilele de tip Variant este o variabila de tip
special care se aseamana din punctul de vedere al
memorarii datelor unei celule dintr-o foaie de lucru.Ambele pot sa contina numere, siruri, date
calendaristice, referinte, etc.
Sub DeterminTip()
Dim Var X(10) As Integer
Dim Cod As Integer, Tip As String
Var = #11-11-1995# Cod = VarType(Var) Returneaza: 7
Tip = TypeName(Var) Returneaza : Date
Cod = VarType (X) Returneaza: 8194=8192(tablou)+2(de
intregi)
Tip = TypeName(X) Returneaza: Integer
End Sub
Intr-o variabila Variant putem sa memoram si altetipuri de informatii ca:
-valoarea Empty- este interpretata ca zero sau sir
nul in functie de context
-valoarea Null- indica valori necunoscute sau lipsa.
Valoarea Null se propaga in expresii
-valoarea Error reprezinta coduri de eroare definite
de utilizator
10
-
8/11/2019 Lectia2_VBA
11/29
Proceduri. Se declara explicit o constanta si o
variabila locala de tip Integer, respectiv Single intr-o
procedura :
Sub Calcul()
Const LIMITA_MAX As Integer = 16
Dim SumaTotala As Single
...
End Sub
Aceste constante /variabile poarta numele de
constante sau variabile de modul.Prin combinarea mai multor variabile putem obtine
un tip de date definite de utilizator (exemplu :
inregistrarea atributelor entitatii Angajati :Type Angajati
Marca As Integer
Nume As String * 15
Prenume As String * 10 DataNasterii As Date
SalariuBaza As Integer
DataAngajarii As Date
Casatorit As Boolean
Copii As Integer
End Type
Function CalculSalariu(ProcentIndexare As Single) As Single
Dim Angajat1 As Angajati
Dim MarcaAngajat As Integer, SalBaza As Single
MarcaAngajat = Angajat1.Marca
SalBaza = Angajat1.SalariuBaza
SalBaza = SalBaza * (1 + ProcentIndexare / 100)
Angajat1.SalariuBaza = SalBaza
If Angajat1.Copii0 Then
.
End If
11
-
8/11/2019 Lectia2_VBA
12/29
End Function
Operatori pentru siruri de caractere:
& concatenare (adauga al doilea sir la
sfarsitul primului)
Like similitudine (verifica daca sirul al doilea
se gaseste in cadrul primului)
5.3. Enunturile VBA
UnenuntVisual Basic este o constructie careintroduce o declaratie, o definitie sau o actiune.
Enunturile trebuie sa respecte, in intregime, o
anumita sintaxa ceruta de limbaj.
Declaratiilesunt enunturi care anunta intentiade a folosi variabile cu anumite caracteristici (nume,
tip de date, valori initiale).
Definitiile permit introducerea constantelor
simbolice sau a unor elemente de structurare si demodularizare a programelor care se numesc
proceduri.Enunturile care descriu o actiune poarta
numele deinstructiuni.Dintre instructiunile VisualBasic prezentam urmatoarele:
12
-
8/11/2019 Lectia2_VBA
13/29
a) instructiunea de atribuireprin care
valoarea unei expresii este memorata intr-o
variabila.
Sintaxa unei instructiuni de atribuire este
urmatoarea:
[Let] variabila = expresie
b) in legatura cu stabilirea valorii unei
proprietati sau cu executia unei metode aunui obiect se prezintainstructiunea With :
With obiect
[secventa_instructiuni]
End With
unde:
o obiect - este numele obiectului sau al
variabilei de un tip de date definit de
utilizator asupra caruia (careia) se va
actiona in secventa de instructiuni din
interiorul instructiunii Witho secventa_instructiuni este secventa de
instructiuni prin care se va actiona asupra
obiectului sau a variabilei de un tip de
date definit de utilizator, fara sa mai fie
necesara nominalizarea repetata a acestuia
(acesteia).
1
-
8/11/2019 Lectia2_VBA
14/29
Function FormatCelula()
With Application.Cells(1, 1)
Font.Name = Verdana
Font.Bold = True Font.Size = 12
Value = 0,23
End With
End Function
Function Imbricare()
Dim obj As Object
Set obj = Asociem variabila cu un obiect
With obj
Height = 100 Identic cu obj.Height = 100
Caption = BilantIdentic cu obj.Caption = Bilant
With. Font
Color = RE Identic cu obj.Font.Color = Red
Bold = True Identic cu obj.Font.Bold = True
End With
End With
End Function
c) daca un enunt nu incape intr-o linie
putem sa-l continuam pe linia urmatoare prin
plasarea caracterului de continuare, pe ultima
pozitie a liniei curente. Aceste se compune dintr-un
caracter spatiu ( ), urmat de caracterul subliniere
(_).
Procedurilesunt elemente folosite in Visual Basicpentru modularizarea programelor. Visual Basic
accepta doua tipuri de proceduri:
Sub si
Function;
1!
-
8/11/2019 Lectia2_VBA
15/29
diferenta dintre le fiind faptul ca procedurile
Function pot sa returneze o valoare.
Procedurile sunt constituite din urmatoarele parti:
marcajele de inceputsisfarsitsunt realizate cu
instructiunile Sub si End Sub respectiv
Function si End Function
parametrii formalisunt separati prin virgula.
Rolul acestora este de a receptiona, la apelul
procedurii, valorile de lucru(argumente) corpul procedurii care este alcatuit din
instructiunile care determina actiunile efectuate
de procedura
Definirea procedurilor
oPrivate este plasat inaintea instructiunii Sub,daca dorim ca procedura sa fie accesibila
numai celorlalte proceduri din modulul in
care a fost definita.
oPublic- este plasat inaintea instructiunii Sub,
daca dorim ca procedura sa fie accesibila
tuturor procedurilor din toate modulele
oStatic- este folosit in cazul in care dorim sa
pastram valorile tuturor variabilelor locale
intre cele doua apeluri ale procedurii. El
trebuie plasat inaintea instructiunii Sub.
Sub CalculSuprafata (ByVal Raza As Single)
Dim Suprafata As Double Variabila locala If Raza < 0 Then Test argument
1"
-
8/11/2019 Lectia2_VBA
16/29
Exit Sub Abandon daca este incorect
End If
Suprafata = 3,14 * Raza 2 Calcul suprafata cerc
Debug.Print Suprafata Afisarea rezultatuluiEnd Sub
Organizarea si accesarea foilor pentru module
In Excel procedurile le pastram sunt
pastrate in foi speciale, numitefoi pentru modulesaupe scurtmodule. Acestea sunt create si introduse in
mapa activa prin executia subcomenzii Module acomenzii Macro, din meniul Insert.
Un modul este alcatuit din :
tipuri de date definite de utilizator,
din structuri de date (constante, variabile,
tablouri) si
din proceduri.
Organizarea sistematica a unui modul este
importanta pentru ca usureaza intelegerea intentiilor
proiectantului si simplifica munca de intretinere. De
aceea, este bine sa grupam procedurile, care
contribuie la rezolvarea fiecarei sarcini mai complexe,
in module separate.
In cadrul unui modul, recomandam urmatoarea
organizare :
la inceput o explicatie globala asupra scopului
modulului
1#
-
8/11/2019 Lectia2_VBA
17/29
continuam cu declaratii pentru : optiuni Visual
Basic, constante, variabile si tipuri de
datedefinite de utilizator
definim procedurile, precedate de comentarii
care sa prezinte interfata (parametrii si valoare
returnata) si sa explice actiunile efectuate
Folosind mecanismul de apel al procedurilor
putem sa executam proceduri din acelasi modul
cu apelantul din aceeasi mapa sau din alte mape.
In cazul in care apelam o procedura dintr-un altmodul, va trebui sa indicam numele modulului
(intre paranteze drepte) si numele procedurii,
separate printr-un punct.
Daca dorim sa folosim procedura Prelucrare() de
tip Function, din modulul Modul_Calcul, folosim o
constructie de felul urmator :Sub Calcule()
Var = [Modul_Calcul].Prelucrare(Arg1, Arg2)
End Sub
Executia unei proceduri definite intr-o alta
mapa este posibila numai dupa ce stabilim oreferintadin Visual Basic la mapa respectiva.Dupa stabilirea referintei, modulele si procedurile
mapei sunt puse la dispozitia Visual Basic si deci
vor fi accesibile.
Pentru stabilirea unei referinta la o alta mapa :
1.Salvam mapa cu care dorim sa stabilim referinta,
1$
-
8/11/2019 Lectia2_VBA
18/29
daca nu a fost salvata deja (mapa tinta)
2.Selectam mapa sursa a referintei
' Selectam un modul Visual Basic si execum
comanda References, din meniul Tools
!' In caseta pentru dialog References, selectam
numele mapei tinta in caseta Available References,
iar daca numele nu apare in lista, actionam
butonul Browse, pentru a-l cauta si include in lista5.Selectam caseta de control din dreptul numelui
mapei tinta , daca nu a fost deja selectata.
6.Actionam butonul OK
5.4 . Apelarea functiilor Excel din VBA
Aplicaiile din suita Office au ca limbaj de
programare (sau de scripting) nativ Visual Basic for
Applications (VBA). Acesta este un dialect specializat
al limbajului Visual Basic de la Microsoft. VBA pune
la dispoziia programatorului un set de obiecte,
metode, proprieti i funcii care permit efectuarea
unor prelucrri complexe asupra documentelor
Office. De asemenea, cu ajutorul lui VBA se pot crea
forme (cu majoritatea elementelor de interactivitate
disponibile n Visual Basic) pentru automatizarea
generrii sau prelucrrii documentelor, dar i pentru
realizarea schimbului de informaii cu alte aplicaii.
Functiile Excel sunt in marea lor parte disponibile si
1%
-
8/11/2019 Lectia2_VBA
19/29
la scrierea codurilor VBA. Unele dintre acestea nu-si
gasesc utilitatea in V.B.A. deoarece Visual Basic
ofera operatori specifici ce au acelasi efect ca functiile
Excel.
Obiectul WorksheetFunction este utilizat caelement intermediar in apelarea functiilor Microsoft
Excel specifice foii de lucru care pot fi apelate de
Visual Basic. Functiile predefinite din VBA nu se
utilizeaza alaturi deWorksheetFunctionchiar daca auaceeasi denumire cu functii din Microsoft Excel.
De exemplu Application.WorksheetFunction.Log
va returna alta valoare decat Log. Exemplul urmator
prezinta modul de apelare a functiei Max dintr-o
macroinstructiune:
Sub Maximum()
Dim K As Range
Set K = Worksheets(sheet1).Range(C1:C23)
Maxim =Application.WorksheetFunction.Max(K)
MsBox (Maximul este & maxim)
End Sub
5.5. Obiecte Excel
5.5.1.Obiectul Application
VBA foloseste obiectul Application pentru a face
referire la programul Excel. Fiind elementul din topul
ierarhiei de obiecte, prin intermediul obiectului
Application, folosind notatia cu punct se pot accesa
toate obiectele situate pe trepte inferioare. Obiectul
1&
-
8/11/2019 Lectia2_VBA
20/29
Application are o multitudine de proprietati si
metode. Cele mai utilizate proprietati si metode ale
obiectului sunt explicate in tabelele urmatoare :
Tabel1 Proprietatile obiectului Aplication
Proprietate Descriere
ActiveCell Permite referirea la celula activa
ActiveSheet Permite referirea la foaia de calcul activa
ActiveWindow Permite referirea la fereastra activa
Active WorkBook Permite referirea la fisierul Excel deschis (in
cazul in care sunt deschise mai multe fisiere
simultan referirea se face la fisierul la care se
lucreaza)
Caption Stabileste textul afisat in bara de comanda a
ferestrei Excel
StatusBar Stabileste textul ce va fi afisat in bara de stare
a aplicatiei
WorkBooks Permite referirea la colectia registrelor de calculdeschse intr-un anumit moment
Tabel 2 Metodele obiectului Aplication
Metoda ActiuneActivateMicrosoftApp Lanseaza in executie o alta aplicatie Office
FindFile Afiseaza casetaOpenin scopul deschideriiunui fisier
Quit Are acelasi efect ca apelarea meniului File-
Exit
Undo Are acelasi efect ca apelarea meniului File-
Undo
Run Executa o comanda macro
5.5.2. Obiectul WorkBook
20
-
8/11/2019 Lectia2_VBA
21/29
Obiectele WorkBook sunt grupate in colectia
Workbooks si reprezinta registrele de calcul deschisein Excel. Pentru a face referire la un obiect din
colectia Workbooks putem folosi una dintre formele:
Workbooks(nume fisier) sau
Workbooks(indice numeric)3
De exemplu comandaWorkbooks(Evidenta
studenti).Save are ca efect salvarea modificarilor din
registrul de clacul respectiv. Daca se doreste referirea
la registrul de calcul activ comanda anterioara se
poate scrie si astfel: Activeworkbook.Save. Obiectul
raspunde la un set complex de evenimente (Open,Close, BeforeClose, SheetCalculate) permitand
realizarea unor secvente de cod extrem de utile.
Tabelul urmator prezinta cateva din proprietatile
disponibile :
Tabel 3 Proprietatile obiectului WorkBook
Proprietate Descriere
ActiveSheet Permite referirea la foaia de calcul activa
Path Returneaza calea completa spre fisierul
Excel
Sheets Permite referirea la intrega colectie de foi de
calcul a fisierului
Indicele nu(eric este alocat in colectie in ordinea in care )isierele au )ost create
21
-
8/11/2019 Lectia2_VBA
22/29
Names Returneaza colectia de nume definite in
registrul de calcul
Run Executa o comanda macro
Private Sub Workbook_Open()
Urmatoarea procedura are ca efect afisarea lunii curente intr-o caseta
de tip MsgBox in momentul deschiderii fisierului
MsgBox Suntem in ziua luna& Month (Now())
End Sub
5.5.3. Colectia WorkSheets
Un fisier Excel poate contine mai multe foi de
calcul. Un obiect Worksheet reprezinta o anumita
foaie de calcul din cadrul colectiei WorkSheets4
cuprinde toate foile registrului. Cateva dintre
proprietatile disponibile sunt prezentate in tabelul 4
(Tabel 4 Proprietatile colectiei WorkSheets).Obiectul dispune de cateva metode des utilizate
precum cele exemplificate mai jos :
Sub Exemplu()
listarea la imprimanta a foii de calcul
Application.Worksheets (Balanta de verificare).PrintOut
stergerea unei foi de calculApplication.Worksheets(Balanta provizorie).Delete
End Sub
!Alaturi de colectia *or+heets eista si colectia heets' .i)erenta consta in )aptul ca
pri(a este incorporata in cea de-a doua care (ai contine si gra)icele /colectia Charts
22
-
8/11/2019 Lectia2_VBA
23/29
Tabel 4 Proprietatile colectiei WorkSheets
Proprietate Descriere
Cells Face referire la toate celulele foii de calculColumns Face referire la colectia coloanelor foii de
calcul
Range Returneaza un obiect de tip Range (un camp
de celule al foii de calcul)
Rows Face referire la colectia liniilor din foaia de
calcul
Visible Stabileste vizibilitatea sau ascunderea foii de
calcul respective
5.5.4.Obiectul Range
Refera o celula sau o plaja de celule. Pozitia
acestui obiectnierarhia de obiecte Excel :
Modul de utilizare al obiectului esteRange (Adresa / Plaja adrese) .Daca nu se indica oanumita foaie de calcul se considera foaia de calcul
curenta. Exemplu : Range(1)refera celual A1,Range(A2 :B2)refera plaja de celule A2 :B2,Worksheets (Sheet2).Range(A28) refera celula A28de pe foaia de calculSheet2 etc.
Tabel 5 Proprietatile obiectului Range
Proprietate Descriere
Adress Returneaza adresa celulei sau a plajei de celule
referite de un obiect Range
Column Numarul primei coloane din adresa /plaja de
adrese referite de un obiect Range
Row Numarul de celule din adresa/plaja de adresereferite de un obiect Range
2
-
8/11/2019 Lectia2_VBA
24/29
Formula Stabileste formula continuta de o celula/plaja
de celule de un obiect Range
MegeCells Uneste mai multe celule (True) intr-una singura
sau anuleaza unirea acestora (False)
Value Stabileste valoarea continuta de celula sau
plaja de celule referita de un obiect Range
WrapText Continutul unei celule/plaje de celule va fi scris
pe mai multe randuri
Tabel 6 Metodele obiectului Range
Metoda Descriere
Union Uneste mai multe zone referite de mai multe
obiecte Range intr-unul singur
Clear Goleste continutul celulelor referite de un obiect
Range
Copy Copiaza in ClipBoard continutul celulelor referite
de un obiect Range
Delete Sterge celulele referite de un obiect RangeSelect Selecteaza celulele referite de un obiect Range
UnMerge Anuleaza unirea mai multor celule intr-una
singura
Exemplu de utilizare a obiectului Range :Sub Exemplu_Range()
Dim Zona As Range, Z1 As Range, Z2 As Range, Z3 As Range
Set Zona = Range(A1 :B10)Afisare adresa plajei de celule
MsgBox Adresa: & Zona.Address
Prima coloana din plaja de celule
MsgBox Prima coloana: & Zona.Column
Afisare numar celule
MsgBox Numar celule: & Zona.Count
Unire celule intr-una singura
Range(A20:A40).MergeCells =True
Scriere pe mai multe randuriRange(C20:D40).WrapText =True
2!
-
8/11/2019 Lectia2_VBA
25/29
Stabilirea unei valori
Range (D10 :E20).Value = 10000
Introducerea unei formule
Range (F10:G20).Formula = = d10+d11
Anularea unirii zonei a20:a40
Range (A20:a40).UnMerge
Set Z1 =Range (A1:B40)
Set Z2 =Range (A100:B400)
Unire zona Z1 cu Z2 in Z3
Set Z3 = Union (Z1,Z2)
Afisare adresa Z3
MsgBox Z3.Address
End Sub
5.6. Evenimente
EvenimentulClick
Se produce in momentul in care se actioneaza o
singura data butonul mouse-ului intr-un obiect sau
dupa selectarea unei valori din mai multe posibileacolo unde este cazul (exemplu selectarea unei valori
dintr-o lista derulanta de valori-ComboBox-va genera
producerea evenimentuluiClick).
Pentru controlul CodFurnizor a fost atasata
evenimentului Click procedura de mai jos:
Private Sub CodFurnizor_Click()
Dim T
T = Me.CodFurnizor.Column()
Me.DenumireFurnizor.Value = Me.CodFurnizor.Column(1)
Me.Adresa.Value = Me.CodFurnizor.Column(2)
Cells(ActiveCell.Row, 2).Value = Me.CodFurnizor.Column(1)
ActiveCell.Value = T
End Sub
2"
-
8/11/2019 Lectia2_VBA
26/29
5.7. Exemplu de aplicatie VBA.5
Sa se construiasca un formular pentru calcululsi afisarea rezultatelor costului pentru plata chiriilor
in lei grei pentru apartamente cu doua si trei camere.
Programul preia date cu InputBox si afiseaza
informatii prelucrate cu casete text ; se folosesc dea
semenea butoanele de optiune utilizand proprietatea
Enabled.
"Probleme si teste rezolvate se gasesc in Birotica aplicata-autor Gramada Argentina
Editura Renaissance , 2!
2#
-
8/11/2019 Lectia2_VBA
27/29
Preluarea datelor (a chiriei percepute pe luna si a
numarului de luni) se face prin casete InputBox.
Dimensionarea variabilelor
Dim LUNI As Long
Dim SUMA As Long
Dim VENIT As Long
Private Sub OpT_2CAM_Click()
2$
-
8/11/2019 Lectia2_VBA
28/29
OPT_3CAM.Enabled = False
TEXT2.Text = 0
TEXT4.Text = 0
TEXT6.Text = 0SUMA = InputBox("CHIRIE PERCEPUTA PE LUNA")
TEXT1.Text = SUMA
LUNI = InputBox("PERIOADA DE INCHIRIERE ( NR. LUNI )")
TEXT3.Text = LUNI
VENIT = TEXT1.Text * TEXT3.Text
Afisarea rezultatelor in casete text cu folosirea functiei
Format si Cstr
TEXT5.Text = CStr(Format(VENIT, "STANDARD"))
OPT_3CAM.Enabled = True
End Sub
Private Sub OPT_3CAM_Click()
OPT_2CAM.Enabled = False
TEXT1.Text = 0
TEXT3.Text = 0TEXT5.Text = 0
SUMA = InputBox("CHIRIE PERCEPUTA PE LUNA")
TEXT2.Text = SUMA
LUNI = InputBox("PERIOADA DE INCHIRIERE ( NR. LUNI )")
TEXT4.Text = LUNI
VENIT = TEXT2.Text * TEXT4.Text
TEXT6.Text = CStr(Format(VENIT, "STANDARD"))
2%
-
8/11/2019 Lectia2_VBA
29/29
OPT_2CAM.Enabled = True
End Sub