Sunteți pe pagina 1din 29

Motto

Isi uita nevoile vechi pentru a


mplini lipsuri noi
Grigore Moisil
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 defneste 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 cu
ajutorul unor Operatii:
succesive
ordonate
unic determinate.
Algorimul are ca forma de reprezentare :
limbajul pesudocod
2
schema logica
Obiectul este o entitate din lumea reala avand
limite precise si un sens prcis in contextul
problemei studiate
1
.
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) consta
intr-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 utilizarea
obiectelor cu posibilitatile folosirii tehnicii avansate
de programare ( modularizare, structurare, folosirea
instructiunilor de control a secventei de executie).
Limbajul de programare stabileste ce entitati pot
f prelucrate si in ce fel anume, dar si modul in care
trebuie sa fe descrise atat entitatile, cat si actiunile.
Din punctul de vedere al programatorilor un
obiect este o multime de date plus o serie de operatii
(metode) care manipuleaza datele
2
.
5.1.Obiecte si colectii
1
Popa Gheorghe, Iliescu Matei- Visual Basic-Editura Cison-2002
2
Anton Cerchizan

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
defneste 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 grafce.
5.2. Utilizarea obiectelor
Obiectele au anumite trasaturi specifce care le
caracterizeaza si pe care le numim proprietati.
Proprietatile reprezinta atribute ale obiectelor,
care descriu aspectul, starea sau comportarea
acestora.
Pentru obiectul Workbookcele mai semnifcative
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 numite metode.
!
Cand programam in Visual Basic avem
posibilitatea sa manevram obiectele care ne
intereseaza in trei feluri :
sa stabilim valoarea unei proprietati a obiectului
si, in acest fel, sa-i modifcam starea
sa citim valoarea curenta a unei proprietati si,
deci, sa-i determinam starea
sa cerem ca un obiect sa efectueze una dintre
actiunile (metodele ) care-l caracterizeaza.
Proprietatile fecarui obiect au valori implicite
specifce fecarui obiect. Modifcarea acestor valori se
poate face in faza de proiectare prin modifcarea
valorilor implicite cu caseta Properties.
Modifcarea valorilor se poate face in faza de executie
se face prin cod. Pentru ca sa punem proprietatea la
o anumita valoare, folosim urmatoarea sintaxa :
Obiect.proprietate = expresie
unde :
obiect - este o referinta la un obiect
(eventual incluzand recipientii sai)
proprietate -este numele unei proprietati a
obiectului
expresie - este enuntul care va genera
valoarea pe care dorim sa o atribuim proprietatii
De exemplu, pentru afsarea primei foi si pentru
ascunderea foii de lucru Sheet13, din mapa activa,
folosim urmatoarele enunturi :
"
Sub VizInviz ()
ActiveWorkbook.Worksheets(1).Visible = True
ActiveWorkbook.Worksheets(Sheet3).Visible = False
End 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-l
afsam intr-o caseta pentru dialog predefnita folosim
proprietatea Name si functia MsgBox() :
Sub AfseazaNume()
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 ?
#
Pe langa proprietati , obiectele au metode. Acestea
stabilesc actiunile pe care le poate executa obiectul si
care 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.metoda
Exemplu:
Sub EliminaFoaie()
ActiveWorkbook.Worksheets(Sheet3).Delete
End Sub
Sub CopiazaButon()
ActiveSheet.Buttons(1).Copy
End Sub
b)daca metoda primeste o lista cu argumente, dar
nu dorim sa salvam valoarea returnata de
metoda, 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
$
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, este
obligatorie 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 fe precizate in doua feluri :
ca argumente conventionale, caz in care este
importanta ordinea din lista, iar Visual Basic
le interpreteaza in functie de aceasta)
sau ca argumente cu nume (cand ordinea nu
este importanta, iar identifcarea numelui se
face pe baza numelui indicat)
%
Variabila numele variabilei in care se salveaza
valoarea returnata de metoda
Sub CopiazaFoaie()
Application.Worksheets(Sheet1).Copy_
After := Workbooks(Buget).Worksheets(Balanta)
End Sub
Exemplu:
Metoda Characters returneaza un sir de
caractere cu lungimea ceruta, din obiectul prelucrat,
apoi transforma in indice un caracter al textului
originar
Sub IaCaractere()
Dim Sir As String
Sir = ActiveCell.Characters(3, 5)
ActiveCell.Characters(3, 1).Font.Subscript = True
End Sub
Nota : Separatorul din lista este stabilit in fla cu
eticheta Module General, din caseta pentru dialog a
comenzii Option, din meniul Tools
Constantele introduc valori care nu se modifca in
timpul executiei unui program sau intre doua
executii ale acestuia.
Variabilele permit memorarea unor date care pot f
modifcate.
&
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 alte
tipuri 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 defnite
de utilizator
10
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 defnite 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.Copii<>0 Then
.
End If
11
End Function
Operatori pentru siruri de caractere:
& concatenare (adauga al doilea sir la
sfarsitul primului)
Like similitudine (verifca daca sirul al doilea
se gaseste in cadrul primului)
5.3. Enunturile VBA
Un enunt Visual Basic este o constructie care
introduce o declaratie, o defnitie sau o actiune.
Enunturile trebuie sa respecte, in intregime, o
anumita sintaxa ceruta de limbaj.
Declaratiile sunt enunturi care anunta intentia
de a folosi variabile cu anumite caracteristici (nume,
tip de date, valori initiale).
Defnitiile permit introducerea constantelor
simbolice sau a unor elemente de structurare si de
modularizare a programelor care se numesc
proceduri.
Enunturile care descriu o actiune poarta
numele de instructiuni. Dintre instructiunile Visual
Basic prezentam urmatoarele:
12
a) instructiunea de atribuire prin 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 a
unui obiect se prezinta instructiunea With :
With obiect
[secventa_instructiuni]
End With
unde:
o obiect - este numele obiectului sau al
variabilei de un tip de date defnit de
utilizator asupra caruia (careia) se va
actiona in secventa de instructiuni din
interiorul instructiunii With
o secventa_instructiuni este secventa de
instructiuni prin care se va actiona asupra
obiectului sau a variabilei de un tip de
date defnit de utilizator, fara sa mai fe
necesara nominalizarea repetata a acestuia
(acesteia).
1
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
(_).
Procedurile sunt elemente folosite in Visual Basic
pentru modularizarea programelor. Visual Basic
accepta doua tipuri de proceduri:
Sub si
Function;
1!
diferenta dintre le find faptul ca procedurile
Function pot sa returneze o valoare.
Procedurile sunt constituite din urmatoarele parti:
marcajele de inceput si sfarsit sunt realizate cu
instructiunile Sub si End Sub respectiv
Function si End Function
parametrii formali sunt 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
Defnirea procedurilor
oPrivate este plasat inaintea instructiunii Sub,
daca dorim ca procedura sa fe accesibila
numai celorlalte proceduri din modulul in
care a fost defnita.
oPublic- este plasat inaintea instructiunii Sub,
daca dorim ca procedura sa fe 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"
Exit Sub Abandon daca este incorect
End If
Suprafata = 3,14 * Raza ^ 2 Calcul suprafata cerc
Debug.Print Suprafata Afsarea rezultatului
End Sub
Organizarea si accesarea foilor pentru module
In Excel procedurile le pastram sunt
pastrate in foi speciale, numite foi pentru module sau
pe scurt module. Acestea sunt create si introduse in
mapa activa prin executia subcomenzii Module a
comenzii Macro, din meniul Insert.
Un modul este alcatuit din :
tipuri de date defnite 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 simplifca munca de intretinere. De
aceea, este bine sa grupam procedurile, care
contribuie la rezolvarea fecarei sarcini mai complexe,
in module separate.
In cadrul unui modul, recomandam urmatoarea
organizare :
la inceput o explicatie globala asupra scopului
modulului
1#
continuam cu declaratii pentru : optiuni Visual
Basic, constante, variabile si tipuri de
datedefnite de utilizator
defnim 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 alt
modul, 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 defnite intr-o alta
mapa este posibila numai dupa ce stabilim o
referinta din Visual Basic la mapa respectiva.
Dupa stabilirea referintei, modulele si procedurile
mapei sunt puse la dispozitia Visual Basic si deci
vor f accesibile.
Pentru stabilirea unei referinta la o alta mapa :
1.Salvam mapa cu care dorim sa stabilim referinta,
1$
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 lista
5.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 Ofce 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
Ofce. 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%
la scrierea codurilor VBA. Unele dintre acestea nu-si
gasesc utilitatea in V.B.A. deoarece Visual Basic
ofera operatori specifci ce au acelasi efect ca functiile
Excel.
Obiectul WorksheetFunction este utilizat ca
element intermediar in apelarea functiilor Microsoft
Excel specifce foii de lucru care pot f apelate de
Visual Basic. Functiile predefnite din VBA nu se
utilizeaza alaturi de WorksheetFunction chiar daca au
aceeasi 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&
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 fsierul Excel deschis (in
cazul in care sunt deschise mai multe fsiere
simultan referirea se face la fsierul la care se
lucreaza)
Caption
Stabileste textul afsat in bara de comanda a
ferestrei Excel
StatusBar
Stabileste textul ce va f afsat in bara de stare
a aplicatiei
WorkBooks
Permite referirea la colectia registrelor de calcul
deschse intr-un anumit moment
Tabel 2 Metodele obiectului Aplication
Metoda Actiune
ActivateMicrosoftApp
Lanseaza in executie o alta aplicatie Ofce
FindFile
Afseaza caseta Open in scopul deschiderii
unui fsier
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
Obiectele WorkBook sunt grupate in colectia
Workbooks si reprezinta registrele de calcul deschise
in Excel. Pentru a face referire la un obiect din
colectia Workbooks putem folosi una dintre formele:
Workbooks(nume fsier) sau
Workbooks(indice numeric)
3
De exemplu comandaWorkbooks(Evidenta
studenti).Save are ca efect salvarea modifcarilor 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 fsierul
Excel
Sheets Permite referirea la intrega colectie de foi de
calcul a fsierului

