Documente Academic
Documente Profesional
Documente Cultură
Bazele Informaticii PDF
Bazele Informaticii PDF
Departamentul ID-IFR
Facultatea de Știinţe Economice
Specializarea Economia Comerţului, Turismului şi Serviciilor
Forma de învăţământ ID
Anul de studiu I
Semestrul 1
Valabil începând cu anul universitar 2009-2010
Bazele informaticii
CUPRINS
Bazele informaticii I
Cuprins
7 Macrocomenzi 47
Obiectivele Unităţii de învăţare Nr. 7 48
7.1. Înregistrarea unei macrocomenzi VBA 48
7.2. Rezumat 55
Lucrare de verificare Unitate de învăţare Nr. 7 55
8 Editorul VBA 56
Obiectivele Unităţii de învăţare Nr. 8 57
8.1. Lansarea editorului VBA 57
8.2. Mediul de editare VBA 57
8.3. Module VBA 59
8.3.1. Identificarea modulelor 59
8.3.2. Rularea modulelor 59
8.3.3. Save şi Open pentru aplicaţiile Office şi modulele
asociate 60
8.3.4. Sistemul de asistenţă la scrierea codului 60
8.3.5. Proceduri 61
8.3.5.1. Proceduri Sub 61
8.3.5.2. Proceduri Function 63
8.4. Formulare VBA 64
8.4.1. Crearea unui formular 65
8.4.2. Rularea unui formular 66
8.4.3. Controale OLE 66
8.5. Documente Office active 68
8.5.1. Controale ActiveX 69
8.5.2. Proceduri eveniment 70
8.6. Rezumat 72
Lucrare de verificare Unitate de învăţare Nr. 8 73
Bazele informaticii II
Cuprins
9.4.2. Operatori 79
9.4.3. Ordinea de evaluare a expresiilor 80
9.5. Constante şi variabile 81
9.5.1. Constante 81
9.5.2. Variabile 82
9.6. Instrucţiunea de atribuire 83
9.7. Liste (arrays) de variabile 84
9.7.1. Liste dinamice 85
Lucrare de verificare Unitate de învăţare Nr. 9 86
BIBLIOGRAFIE 161
Bazele informaticii IV
Introducere
Bazele informaticii
INTRODUCERE
Stimate cursant,
încă de la început doresc să îţi urez bun venit în domeniul informaticii. Acest curs
se adresează atât cursanţilor cu un grad mai mare de familiarizare cu universul
calculatoarelor cât şi cursanţilor începători. Există totuşi anumite cunoştinţe
specifice necesare parcurgerii acestui curs şi anume:
Cunoaşterea modalităţii de organizare şi manipulare a informaţiei în format
electronic (sistem de fişiere, directoare, copierea, mutarea şi
deschiderea fişierelor).
Operaţii de bază utilizând sistemul de operare Microsoft Windows
(pornirea unei sesiuni de lucru, deschiderea unei aplicaţii, comutarea între
mai multe aplicaţii ce rulează simultan, noţiunea de desktop şi noţiunea de
shortcut, închiderea în mod corespunzător a sistemului),
Utilizarea tastaturii PC standard şi a mouse-ului (combinaţii de taste,
utilizarea tastelor speciale, right şi left click pentru mouse)
Bazele informaticii 1
Introducere
Simbol Semnificaţie
Atenţie
↓ Exemplu_ Exemplu
Indicaţii, menţiuni
Aplicaţii
Bazele informaticii 2
O introducere în calculul tabelar
Bazele informaticii 3
O introducere în calculul tabelar
Fiecare celulă poate conţine unul din următoarele trei tipuri de date : un
text, un număr sau o formulă. Ultimul tip este "găselniţa" problemei.
Numerele aflate în celule sunt legate între ele prin formule, astfel încât dacă se
modifică conţinutul unei celule, aceasta va afecta în lanţ multe altele. De
exemplu, dacă celulele B1, B2, B3, B4, B5, conţin cifre, se poate aduna
conţinutul lor, printr-o formulă plasată în altă celulă: B1+B2+B3+B4+B5 sau
SUM(B1:B5).
Bazele informaticii 4
O introducere în calculul tabelar
Bazele informaticii 5
O introducere în calculul tabelar
Adresa celulei active Linia de editare
Poziţia Home
Bazele informaticii 6
O introducere în calculul tabelar
Operator Nivel
^ (exponenţial) 1
+ (pozitiv), - (negativ) 2
* (înmulţire), / (împărţire) 3
+ (adunare), - (scădere) 4
= (egal), <> (diferit) 5
Bazele informaticii 7
O introducere în calculul tabelar
Funcţii Excel
Funcţiile Excel (de 0, 1 sau mai multe argumente) pot fi introduse
textual, dar este de preferat a se utiliza casetele de editare a lor (se apasă
butonul ):
Implicit sunt afişate cele mai recent utilizate funcţii (Most Recently Used)
dar se pot selecta şi funcţii din categoria dorită (All, Financial, Date & Time …)
↓ Exemplu____________________________________________________________________________________
___________________________________________________________________________________Exemplu ↑
Bazele informaticii 8
O introducere în calculul tabelar
Comenzile mediului de editare Excel.
Conceptul de “foaie electronică de calcul”.
Editarea textului.
Editarea informaţiei numerice.
Editarea formulelor de calcul.
Introducerea funcţiilor.
Definirea domeniilor de celule.
Bazele informaticii 9
O introducere în calculul tabelar
În celula E3, pentru calculul valorii delta, se va înscrie formula:
=B4^2-4*B3*B5 (b2 - 4·a·c)
=IF(E3>=0;(-B4+SQRT(E3))/(2*B3);F2)
=IF(E3>=0;(-B4-SQRT(E3))/(2*B3);F2)
Tasta Acţiune
sau salt cu un caracter, la stânga sau la dreapta
Home salt la începutul liniei de editare
End salt la sfârşitul liniei de editare
Backspace şterge caracterul din stânga cursorului
Delete şterge caracterul de pe poziţia cursorului
Shift + sau selecţie unul sau mai multe caractere
___________________________________________________________________________________Exemplu ↑
↓ Exemplu____________________________________________________________________________________
____________________________________________________________________________________Exemplu ↑
↓ Exemplu____________________________________________________________________________________
Funcţia NPER (Rate rata dobânzii; Pmt plata periodică; Pv valoarea
prezentă - sold), returnează numărul de perioade necesare pentru a obţine un
anumit sold cu rata şi dobânda specificate. Valoarea returnată este de tip real,
de aceea, aceasta trebuie, eventual, rotunjită la o valoare întreagă (cu funcţia
Round). Se poate observa prezenţa unor valori negative (-B1, -B3) dar şi a
relaţiei B2/12 în postură de argument:
↓ Exemplu____________________________________________________________________________________
_____________________________________________________________________________Exemplu ↑
Referire Exemple
coloană relativă, linie relativă A2
coloană absolută, linie absolută $A$2
coloană relativă, linie absolută A$2
coloana absolută, linie relativă $A2
↓ Exemplu____________________________________________________________________________________
____________________________________________________________________________________Exemplu ↑
Formatul celulelor se păstrează. Dacă modul de afişare a valorilor
conţinute în celule trebuie schimbat se va acţiona în consecinţă. De
exemplu dacă într-o celulă se înscrie valoarea 14% formatul celulei va fi
Percentage şi orice nouă valoare numerică înscrisă va fi afişată prin
adăugarea simbolului %.
Cele mai multe funcţii financiare calculează valori monetare, ca urmare
formatul de afişare stabilit va fi Currency.
Editarea conţinutului unei celule
Contopirea celulelor
Editarea funcţiilor de calcul financiar
Inserarea liniilor şi a coloanelor
Ajustarea dimensiunii liniilor şi a coloanelor
Referinţe relative şi absolute de celule
Copiere şi mutare
Formatarea celulelor
Celulele D1:E1, B12:C13, D12:E13 sunt contopite.
Denumirile din capul de tabel sunt scrise pe două rânduri (Alt+Enter
pentru rând nou în interiorul celulei).
În celula E4 este introdusă funcţia TODAY.
Valoare (Pret Unitar * Cantitate) şi Valoare TVA (Valoare * 19%) se vor
calcula doar pentru primul produs (=E8*F8, =G8*19%), pentru restul
produselor formulele se pot copia (de exemplu utilizând mouse-ul).
Sumele totale se vor calcula prin acţionarea butonului din tab-ul Home.
Se vor respecta modalităţile de bordare (Border) şi umplere (Fill).
2. Ştiind suma lunară care se poate investi şi rata dobânzii oferită de o bancă
oarecare să se calculeze câte depuneri sunt necesare pentru a se atinge
soldul propus:
Singurele valori care se introduc de la tastatură (datele de intrare) sunt cele
din celulele B1 (format Currency), B2 (format Percentage), B3 (format
Currency), restul valorilor se calculează.
Numărul de perioade necesar atingerii soldului propus de 1.500 lei prin
depuneri de 100 lei, cu dobânda 13% se calculează în celula E1 cu funcţia
NPER. Rezultatul, rotunjit în E2 (14 depuneri), intră în calculul soldului final
(E3), prin funcţia FV.
Formule:
E1 : =-NPER(B2/12;-B1;-B3)
E2 : =ROUND(E1;0)
E3 : =FV(B2/12;E2;-B1)
A6 : =1
B6 : =D6
C6 : =0
D6 : =$B$1
E6 : =D6
A7 : =A6+1
B7 : =B6+C7+D7
C7 : =B6*$B$2/12
D7 : =$B$1
E7 : =E6+D7
Funcţia FV
Funcţia PV
Funcţia NPER
Funcţia PMT
Funcţia IPMT
Tabele de decizie
↓ Exemplu____________________________________________________________________________________
____________________________________________________________________________________Exemplu ↑
Funcţiile de calcul financiar FV, PV, NPER, PMT, IPMT.
Tabele de decizie.
1. Exerciţii
a. O persoană fizică depune 500 lei, într-un cont de economii, cu o dobândă
anuală de 11% şi îşi planifică să mai depună câte 50 lei timp de 2 ani. Câţi
bani va avea în cont la sfârşitul celor 24 luni (atenţie, argumentul Type este
1)?
Răspuns: 1970,08 lei
d. Cât trebuie să economisiţi lunar ca, după 10 ani, contul în bancă să fie de
1.500 lei la o dobândă lunară de 1% ?
Răspuns: -6,52 lei
a) Plăţile lunare pentru diverse valori ale ratei dobânzii în situaţia în care
plăţile pot fi eşalonate pe un număr de 6, 7 sau 8 ani:
Tabele de date
Denumirile din cap de tabel prin care sunt precizate câmpurile tabelului
de date trebuie să fie diferenţiate în mod corespunzător. Dacă un titlu de
coloană trebuie scris pe mai multe rânduri se poate folosi combinaţia de
taste Alt+Enter . Prin clic dreapta pe zona selecţionată (Format cells,
↓ Exemplu____________________________________________________________________________________
____________________________________________________________________________________Exemplu ↑
↓ Exemplu____________________________________________________________________________________
____________________________________________________________________________________Exemplu ↑
↓ Exemplu____________________________________________________________________________________
Ştergerea unei linii (Table Rows) – linia a doua din tabelul anterior:
___________________________________________________________________________________Exemplu ↑
De cele mai multe ori datele trebuie prelucrate într-o ordine diferită de
cea în care au fost introduse în tabelul de date. Procedeul de ordonare a
tabelelor de date (selecţie pe verticală), după diferite criterii, este realizat pe
nivele (Levels). Ordonarea poate fi ascendentă sau descendentă.
Selectarea opţiunii Filter determină afişarea/ascunderea butoanelor săgeţi
asociate denumirilor de câmpuri, deci, utilizarea sau neutilizarea
acestora.
Prin procedeul de sortare se poate stabili ordinea în care liniile din tabel
intră în prelucrare.
↓ Exemplu___________________________________________________________________________________
____________________________________________________________________________________Exemplu ↑
Dacă se impune necesitatea ordonării unui tabel de date după mai multe
criterii – sortare pe nivele, se alege opţiunea Custom Sort… din meniul vertical
apărut la acţionarea butonului Sort & Filter (tab-ul Home, Editing). În fereastra
Sort se pot adăuga nivele - Add Level sau se pot elimina - Delete Level.
↓ Exemplu____________________________________________________________________________________
___________________________________________________________________________________Exemplu ↑
↓ Exemplu____________________________________________________________________________________
___________________________________________________________________________________Exemplu ↑
Pentru invalidarea unor criterii de filtrare deja stabilite, se alege, din
meniul contextual aferent, opţiunea Select All. Astfel tabelul de date are
disponibile, spre prelucrare, toate înregistrările.
Grafice (diagrame)
Datele din tabele devin mai convingătoare atunci când sunt prezentate
sub formă de histograme, diagrame circulare, grafice liniare, etc. Mediile de
realizare a foilor de calcul electronic conţin facilităţi de redare grafică a
tabelelor.
pentru a putea stabili corelaţii între diverse serii de date se
recomandă reprezentare simultană pe acelaşi grafic a uneia sau a
mai multor serii de date, dar nu a mai mult de şase;
marcarea axelor, scrierea titlurilor şi folosirea legendelor;
folosirea, dacă este necesară identificarea unor valori pe grafic,
liniilor paralele verticale care prelungesc gradaţiile verticale;
marcarea valorilor reprezentative pe grafic;
1) Se selectează seriile;
2) Se fixează colţul stânga-sus al zonei unde va fi afişat graficul;
3) Se selectează tab-ul Insert;
Crearea şi prelucrarea tabelelor de date.
Grafice.
e) lista ţărilor pentru care exporturile sunt cuprinse între 100 şi 300 miliarde
de dolari.
pentru 1b
În Excel, macrocomanda va fi
plasată în registrul de lucru curent, într-un
registru de lucru nou sau în registrul
Personal Macro Workbook
(macrocomenzile vor fi disponibile în toate
registrele de lucru).
____________________________________________________________________________________Exemple ↑
Deoarece modulul de înregistrare a macrocomenzilor memorează toate
acţiunile utilizatorului, este indicată neefectuarea unor comenzi
neesenţiale pe parcursul înregistrării. Intrarea în starea ”Recording”
este marcată în bara de stare a programului Office. Acest buton va fi
acţionat în momentul terminării înregistrării:
Quick Access Toolbar
se acţionează butonul .
din fereastra Modify Button se selectează un
simbol (de exemplu ):
Universitatea "Ovidius" Constanţa
Facultatea de Ştiinţe Economice
Data: 11 februarie 2007 Ora: 11:24
Universitatea "Ovidius" Constanţa
Facultatea de Ştiinţe Economice
Data: 13 februarie 2007 Ora: 17:16
___________________________________________________________________________________Exemplu ↑
Dacă, în bara de mesaje (Message Bar), este notificat faptul că
executarea macrocomenzilor nu este permisă, din motive de
securitate,utilizatorul poate lua decizia adecvată acţionând butonul
:
Macrocomenzile sunt asociate documentelor Office. Ele pot fi salvate
împreună cu aceste documente: din lista Save as type, se selectează tipul
de fişier ce conţine menţiunea Macro-Enabled.
O macrocomandă reprezintă o listă de instrucţiuni scrise în limbajul de
programare Basic, varianta VBA.
VBA este un mediu de programare puternic, asemănător celui din Visual
Studio (Visual Basic, C++, Java, etc.)
Instrucţiunile unei macrocomenzi pot fi editate - se pot modifica, şterge
instrucţiunile Basic existente, se pot adăuga altele noi.
Macrocomenzile pot fi rulate de câte ori este nevoie.
Din motive de securitate, la lansarea aplicaţiilor Office, se notifică
existenţa macrocomenzilor, executarea lor nefiind permisă în mod implicit.
cu simbolul .
Programele din suita Office au asociate un editor VBA numit VBE care
facilitează scrierea şi editarea unor secvenţe program în limbajul Visual Basic
(în cercurile programatorilor profesionişti, Visual Basic Editor este numit mediu
integrat de dezvoltare sau IDE). VBE transpune acţiunile utilizatorului în
instrucţiuni Basic sub forma macrocomenzilor, prin procedeul de înregistrare.
Se pot edita însă şi macrocomenzi proprii, fie pornind de la zero, fie utilizând ca
punct de plecare o macrocomandă înregistrată.
MenuBar
ToolBar
Fereastra
Project
Fereastra
de cod
Fereastra
Properties
Module VBA
Identificarea modulelor
Atunci când se introduce un modul nou într-un proiect, VBA îi atribuie un
nume generic, cum ar fi Module1, Module2, …. Practic este necesară utilizarea
unor nume sugestive pentru ca, prin acestea, modulele să poată fi diferenţiate.
Pentru a schimba numele unui modul:
Se selectează modulul în fereastra Project Explorer.
În fereastra Properties, proprietatea (Name), se tastează numele
modulului. Numele utilizat începe cu o literă, nu conţine spaţii sau semne
de punctuaţie (liniuţele de subliniere sunt acceptate) şi nu are mai mult
de 31 de caractere.
Rularea modulelor
Modulele includ o secvenţă de instrucţiuni Basic care trebuie să fie corecte
din punct de vedere sintactic. Detectarea erorilor se poate efectua prin
compilare (Debug, Compile Project).
____________________________________________________________________________________Exemplu ↑
Proceduri
Un modul este compus din una sau mai multe unităţi de bază numite
proceduri. Există două tipuri de proceduri:
proceduri Sub (subrutine)
proceduri Function (funcţii)
Pentru lucrul cu procedurile trebuie avută în vedere, în primul rând,
definirea grupului de instrucţiuni care vor constitui corpul procedurii şi, în al
doilea rând apelul lor (de câte ori este nevoie).
Proceduri Sub
↓ Exemple______________________________________________________________________________
Procedura apelantă este ex1(), iar cea apelată este ex2() – nu au
argumente:
Procedura apelantă este ex1(), iar cea apelată este ex2() – are 2
argumente:
____________________________________________________________________________________Exemple ↑
Proceduri Function
Între lista parametrilor de apel şi lista argumentelor funcţiei trebuie
să existe o corespondenţă biunivocă, determinată de ordinea
argumentelor în listă.
Exit Function este opţional şi reprezintă punctul de ieşire din
procedură - dacă lipseşte procedura se termină la End Function.
Argumentul As, opţional, impune tipul valorii returnate la
terminarea funcţiei.
↓ Exemple______________________________________________________________________________
Din procedura Sub ex1() este apelată procedura Function ex2() – funcţie
fără nici un argument:
O funcţie ValoareTva, pentru calculul valorii TVA, poate fi definită într-un modul:
____________________________________________________________________________________Exemple ↑
Formulare VBA
Formular Caseta cu
instrumente
Controale OLE
Buton
Etichetă
Casetă de text
Casetă cu listă
Listă derulantă
Casetă de imagine
↓ Exemplu_____________________________________________________________________________
Adăugarea unui buton în formular:
___________________________________________________________________________________Exemplu ↑
Controale ActiveX
Controlul CommandButton este tipic pentru startul evenimentelor. Codul
program de executat este plasat în procedura eveniment Click. Textul afişat
pe buton este conţinut în proprietatea Caption, iar numele lui în proprietatea
(Name). Mediul de proiectare VBA atribuie nume butoanelor
(CommandButton1, CommandButton2, …) dar este indicat ca utilizatorul
să folosească denumiri semnificative.
Controlul Label este utilizat pentru afişarea unor texte care nu pot fi editate
de utilizator. Este util pentru descrierea altor obiecte din formular cum ar fi
TextBox.
Acest control este unul dintre cele mai folosite în programarea interfeţelor
grafice datorită avantajelor pe care le oferă la introducerea datelor şi la
manipularea lor. Defineşte un câmp de editare în care utilizatorul poate
introduce un text (proprietatea Text). Aspectul textului afişat este determinat
de proprietăţile Font şi ForeColor. La fel ca şi la alte controale, proprietăţile
pot fi modificate prin cod program, în timpul rulării aplicaţiei. O casetă de text
poate fi folosită în modul activ (utilizatorul are acces la conţinutul său) sau în
modul inactiv (utilizatorul poate doar să vizualizeze conţinutul, textul fiind
protejat în cazul în care se încearcă modificarea sa).
Este controlul care se foloseşte atunci când trebuie selectată doar o singură
opţiune din mai multe posibile.
Proceduri eveniment
La testarea secvenţelor de cod se produc, deseori, erori
de sintaxă sau de natură logică, mai ales de către
începători. Pentru a le rezolva este necesar un Reset
(din meniul Run al VBA-ului):
Preţul: TVA:
_______________________________________________________________
Se stabilesc proprietăţile:
______________________________________________________________
142,50 27.075
Preţul: TVA:
______________________________________________________________
____________________________________________________________________________________Exemplu ↑
VBA se poate lansa dintr-o aplicaţie Office, cel mai adesea utilizând
shortcut-ul Alt+F11.
După lansarea mediului de programare VBA se pot edita module şi
formulare noi sau se pot edita cele existente (stocate împreună cu
documentele Office sau exportate ca fişiere cu extensia .bas).
Fereastra Project Explorer arată modulele, formularele și documentele
Office din proiect. Un proiect are cel puţin un modul sau un formular.
Pentru a crea o aplicaţie VBA e necesară scrierea codului sursă al
programului şi apoi compilarea programului (Debug, Compile Project)
pentru eliminarea eventualelor erori de sintaxă.
Instrucţiunile programului se introduc în fereastra de cod VBA.
Fereastra Properties afişează atributele unui obiect din proiect.
Controalele se folosesc pentru a realiza interfaţa grafică cu utilizatorul.
Se poate construi o interfaţă cu utilizatorul plasând controale pe un
formular sau pe stratul de text al Word-ului.
Se pot redimensiona controalele (şi formularul) trăgând de punctele de
dimensionare ale controalelor, care apar atunci când este selectat
controlul.
O modalitate de afişare a ferestrei de cod este executarea unui dublu clic
pe controlul pentru care se doreşte scrierea codului de program.
Atunci când utilizatorul apasă pe un buton dintr-un formular sau dintr-un
Bazele informaticii 72
Editorul VBA
Cuvintele
O linie poate ocupa şi două rânduri, reunite prin spaţiu şi linie de
subliniere ( _) la sfârşitul primului rând.
O linie de program poate conţine mai multe instrucţiuni separate
prin : (două puncte), lucru nerecomandabil datorită dificultăţilor
de citire a programului.
Nu este permisă tăierea cuvintelor !
↓ Exemple____________________________________________________________________________________
Comentariile
identificarea programului;
descrierea obiectivului general al programului;
descrierea scopului fiecărei proceduri în parte;
explicarea secvenţelor sau a calculelor mai complexe.
↓ Exemplu____________________________________________________________________________________
'...
REM Aici sunt alte instructiuni
'...
____________________________________________________________________________________Exemplu ↑
Tipuri de date
Există 3 mari categorii de date: numerice, şir de caractere (string) şi
speciale. Încadrarea unei date într-o anume categorie este absolut necesară
pentru a putea efectua calcule sau alte prelucrări. Un şir de caractere este o
secvenţă de zero sau mai multe caractere care sunt tratate ca o entitate. Visual
Basic lucrează cu şiruri de caractere de lungime fixă sau variabilă. Tipul de dată
considerat implicit este Variant, care indică o dată de tip nespecificat. La
preluarea acestei date într-o secvenţă de cod este necesară conversia ei în tipul
corespunzător prelucrării ce urmează.
(byte)
Boolean Date de tipul logic 1 True sau False
Byte 1 0 255
Currency 8 -922.337.203.685.477,5808
Format monetar
922.337.203.685.477,5807
Single 4 -3.4028235E+38
-1.401298E-45
Numere zecimale
Double în virgulă flotantă 8 -1,797.693.134.86232E308
(pentru aplicaţii
ştiinţifice) -4,940.656.458.41247E-324 şi
4,940.656.458.41247E-324
1,797.693.134.86232E308
Date Date calendaristice 8 1 ian. 100 31dec. 9999
şi de timp
____________________________________________________________________________________Exemplu ↑
+ adunare
- scădere
* înmulţire
/ împărţire
^ ridicare la putere
= egalitate
Operator Descriere
Operator Prioritate
Operatorii relaţionali 1
Operatorii logici 2
Operator Prioritate
Ridicarea la putere 1
Înmulţirea şi împărţirea 2
Adunarea şi scăderea 3
↓ Exemplu____________________________________________________________________________________
(3 + 2) * (4 + 1) 25
102 / 4 25.5
102 \ 4 25
102 Mod 4 2
____________________________________________________________________________________Exemplu ↑
Constante şi variabile
Ca toate limbajele de programare, Basic permite utilizarea memoriei
calculatorului pentru stocarea datelor utilizate de programele ce se execută.
Conţinutul acestor zone de stocare este asociat unor identificatori, cuvinte
cărora li se asociază o valoare definită prin unul din tipurile de date menţionate.
Identificatorii de variabile pot conţine litere, cifre şi caracterul de
subliniere (underscore), nu pot să înceapă cu cifre, nu pot conţine spaţii
ori alte caractere speciale.
Este interzisă folosirea unor nume care sunt cuvinte cheie în Basic (de
exemplu, nu se poate defini o variabilă numită Sub, dar se poate
utiliza identificatorul Sub16)
Constante
↓ Exemplu____________________________________________________________________________________
↓ Exemplu____________________________________________________________________________________
"Parvulescu Andrei"
"Constanta"
"204712"
"Str Trifoiului nr 5"
"#%$"
"" 'este şirul nul pentru că intre ghilimele
'nu este specificat nici un caracter
____________________________________________________________________________________Exemplu ↑
↓ Exemplu____________________________________________________________________________________
#1/17/2007#
#1:12:00 PM#
#1/17/2007 1:12:00 PM#
____________________________________________________________________________________Exemplu ↑
Variabile
↓ Exemplu____________________________________________________________________________________
____________________________________________________________________________________Exemplu ↑
Instrucţiunea de atribuire
<NumeVariabilă> = <expresie>
↓ Exemplu____________________________________________________________________________________
↓ Exemplu____________________________________________________________________________________
↓ Exemplu____________________________________________________________________________________
'...
Dim Salariu(25) As Single 'salariul a 25 persoane
Dim Masiv3D(5, 6, 7) As Integer 'Tablou cu 3 dimensiuni
'...
Salariu(0) = 1546.23 'Salariul primei persoane
Salariu(1) = 1265.7 'Salariul celei de a doua persoane
'...
Masiv3D(2, 5, 6) = 11
_____________________________________________________________________________________Exemplu ↑
Liste dinamice
↓ Exemplu____________________________________________________________________________________
(Word)
_______________________________________________________________
_______________________________________________________________
Controale Proprietăţi
CommandButton (Name): Datele
Caption: Date personale
TextBox (Name): Personale
(Word)
_______________________________________________________________
_______________________________________________________________
Controale Proprietăţi
CommandButton (Name): Salarii
Caption: Salariul mediu
TextBox (Name): Media
(1 Rate) Nper 1
MyFV Pmt *
Rate
Unde:
Pmt – reprezintă plăţile,
Rate – este rata dobânzii,
Nper – numărul de perioade.
Să se scrie un program pentru calculul depunerilor băneşti cu dobândă.
(Word)
_______________________________________________________________
Sold 2327,59698849949
_______________________________________________________________
Controale Proprietăţi
CommandButton (Name): Sold
Caption: Sold
TextBox (Name): Valoare
Funcţia Format
Se utilizează, în special, pentru a specifica modul de afişare a numerelor:
Format ( <expresie>, <strFormat>)
<expresie>
poate fi o variabilă, o constantă sau o expresie formată din acestea.
<strFormat> este una dintre valorile predefinite prezentate în tabelul
următor sau formatul de afişare definit de utilizator sub forma unui şir de
caractere. Fiecare caracter # indică o cifră, iar 0 precizează dacă apar în
completare zerouri, la început sau la sfârşit.
<strFormat> Exemple
Format(8.6, "#.#") 8,6
Format(8.6, "#.00") 8,60
Formatarea valorilor numerice
Format(8.76, "#.00") 8,76
Format(8.76, "#.0") 8,8
Format(0.1, "Percent") 10,00 %
Format procentual
Format(0.1, "# %") 10 %
Separarea grupurilor de 3 cifre Format(10000,"###,### lei") 10.000 lei
Format monetar Format(10, "Currency") 10,00 lei
Afişare cu două zecimale Format(10.236, "Fixed") 10,24
Format ştiinţific Format(1233.07, "Scientific") 1,23E+03
True/Yes, False/No dacă <expresie> este #0 Format(0, "True/False") False
sau 0 Format(12.1, "Yes/No") Yes
Format("SALUT", "<") salut
Formatarea string‐urilor
Format("salut", ">" SALUT
Format(Date, "Long Date") 27 martie 2007
Formatarea datelor
Format(Date, "dddd, mmm d yyyy") Marţi, mar 27 2007
calendaristice
… Date este o funcţie VBA care furnizează data curentă
Funcţii matematice
Funcţii financiare
Funcţia Descriere
FV(rate, nper, pmt, pv, type) Calculează valoarea viitoare a unei investiţii bazate
pe plăţi periodice şi constante şi o rată a dobânzii
constantă.
PV(rate, nper, pmt, fv, type) Întoarce valoarea actualizată a unei investiţii.
Valoarea actualizată este suma totală pe care o
reprezintă în prezent o serie de plăţi viitoare. De
exemplu, pentru împrumut, suma împrumutată
este valoarea actualizată pentru creditor.
NPer(rate, pmt, pv, fv, type) Furnizează numărul de perioade pentru o investiţie
bazată pe plăţi periodice constante şi o rată
constantă a dobânzii.
Pmt(rate, nper, pv, fv, type) Calculează plata pentru un împrumut bazat pe plăţi
constante şi o rată constantă a dobânzii.
Ipmt(rate, per, nper, pv, fv, type) Determină plata dobânzii pe o perioadă dată,
pentru o investiţie bazată pe plăţi periodice
constante şi o rată constantă a dobânzii.
Argumentele marcate bold sunt obligatorii, celelalte sunt opţionale.
(Word)
_______________________________________________________________
_______________________________________________________________
Controale Proprietăţi
TextBox (Name): x
TextBox (Name): f
Enabled: False
Procedura eveniment (Change):
Private Sub x_Change()
If IsNumeric(x.Text) And Val(x.Text)>=0 Then
E = Exp(1)
f = Sqr(x ^ 2 + x + 1) + E ^ x
End If
End Sub
2. Scrieţi o secvenţă program prin care să determinaţi a câta zi de naştere
sărbătoriţi astăzi.
(Word)
_______________________________________________________________
_______________________________________________________________
Controale Proprietăţi
TextBox (Name): DataNasterii
TextBox (Name): Zile
Enabled : False
Procedura eveniment (Change):
Private Sub DataNasterii_Change()
If IsDate(DataNasterii) Then
Zile = DateDiff("d", DataNasterii, Date)
End If
End Sub
3. Să se editeze o interfaţă grafică pentru efectuarea unor calcule financiare (funcţiile de
calcul FV, PV, Nper, Pmt).
(Word)
_______________________________________________________________
10
%
13
_______________________________________________________________
Controale Proprietăţi
TextBox (Name): v1
TextBox (Name): v2
TextBox (Name): v3
TextBox (Name): fc
Enabled : False
OptionButton Caption : FV
OptionButton Caption : PV
OptionButton Caption : NPer
OptionButton Caption : Pmt
Procedurile eveniment (Click):
Private Sub OptionButton1_Click()
' Definirea formatului monetar.
Fmt = "###,##0.00 lei"
functia = FV(v1 / 100 / 12, v2, v3)
fc = Format(functia, Fmt)
End Sub
NPer Numărul de luni necesare atingerii unui sold de 2000 lei (depunere
lunară 100, dobânda anuală 9,5%):
(Word)
_______________________________________________________________
_______________________________________________________________
Controale Proprietăţi
TextBox (Name): PlataCt
TextBox (Name): PlataVar
CommandButton (Name): Verificare
Caption : Verificare
Procedura eveniment (Click):
Private Sub Verificare_Click()
'dobanzile pe cele 4 luni
Ipmt1 = IPmt(2 / 100, 1, 4, 4000)
Ipmt2 = IPmt(2 / 100, 2, 4, 4000)
Ipmt3 = IPmt(2 / 100, 3, 4, 4000)
Ipmt4 = IPmt(2 / 100, 4, 4, 4000)
'Suma platilor constante
PlataCt = 4 * Pmt(2 / 100, 4, 4000)
'Suma platilor variabile
PlataVar = (-4000 + Ipmt1 + Ipmt2 + Ipmt3 + Ipmt4)
End Sub
Secvenţa, tradusă în instrucţiuni simple (instrucţiunea de atribuire, instrucţiunea de
apel subprogram, instrucţiuni de intrare/ieşire, subprograme).
Instrucţiune 1 Instrucţiune 2 Instrucţiune n
Selecţia, (structura alternativă) ‐ If … Then … End If.
Instrucţiune 1
True
Condiţie
False
Instrucţiune 2
Ciclul (iteraţia) cu test iniţial sau cu test final (“atâta timp cât”, ”până când”) ‐ Do
While, Do Until.
Instrucţiuni
Condiţie
Instrucţiuni Condiţie
Structurile de control
Structurile selective
If <condiţie> Then
<instrucţiuni 1>
[Else
<instrucţiuni 2>]
End If
_______________________________________________________________
Controale Proprietăţi
TextBox (Name): An
TextBox (Name): R
Enabled: False
Următoarea secvenţă verifică dacă un an este bisect sau nu:
Private Sub An_Change()
If IsNumeric(An) Then
If An Mod 4 = 0 And An Mod 100 <> 0 Or An Mod 400 = 0 Then
R = "Anul este bisect"
Else
R = "Anul nu este bisect"
End If
End If
End Sub
____________________________________________________________________________________Exemplu ↑
Pentru a codifica mai multe alternative, este posibilă înlănţuirea mai multor
instrucţiuni If, dar cu cât numărul acestora este mai mare, cu atât urmărirea lor
devine mai dificilă. Alternativă pentru astfel de situaţii este instrucţiunea Select
Case.
Nuanta de verde
Selecţie: 3 Culoare:
_______________________________________________________________
Controale Proprietăţi
TextBox (Name): Selectie
TextBox (Name): Cul
Enabled: False
Procedura eveniment:
Private Sub Selectie_Change()
Select Case selectie
Case 1
Culoare = "Rosu"
Case 2, 3, 4
Culoare = "Nuanta de verde"
Case 5
Culoare = "Albastru"
Case 6 To 9
Culoare = "Nuanta de gri"
Case Else
Culoare = "Nici o Culoare"
End Select
Cul = Culoare
End Sub
____________________________________________________________________________________Exemplu ↑
↓ Exemplu 2 (Word)________________________________________________________________________
_______________________________________________________________
1 3
a= 2 b= c=
Nu formeaza un triunghi
răspuns:
_______________________________________________________________
Controale Proprietăţi
TextBox (Name): S1
TextBox (Name): S2
TextBox (Name): S3
TextBox (Name): Raspuns
Enabled: False
Procedurile eveniment:
Private Sub S1_Change()
a = Val(S1)
b = Val(S2)
c = Val(S3)
If a < b + c And b < a + c And c < a + b Then
Select Case True
Case a = b And b = c
Raspuns = "Echilateral"
Case a = b Or a = c Or b = c
Raspuns = "Isoscel"
Case Else
Raspuns = "Oarecare"
End Select
Else
Raspuns = "Nu formeaza un triunghi"
End If
End Sub
_______________________________________________________________
_______________________________________________________________
Controale Proprietăţi
TextBox (Name): Nota1
TextBox (Name): Nota2
TextBox (Name): Media
Enabled: False
TextBox (Name): Calificativ
Enabled: False
Procedurile eveniment:
Private Sub Nota1_Change()
n1 = Val(Nota1)
n2 = Val(Nota2)
Media = (n1 + n2) / 2
Select Case Val(Media)
Case Is < 5
Calificativ = "Nesatisfacator"
Case Is <= 7
Calificativ = "Slab"
Case Is <= 8
Calificativ = "Bine"
Case Is < 10
Calificativ = "Foarte bine"
Case 10
Calificativ = "Felicitari"
Case Else
Calificativ = "Eroare"
End Select
End Sub
Private Sub Nota2_Change()
Nota1_Change
End Sub
____________________________________________________________________________________Exemplu ↑
Structurile repetitive
Do While <condiţie>
<instrucţiuni>
[Exit Do]
<instrucţiuni>
Loop
Do Until <condiţie>
<instrucţiuni>
[Exit Do]
<instrucţiuni>
Loop
23 10111
Număr în baza 10: Număr în baza 2:
_____________________________________________________________
Controale Proprietăţi
TextBox (Name): B10
TextBox (Name): B2
Enabled: False
Procedura eveniment:
Private Sub B10_Change()
Dim NumarZecimal As Integer
Dim SirulResturilor(30) As Integer
Dim NumarBinar As String
NumarBinar = ""
NumarZecimal = B10
câtul = NumarZecimal
indice = 0
Do While câtul > 0
SirulResturilor(indice) = câtul Mod 2
câtul = câtul \ 2
indice = indice + 1
Loop
Do Until indice = 0
indice = indice - 1
NumarBinar = NumarBinar & SirulResturilor(indice)
Loop
B2 =NumarBinar
End Sub
indice reprezintă poziţia în şirul resturilor (rezultate prin împărţiri
succesive la 2);
SirulResturilor conţine valorile cifrelor binare (dar în ordine
inversă) şi este o variabilă de tip Array completată in ciclul Do
While;
NumarBinar este şirul caracterelor binare, compus în ciclul Do
Until.
____________________________________________________________________________________Exemplu ↑
_______________________________________________________________
5 6
Numărul natural: Suma:
_______________________________________________________________
Controale Proprietăţi
TextBox (Name): Numar
TextBox (Name): Sum
Enabled: False
Do
<instrucţiuni>
[Exit Do]
[<instrucţiuni>]
Loop While | Until <condiţie>
clauza Step. Variabila contor primeşte o valoare iniţială (<valoare 1>). După
fiecare ciclu, contorul este incrementat şi comparat cu valoarea finală (<valoare
2>). Dacă nu s-a ajuns la valoarea finală, execuţia ciclului de instrucţiuni se reia,
în caz contrar trecându-se la linia de după Next. Exit For are acelaşi rol ca
Exit Do de la comenzile Do … Loop.
100 5050
Suma primelor numere naturale este:
______________________________________________________________
Controale Proprietăţi
TextBox (Name): n
TextBox (Name): Suma
Enabled: False
Procedura eveniment:
Private Sub n_Change()
Suma = 0
For i = 1 To n
suma = suma + i
Next
End Sub
____________________________________________________________________________________Exemplu ↑
Din punct de vedere al referirii variabilelor de lucru, din diferite zone ale
programului, se deosebesc două tipuri de variabile:
Variabilele publice şi locale sunt declarate la început de modul.
Orice program poate conţine unul sau mai multe proceduri.
Singura deosebire dintre procedurile Sub şi Function este că cele
de tip Function returnează o valoare care se atribuie unei variabile
iar celelalte nu.
Din orice procedură pot fi apelate alte proceduri (apeluri în cascadă).
Orice procedură apelată este căutată mai întâi în cadrul secţiunii
curente, apoi în modulele externe.
Execuţia unei proceduri depinde de parametrii externi transmişi
acestuia şi se va opri la sfârşit (End Sub, End Function) sau la
întâlnirea instrucţiunii de ieşire din procedură (Exit Sub, Exit
Function).
După executarea unei proceduri se revine în programul apelant.
O procedură poate avea atributele Private sau Public.
↓ Exemple____________________________________________________________________________________
()
O procedură ValoareTva, pentru calculul valorii TVA (Tva este variabilă cu
atribut Public), poate fi definită într-un modul extern:
()
Se editează o procedură, inclusă într-un modul, pentru ordonarea unui şir
de numere prin metoda interschimbării.
Explicarea metodei interschimbării:
Se consideră un şir de numere a1, a2, a3 … an-1, an.
Se compară, pe rând câte două elemente ale şirului. Dacă valorile lor
corespund criteriului de ordonare (crescător sau descrescător) atunci ele
rămân pe aceeaşi poziţie, dacă nu, se interschimbă:
a1 a2 a3 … an-1 an
Comparările se reiau până când nu mai e necesară nici o interschimbare.
Sub Ordonare(n As Integer, a() As Single)
Dim aux As Single
Do While Not gata
gata = True
For i = 0 To n - 2
If a(i) > a(i + 1) Then
aux = a(i)
a(i) = a(i + 1)
a(i + 1) = aux
gata = False
End If
Next
Loop
End Sub
()
O funcţie ValoareTva, pentru calculul valorii TVA, poate fi definită într-un
modul extern:
Function ValoareTva(val As Single) As Single
ValoareTva = val * 0.19
End Function
Apelul funcţiei şi transmiterea parametrului Valoare se poate realiza în
acelaşi modul sau dintr-un modul extern:
Sub test()
Dim Valoare As Single
Valoare = 12.75
'
v = ValoareTva(Valoare) 'apelul functiei
MsgBox("Valoarea Tva:" & v)
End Sub
()
Pentru calculul sumei 1+1/2+ … +1/n se defineşte următoarea funcţie:
Function Suma(n As Integer)
Dim s As Single
s = 0
For i = 1 To n
s = s + 1 / i
Next
Suma = s
End Function
↓ Exemplu____________________________________________________________________________________
Funcţii recursive
____________________________________________________________________________________Exemplu ↑
(1 Rate) Nper 1
MyFV Pmt *
Rate
Unde:
Pmt – reprezintă plăţile,
Rate – este rata dobânzii,
Nper – numărul de perioade.
Comparaţi rezultatul aplicării ei cu valorile obţinute prin funcţia Basic FV.
_______________________________________________________________
_______________________________________________________________
Controale Proprietăţi
TextBox (Name): Rate
TextBox (Name): Nper
TextBox (Name): Pmt
TextBox (Name): F1
TextBox (Name): F2
CommandButton (Name): Calcul
Caption : Calcul
Procedurile:
Function MyFV(Rate, Nper, Pmt) As Double
MyFV = Pmt * ((1 + Rate) ^ Nper - 1) / Rate
End Function
Private Sub Calcul_Click()
F1 = MyFV(Rate, NPer, Pmt)
F2 = FV(Rate, NPer, Pmt)
End Sub
k
2. Să se calculeze combinările de n luate câte k ( Cn ) utilizând relaţia de
recurenţă:
_______________________________________________________________
5 3 10 Calculează
Combinări de: luate câte: =
_______________________________________________________________
Controale Proprietăţi
TextBox (Name): v1
TextBox (Name): v2
TextBox (Name): Combinari
CommandButton (Name): Calculeaza
Caption : Calculează
Procedurile:
Function comb(n, k) As Integer
If k = 0 Or n = k Then
Comb = 1
Exit Function
End If
If k = 1 Then
Comb = n
Exit Function
End If
comb = comb(n - 1, k) + comb(n - 1, k - 1)
End Function
1, n 0
Fib ( n ) 1, n 1
Fib ( n 1) Fib ( n 2), n 1
_______________________________________________________________
5 8
al -lea termen este
_______________________________________________________________
Controale Proprietăţi
TextBox (Name): Numa
TextBox (Name): Pozitia
Procedurile:
Function Fib(n) As Integer
If n = 0 Or n = 1 Then
Fib = 1
Else
Fib = Fib(n - 1) + Fib(n - 2)
End If
End Function
x, dacă y 0
cmmdc( x, y )
cmmdc( y, x mod y ) dacă y 0
_______________________________________________________________
_______________________________________________________________
Controale Proprietăţi
TextBox (Name): a
TextBox (Name): b
TextBox (Name): rezultat
Procedurile:
Function cmmdc(x, y) As Integer
If y = 0 Then
cmmdc = x
Else
cmmdc = cmmdc(y, x Mod y)
End If
End Function
Formulare (form-uri)
End Sub
↓ Exemplu____________________________________________________________________________________
'
Me.Caption = "Actualizare"
'modifică proprietatea Caption (titlu) a formularului
'
UserForm2.Label1.Caption = "Numele persoanei"
'modifică proprietatea Caption a obiectului Label1
'
Me.Hide
'execută metoda Hide (ascundere)ataşată formularului
____________________________________________________________________________________Exemplu ↑
Proprietatea Caption
fereastra Properties pentru a selecta obiecte din formular. Unui control selectat
i se pot configura proprietăţile.
Proprietatea StartUpPosition
Utilizarea controalelor
Buton
Etichetă
Casetă de text
Casetă de validare
Cadru de grupare
Casetă cu listă
Listă derulantă
Casetă de imagine
Generator de valori
Controlul Label este utilizat pentru afişarea unor texte care nu pot fi
editate de utilizator. Este util pentru descrierea altor controale din formular
cum ar fi TextBox, ListBox, etc.
Proprietate
Name
AutoSize
BackColor
BorderStyle
Caption
ControlTipText
Font
ForeColor
Culoarea cu care este scris textul în cadrul etichetei. Are aceeaşi plajă de valori
ca şi BackColor.
Heigth
Picture
PicturePosition
TextAlign
Visible
Width
↓ Exemplu____________________________________________________________________________________
____________________________________________________________________________________Exemplu ↑
Acest control este unul dintre cele mai folosite în programarea interfeţelor
grafice datorită avantajelor pe care le oferă la introducerea datelor şi la
manipularea lor. Defineşte un câmp de editare în care utilizatorul poate
introduce un text. Controlul TextBox afişează mai multe linii atunci când
proprietatea Multiline este setată pe True. Aspectul textului afişat este
determinat de proprietăţile Font şi ForeColor. La fel ca şi la alte controale,
proprietăţile pot fi modificate prin cod program, în timpul rulării aplicaţiei.
Proprietate
Name
BackColor
BorderStyle
0-FmBackStyleTransparent;
1-FmBackStyleOpaque.
Enabled
ForeColor
MaxLength
MousePointer
Stabileşte felul cursorului mouse-ului atunci când acesta se află pe caseta de text.
Valorile pot fi alese dintr-o listă: AppStarting, Arrow, Cross, Ibeam, NoDrop,
SizeAll …
Multiline
Precizează dacă textul din casetă poate fi plasat pe mai multe rânduri. Este o
proprietate de tip boolean (implict False).
PasswordChar
ScrollBars
↓ Exemplu____________________________________________________________________________________
txtMarca txtCursEuro
txtPretEuro
btnInfo
lblInfo
Principalele proprietăţi:
Proprietate
Name
Nume VBA: CheckBox1, CheckBox2, … Convenţie prefix: chk.
Alignment
Specifică locul de plasare a cadrului de bifare în cadrul controlului. Această
proprietate poate lua valorile Left şi Right. Right este implicit.
Enabled
Este proprietate de tip boolean care stabileşte dacă checkbox-ul este sau nu
activ.
Font
Stilul fontului cu care este scris textul însoţitor.
ForeColor
Culoarea cu care este scris textul însoţitor.
Caption
↓ Exemplu____________________________________________________________________________________
Pe formularul anterior se introduc două CheckBox-uri (chkStoc,
chkTaxe). În procedura eveniment btnInfo_Click se adaugă
următoarele instrucţiuni:
If chkStoc.Value Then
Stoc = "Se afla in stoc"
Else
Stoc = "Nu se afla in stoc"
End If
If chkTaxe.Value Then
Taxe = "Toate taxele incluse!"
Else
Taxe = "Nu include taxe"
End If
lblInfo.Caption = "Autoturismul " & txtMarca.Text & vbCrLf & _
"Are pretul " & PretLei & " lei (cu TVA)" & _
vbCrLf & Stoc & vbCrLf & Taxe
checkBox bifat
Rezultatul prelucrării
_____________________________________________________________________________Exemplu ↑
Rolul controlului de tip Frame este de a grupa două sau mai multe
controale (de regulă, CheckBox sau OptionButton) astfel încât să formeze un
set de elemente între care se stabileşte o relaţie. De exemplu în cazul controlului
CheckBox, utilizatorul poate bifa un control indiferent de starea celorlalte.
Există însă situaţii în care este de dorit ca starea unei opţiuni să elimine în
mod automat celelalte opţiuni şi astfel se ajunge la utilizarea butoanelor de
opţiune structurate într-un grup.
Proprietate
Name
Caption
Enabled
Dacă este True, elementele din grup vor putea fi accesate. Dacă este False,
elementele din grup nu pot fi manipulate de utilizator.
Font
Visible
Dacă este True, grupul este vizibil pe formular; în caz contrar, grupul este
invizibil.
Proprietăţile cele mai importante ale unui control de tip buton radio sunt:
Proprietate
Name
Nume VBA: OptionButton1, OptionButton2, … Convenţie prefix: rbn.
Alignment
Locul de plasare a cadrului de bifare în cadrul controlului. Această proprietate
poate lua valorile Left şi Right. Right este implicit.
Caption
Şirul de caractere care însoţeşte butonul radio.
TextAlign
Modalitatea de aliniere a textului în cadrul controlului. Poate lua valorile Left,
Center, Right. Implicit: Left.
Value
Este proprietatea cea mai folosită, indicând dacă butonul este selectat - True
sau nu – False (implicit).
Visible
Proprietate de tip boolean care stabileşte dacă butonul radio este sau nu vizibil
pentru utilizator.
↓ Exemplu____________________________________________________________________________________
Se plasează pe formular controlul de tip Frame, cu proprietatea Name,
frmCuloare. Se aduc, în interiorul acestui control, din cutia cu instru-
mente, trei butoane radio: rbnAlb, rbnGri, rbnRosu (pentru
selectarea unei culori). Controlul Frame are rolul de container pentru
butoanele radio iar deplasarea lui determină şi deplasarea elementelor pe
care le conţine.
____________________________________________________________________________________Exemplu ↑
În esenţă, controlul ListBox poate conţine mai multe valori care să fie
gestionate pe o suprafaţă fixă de pe formular, accesul la valorile ascunse
realizându-se prin intermediul barelor de derulare. Funcţia Clear permite
ştergere elementelor listei (golirea listei).
Single - bordură.
ColumnWidths
Lăţimea (în număr de puncte) fiecărei coloane în cazul în care lista suportă
coloane multiple.
Enabled
Proprietate de tip boolean care, atunci când are valoarea True, permite
utilizatorului să selecteze elemente din listă. În caz contrar, lista este
vizibilă, dar inactivă.
Font
Stilul fontului pentru elementele din cadrul listei.
ColumnCount
Lista este afişată pe un număr de coloane stabilit prin această proprietate.
MultiSelect
Poate lua una dintre valorile:
Single: utilizatorul poate selecta doar un singur element din listă la
un moment dat (implicit);
Multi: pot fi selectate mai multe valori, prin simpla apăsare a
butonului din stânga al mouse-ului;
Extended: pot fi selectate mai multe valori, prin folosirea mouse-
ului şi a tastei Ctrl, precum şi prin deplasarea mouse-ului în timp
ce butonul din stânga este apăsat.
TextAlign
Implicit, elementele unei liste sunt aliniate la stânga. Se pot face şi alinieri
la dreapta (de regulă pentru elemente de tip numeric) sau la centrul listei.
Visible
Dacă este True, lista este vizibilă; în caz contrar, ea există în memorie, dar
nu este vizibilă pe ecran.
↓ Exemplu____________________________________________________________________________________
Cea mai utilizată operaţiune este cea de adăugare a elementelor în listă
(aici lstAuto). În momentul proiectării interfeţei, cu ajutorul procedurii
Sub UserForm_Initialize(), se introduc elementele listei (aici, mărci
de autoturisme). Utilizându-se o singură coloană
(lstAuto.ColumnCount = 1) lista (lstAuto.List()) se preia din
tabloul Lista(5).
lstAuto
btnAdauga
btnSterge
____________________________________________________________________________________Exemplu ↑
Name
DropButtonStyle
Plain: ;
Arrow (implict): buton de selecţie marcat cu săgeată: ;
Ellipses: ;
Reduce: .
ColumnWidths
Enabled
Dacă este True, lista este activă; dacă este False, caseta este vizibilă pe
ecran, dar nu poate fi selectat nici un element.
Font
ListWidth
MaxLength
TextAlign
Implicit, elementele unei liste sunt aliniate la stânga. Se pot face şi alinieri la
dreapta (de regulă pentru elemente de tip numeric) sau la centrul listei.
Text
Visible
Dacă este True, controlul este vizibil pe formular; în caz contrar, nu este
vizibil pentru utilizator.
↓ Exemplu____________________________________________________________________________________
În exemplul următor se utilizează două ComboBox-uri (cboMarca şi
cboPret). Cu ajutorul procedurii Sub UserForm_Initialize(), se
introduc elementele listei (la fel ca în exemplul anterior - pentru
ListBox):
cboMarca cboPret
btnInfo
lblInfo
Proprietate
Name
BackStyle
Fundalul casetei:
Opaque (implicit);
Transparent.
BorderStyle
↓ Exemplu______________________________________________________________________________
Într-un formular se introduc următoarele controale:
Controlul spbVarsta (cu proprietăţile Min = 1, Max = 120);
Eticheta lblInfo.
lblInfo
↓ Exemplu______________________________________________________________________________
Având formularul UserForm1, deschis, în mediul de proiectare (cu un
buton, CommandButton1 inclus) se adaugă un nou formular.
Se deschide editorul de cod (dublu-clic pe butonul Button1). Se aplică
metoda Show pentru activarea celui de al doilea formular:
Private Sub CommandButton1_Click()
Me.Caption = "Eu sunt formularul 1"
UserForm2.Caption = "Eu sunt formularul 2"
UserForm2.Show
End Sub
____________________________________________________________________________________Exemplu ↑
With <control>
<instrucţiuni>
End With
↓ Exemplu____________________________________________________________________________________
Se creează un formular;
Se introduce, în formular, controlul ListBox cu numele lstCardinale;
Codul următor realizează iniţializarea valorilor din listă:
____________________________________________________________________________________Exemplu ↑
↓ Exemplu _____________________________________________________________________________
Se creează un formular conţinând două butoane radio şi o casetă de
validare.
Codul următor restricţionează accesul la radio butoane:
Private Sub CheckBox1_Click()
With Me 'Me se referă la formularul curent
If .CheckBox1.Value = True Then
.OptionButton1.Enabled = False
.OptionButton2.Enabled = False
Else
.OptionButton1.Enabled = True
.OptionButton2.Enabled = True
End If
End With
End Sub
Efectul bifării/debifării casetei de validare:
____________________________________________________________________________________Exemplu ↑
↓ Exemplu______________________________________________________________________________
Pe un formular se introduc două etichete (Textul 1 şi Textul 2) şi două
CheckBox-uri.
Procedurile care tratează evenimentele Click ale etichetelor impun
focusul:
Private Sub Label1_Click()
CheckBox1.SetFocus
End Sub
Private Sub Label2_Click()
CheckBox2.SetFocus
End Sub
Efectul click-ului pe cele două etichete:
____________________________________________________________________________________Exemplu ↑
Valorile introdu-se, utilizând controalele TextBox, sunt de tip String.
Pentru colectarea unor valori numerice este necesară o conversie (de obicei cu
funcţia Val). Deoarece conversia string numeric ia în considerarea
caracterele, până la primul ce nu reprezintă informaţie numerică, se impune
validarea şirului introdus prin funcţia IsNumeric.
↓ Exemplu______________________________________________________________________________
Pe un formular se introduc două casete de text şi un buton
(btnValidare).
Procedura care tratează evenimentul Click al butonului afişează un
mesaj de eroare realizând focusul pe TextBox-ul care a generat eroarea:
____________________________________________________________________________________Exemplu ↑
↓ Exemplu____________________________________________________________________________________
Pe un formular se introduc un TextBox (txtMem) şi un buton (btnStop)
iar String-ul introdus în TextBox e necesar a fi salvat:
Pentru reutilizarea formularelor proiectate, acestea se exportă ca
un fişier .frm care poate fi importat în alte aplicaţii:
În VBE, unde s-a proiectat formularul, se selectează opţiunea din
meniu File, Export File.
Se alege un nume, pentru fişierul formular, şi Save. Se obţine un
fişier nume.frm.
Reutilizarea formularului necesită deschiderea fişierului stocat:
prin meniu, File, Import File, selectarea numelui formularului şi
Open.
marcate cu simbolul .
2. Să se editeze un formular pentru calcule aritmetice.
Controale
Font, Size 10
Font,FontStyle Bold
Font, Size 10
Font,FontStyle Bold
Font, Size 10
Font,FontStyle Bold
Enabled False
Font, Size 16
Font,FontStyle Bold
Font, Size 16
Font,FontStyle Bold
Font, Size 16
Font,FontStyle Bold
Font, Size 16
Font,FontStyle Bold
Font, Size 16
Font,FontStyle Bold
Procedurile eveniment
Controale
Font, Size 10
Font,FontStyle Bold
TextBox TextAlign 3 -
txtRezultat fmTextAlignRight
Font, Size 10
Font,FontStyle Bold
Enabled False
rbnFV Caption FV
u Font,FontStyle Bold
i
ForeColor Palette, Blue
Font,FontStyle Bold
Procedurile eveniment
Bibliografie
Emil Cosma Aplicaţii Excel, Project, Visual FoxPro, Ed. EXPONTO, 2004
Luminiţa Fînaru, Ioan Brava VISUAL BASIC, Primii paşi … şi următorii, Ed. POLIROM, 2001
Emil Cosma Visual BASIC … VBA 2007 … Studio 2005, Ed. MATRIXROM,
2007
Paul McFedries VBA, Ghid pentru începători, Ed. TEORA, 2006
Octavian Dospinescu Dezvoltarea aplicaţiilor în Visual Basic.NET, Ed. POLIROM,
2004