Indicele nu(eric este alocat in colectie in ordinea in care )isierele au )ost create
21
Names Returneaza colectia de nume defnite in
registrul de calcul
Run Executa o comanda macro
Private Sub Workbook_Open()
Urmatoarea procedura are ca efect afsarea lunii curente intr-o caseta
de tip MsgBox in momentul deschiderii fsierului
MsgBox Suntem in ziua luna& Month (Now())
End Sub
5.5.3. Colectia WorkSheets
Un fsier Excel poate contine mai multe foi de
calcul. Un obiect Worksheet reprezinta o anumita
foaie de calcul din cadrul colectiei WorkSheets
4
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 exemplifcate mai jos :
Sub Exemplu()
listarea la imprimanta a foii de calcul
Application.Worksheets (Balanta de verifcare).PrintOut
stergerea unei foi de calcul
Application.Worksheets(Balanta provizorie).Delete
End Sub
!
Alaturi de colectia *or+,heets e-ista 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 Charts0
22
Tabel 4 Proprietatile colectiei WorkSheets
Proprietate Descriere
Cells Face referire la toate celulele foii de calcul
Columns 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 obiect n ierarhia de obiecte Excel :
Modul de utilizare al obiectului este
Range ( Adresa / Plaja adrese) . Daca nu se indica o
anumita 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 A28
de 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 adrese
referite de un obiect Range
2
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 f 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 Range
Select
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)
Afsare adresa plajei de celule
MsgBox Adresa: & Zona.Address
Prima coloana din plaja de celule
MsgBox Prima coloana: & Zona.Column
Afsare numar celule
MsgBox Numar celule: & Zona.Count
Unire celule intr-una singura
Range(A20:A40).MergeCells =True
Scriere pe mai multe randuri
Range(C20:D40).WrapText =True
2!
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)
Afsare adresa Z3
MsgBox Z3.Address
End Sub
5.6. Evenimente
Evenimentul Click
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 posibile
acolo unde este cazul (exemplu selectarea unei valori
dintr-o lista derulanta de valori-ComboBox-va genera
producerea evenimentului Click).
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"
5.7. Exemplu de aplicatie VBA.
5
Sa se construiasca un formular pentru calculul
si afsarea rezultatelor costului pentru plata chiriilor
in lei grei pentru apartamente cu doua si trei camere.
Programul preia date cu InputBox si afseaza
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#
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$
OPT_3CAM.Enabled = False
TEXT2.Text = 0
TEXT4.Text = 0
TEXT6.Text = 0
SUMA = InputBox("CHIRIE PERCEPUTA PE LUNA")
TEXT1.Text = SUMA
LUNI = InputBox("PERIOADA DE INCHIRIERE ( NR. LUNI )")
TEXT3.Text = LUNI
VENIT = TEXT1.Text * TEXT3.Text
Afsarea 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 = 0
TEXT5.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%
OPT_2CAM.Enabled = True
End Sub
2&