Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Limbajul Visual Basic

Informatica


Limbajul Visual Basic

Rezumat- se prezinta limbajul de programare Visual Basic sub Excel, si un exemplu de realizare a unei aplicatii Windows pentru calculul salariilor personalului angajat al unei firme.



3.1. Programarea aplicatiilor Windows

Pentru realizarea unei aplicatii pot fi avute īn vedere doua tehnologii de programare si anume:

- programare procedurala

- programare orientata spre obiecte si dirijata de evenimente.

Īn programarea procedurala, o aplicatie este constituita din unul sau mai multe programe care se vor executa īntr-o anumita ordine, fiecare program fiind constituit dintr-o secventa de instructuni scrise īntr-un limbaj de programare.

Acesta era modul clasic de realizare a aplicatiilor si sistemelor informatice si are o serie de dezavantaje printre care: productivitate scazuta īn realizarea programelor, efort mare pentru realizarea programelor si mai ales a interfetelor etc.

Aparitia tehnologiei orientate obiect, a mediilor visuale de programare si a sistemului de operare Windows a condus la aparitia si dezvoltarea unei noi tehnologii de programare a aplicatiilor windows si anume programarea orientata pe obiecte si dirijata de evenimente, tehnologie ce va fi prezentata īn cele ce urmeaza īn cadrul limbajului Visual Basic.

O aplicatie Windows afiseaza unul sau mai multe ecrane care contin obiecte cu care va interactiona utilizatorul pentru a controla evolutia programului. Īntr-un mediu de programare vizual, obiectele principale sunt formele si controalele desenate īn forme (forma = o fereastra) Aceste obiecte pot fi create prin selectie si depunere folosind barele de instrumente ale mediului respectiv.

Spre exemplu, bara cu instrumente Visual Basic permite crearea unei varietati de obiecte printre care: forme, butoane, casete cu lista, casete derulante combinate, casete de validare, butoane radio (butoane de optiune), etc. Fiecare din aceste obiecte are un comportament predefinit. Spre exemplu cānd se ex 212d37c ecuta click pe un buton acesta trece īn pozitia apasat si apoi revine īn pozitia normala. Pentru a schimba comportamentul obiectului acestuia trebuie sa-i atasati cod de program (instructiuni) corespunzator, cod ce se va executa atunci cānd are loc un anumit eveniment (spre exemplu īn cazul butonului evenimentul este click).

Evenimentele se produc ca urmare a unei actiuni a utilizatorului (ex. evenimentul click corespunde apasarii butonului stāng al mouse-ului pe obiectul respectiv), sau īn urma executiei codului programului, sau pot fi declansate de catre sistem.

Majoritatea obiectelor vor raspunde unui anumit numar de evenimente generate de catre utilizator printre care click-uri, dublu click-uri, apasari de taste sau trageri si eliberari ale obiectului. Limbajul Visual Basic pune la dispozitia utilizatorului un mediu de dezvoltare care permite crearea de programe orientate spre obiecte si conduse de evenimente. Pentru lucrul cu obiecte conduse de evenimente se parcurg urmatoarele etape:

se creeaza o noua forma careia i se da un nume;

se deseneaza si se denumesc obiectele ce urmeaza a fi afisate īn forma respectiva;

se ataseaza fiecarui obiect codul ce va fi executat ca raspuns la evenimente generate de utilizator sau de sistem.

Va rezulta o interfata grafica cu care interactioneaza utilizatorul pentru a controla evolutia programului. Rezumānd putem spune ca īn programarea orientata spre obiecte si dirijata de evenimente, obiectele au un comportament predefinit care poate fi modificat de utilizator prin atasare de cod corespunzator si aceste obiecte raspund la evenimente declansate fie ca urmare a actiunii utilizatorului asupra obiectelor, fie ca urmare a executiei codului atasat, fie declansate de sistem.

3.2. Proprietati si metode

Un obiect este definit de un set de proprietati cum ar fi: dimensiune, culoare, pozitie pe ecran, comportament (ex. daca un buton radio este activ sau nu la un moment dat etc.). O metoda este o procedura (succesiune de instructiuni) asociata unei anumite actiuni a unui obiect. Spre exemplu īn Visual Basic exista o metoda Move asociata majoritatii obiectelor (permite mutarea obiectelor).

Deci proprietatile descriu obiectele iar metodele definesc actiunile obiectelor, iar pe de alta parte proprietatile reprezinta date iar metodele reprezinta cod (instructiuni). Astfel īn gramatica programarii orientate spre obiecte :

obiectele sunt substantive;

proprietatile sunt adjective;

metodele sunt verbe.

Utilizarea notatiei cu punct pentru referirea proprietatilor si metodelor

Referirea unei proprietati se face astfel:

Obiect . Proprietate = Valoare

Exemplu - fie forma frmForma1 si variabila dColor īn care memoram culoarea de fond a formei

dColor = frmForma1.BackColor (citeste culoarea curenta si o depune īn dColor)

frmForma1.BackColor = QBColor (Blue) - stabileste noua culoare de fond a formei la valoarea Blue.

Referirea metodelor se face asemanator cu referirea proprietatilor, īnsa īn plus metodele pot necesita precizarea unor informatii suplimentare.

Exemplu - pentru mutarea obiectului Buton1 īn coltul din stānga sus al formei curente se apeleaza metoda Move si se precizeaza coordonatele coltului din stānga sus:

Buton1.Move 0,0

Stabilire proprietati si executare metode

Proprietatile unui obiect pot fi setate īn faza de proiectare (atunci cānd se deseneaza sau se modifica formele) utilizānd fisa Properties a formei sau obiectului din forma (fisa este automat vizualizata la selectia obiectului respectiv: forma, buton, etc.). De asemenea fisa Properties poate fi vizualizata prin click dreapta si selectie Properties.

Proprietatile pot fi modificate si prin program īn momentul executiei formei, daca codul de program asociat contine instructiuni care refera si seteaza proprietati (ca īn exemplul de mai sus īn care schimbam culoarea fondului formei).

Spre deosebire de proprietati, metodele pot fi executate numai īn momentul executiei programului (eventual īn momentul depanarii programului utilizānd facilitatea Debugger a programului Visual Basic).

Denumirea obiectelor

Orice obiect are proprietatile:

Name - numele utilizat īn scrierea codului

Capture - numele dat obiectului pentru a putea fi identificat de utilizator. Visal Basic da nume implicite obiectelor. Este indicat ca utilizatorul sa dea nume obiectelor (Name) utilizānd urmatoarea conventie:

un prefix format din 3 litere mici (ex. frm pentru forma, cmd pentru buton de comanda, etc.)

un sir de caractere care identifica obiectul (ex. Forma1, Ecran1, Buton1, etc.).

Īn tabelul urmator sunt prezentate conventiile de denumire a obiectelor din Visual Basic:

Obiect

Prefix

Exemplu

Forma

frm

frmForma1

Buton de comanda

cmd, btn

cmdButon, btnOK

Caseta de text

txt

txtCaseta1

Bare de derulare

orizontala

verticala

hsb

vsb

Meniu

mnu

mnuMeniuPrinc

Caseta de validare

chk

Caseta cu lista

lst

Cadru

fra

Imagine

img

Buton de optiune (radio)

opt

optBO1

3.3. Utilizare Visual Basic din Excel

Lansare editor Visual Basic:

Tools Macro Visual Basic Editor



Creare forma

Insert UserForm

stergere forma

File Remove UserForm

(pentru forma selectata = ultima activata)

No (fara export = fara salvare)

Dupa creare forma se pot desena obiecte īn forma utilizānd bara de instrumente Toolbox Controls prin selectare obiect, antrenare pe suprafata formei si depunere obiect ca īn exemplul de mai jos:


Īn partea stānga a ecranului este afisata lista proprietatilor obiectului selectat (care pot fi eventual modificate - setate).

Cu click dreapta pe obiect se pot vizualiza:

proprietatile obiectului

codul asociat

si eventual se pot efectua si alte operatii (Cut, Copy, Paste, Delete).

Vizualizare forme

View Project Explorer

din lista Project ce apare se alege forma dorita (care poate fi editata cu click dreapta, sau executata din Run Sub / UserForm).

sau selectie obiect din lista Project si apoi

View Object (pentru afisare obiect īn modul Design)

Code (pentru afisare cod pentru obiectul selectat)

Executie forma


Run Run Sub / UserForm (pentru forma curenta)

Pentru revenire īn ecranul anterior (editorul Visual Basic) se īnchide forma (se apasa butonul Close al formei)

3.4. Variabile

O variabila este o zona temporara de memorie careia i se da un nume, si care poate memora (stoca) un anumit tip de data care poate fi modificata pe parcursul executiei programului. Īn Visual Basic numele unei variabile poate avea max. 256 caractere, trebuie sa īnceapa cu un caracter alfanumeric (litere, cifre) si nu poate fi un cuvānt rezervat al limbajului Visual Basic (cum ar fi Sub, Function, etc.).

Tipuri de variabile īn Visual Basic

Tip

Sufix

Dimensiune

(octeti)

Domeniu de valori

Byte

Boolean

Adevarat, Fals

(True, False)

Integer - īntreg

Long integer - īntreg lung

&

Simpla precizie

-3.40E38 3.40E38

Dubla precizie

-1.80E308 , 1.80E308

Currency - valuta

-9.22E14 , 9.22E14

Date - data calendaristica

ian 1, 100 dec 31 ,9999

Object - obiect

Adresa unui obiect

String - sir

1/caracter

65500 octeti

Variant - nedefinit

dupa caz

īn functie de tip

User-Defined

(definit de utilizator)

dupa caz

īn functie de tipul elementelor

Declaratii implicite si explicite de variabile

Declararea implicita se face utilizānd sufixul (ca īn tabelul de mai sus).

Exemplu:

Vārsta% = 42 (variabila vārsta este de tip īntreg)

Daca ultimul caracter nu este unul din caracterele de declarare a tipului: %, & atunci tipul prestablit este variant.

Declararea explicita a unei variabile se face utilizānd instructiunea Dim la īnceputul unei proceduri.

Exemplu:

Dim Varsta As Integer

Dim X As Double

Dim sir1, sir2 As String (sir1 este de tip variant, sir2 este de tip string)

Dim sir As String 10 (de tip sir ce poate contine max. 10 caractere)

Domeniul unei variabile

Domeniul unei variabile este zona programului īn care variabila este vizibila. Īntrucāt o variabila poate fi declarata la 4 nivele diferite exista corespunzator 4 nivele diferite de domenii de vizibilitate si anume:

nivel procedura

variabile statice īn interiorul procedurilor

nivel forma

nivel modul standard

Nivelul procedura este primul nivel la care poate fi declarata o variabila fie implicit

fie cu instructiunea Dim. Exista doua tipuri de procedura īn Visual Basic si anume:

proceduri Sub

proceduri Function.

Variabilele declarate īn proceduri vor fi variabile locale ale procedurilor respective,

fiind valabile (accesibile) numai īn procedurile īn care au fost declarate.

Deci aceste variabile au cea mai redusa vizibilitate si cel mai restrāns domeniu.

Cānd executia unei proceduri se īncheie, toate variabilele locale ale acesteia sunt eliminate din memorie.

Deci variabilele locale ale unei proceduri sunt reinitializate la fiecare apel al procedurii.

Variabile statice - īn interiorul procedurilor

O variabila locala poate fi facuta permanenta daca īn locul instructiunii Dim se foloseste instructiunea Static. Astfel o variabila statica īsi conserva valoarea īntre apelurile succesive ale procedurii īn care a fost declarata (deci nu va fi reinitializata la fiecare apel al procedurii), īnsa este vizibila numai īn cadrul procedurii īn care a fost declarata.

Variabile la nivel forma

O variabila declarata la nivelul unei forme, va fi accesibila la nivelul tuturor

procedurilor acelei forme.

Variabile la nivelul modul standard

Modulele de cod sunt module utilizate pentru a pastra procedurile si functiile generale neinfluentate de evenimente si variabilele si constantele globale. Aceste module se creeaza prin selectarea optiunii Module din meniul Insert al programului Visual Basic, sau prin click pe butonul module din bara cu instrumente.

Declararea unei variabile la nivelul unui astfel de modul se face prin plasarea acesteia īn zona de declaratii a obiectului General, zona accesibila prin intermediul ferestrei de cod. Cel mai īnalt domeniu de vizibilitate este nivelul global. Orice variabila declarata la acest nivel este vizibila din orice procedura a aplicatiei (proiectului). Declararea unei variabile globale se face utilizānd cuvāntul cheie Global īn sectiunea General / Declaration a modulului de cod.

Exemplu: Global NumePrenume As String

Constante

O constanta poate fi privita ca o variabila a carei valoare nu se modifica niciodata ramānānd aceeasi pe parcursul īntregii vieti a programului.

Utilizarea constantelor duce la cresterea calitatii programelor. Ca si īn cazul unei variabile, domeniul unei constante este determinat de locul unde este declarata. Constantele se declara cu cuvāntul cheie Const. Este indicat ca numele constantelor sa fie scrise cu litere mari pentru a fi usor reperabile.

Exemplu de utilizare InputBox( ), MsgBox

Const IB TITLU = "Titlu InputBox"

Dim sNume As String variabila locala

Dim sPrompt as string

Static ixPos As Integer, iyPos As Integer 'valoare pastrata īntre apeluri

SPrompt = "Introduceti numele dumneavoastra:"

ixPos = Iif(ixPos > ' schimba pozitia ferestrei

iyPos = Iif (iyPos >

sNume = InputBox (sPrompt, IB-TITLU, ixPos, iyPos)

If sNume = " " Then

MsgBox "Nu s-a introdus nimic!"

Tipuri de date definite de utilizator

Īn afara de tipurile de date predefinite īn cadrul limbajului Visual Basic, utilizatorul poate sa-si defineasca propriile sale tipuri de date, care pot contine unul sau mai multe tipuri de date predefinite. Tipurile de date definit de utilizator pot fi declarate numai īn sectiunea General / Declaration a modulului de cod cu ajutorul cuvintelor cheie Type si End Type (deci tipurile definite de utilizator sunt vizibile din orice punct al aplicatiei, proiectului respectiv).

Exemplu:

Type t pers

Nr As Integer

Nume As String

DataNasterii As Date

End Type

Dupa definirea unu astfel de tip de data acesta poate fi utilizat pentru declararea unei variabile de acest tip. Pentru variabila se poate utiliza Dim, Static, Global pentru a defini domeniul de vizibilitate al acestei variabile.

Exemplu:

Dim Persoane As t_pers

Persoane.Nr = 15

Pesoane.Nume = "Ionescu Ion"

Persoane.DataNasteri = december 20 ,1983

Astfel de tipuri de variabile sunt utilizate īn programele de baze de date.

Prefixele variabilelor

De obicei fiecare programator īsi defineste variabilele utilizānd un prefix scris cu litere mici pentru a identifica tipul variabilei dupa cum urmeaza:

i - Integer

s - String

l - Long

--------

Exista o lista standard de prefixe de variabile numita notatie ungara (Hungarian Notation) - inventata de un programator de nationalitate ungara de la firma Microsoft pentru limbajul C.

3.5. Operatii de intrare /iesire realizate cu functiile InputBox ( ) si MsgBox ( )

Limbajul Visual Basic dispune de functiile InputBox ( ) si MsgBox ( ) pentru realizarea de operatii simple de intrare/iesire prin utilizarea unor casete de dialog predefinite. Īn cadrul unui program utilizatorul trebuie sa poata introduce date si sa poata afisa sau extrage rezultate.

Functia InputBox ( ) - afiseaza o caseta de dialog si asteapta ca utilizatorul sa introduca text, apoi returneaza continutul casetei de text. Valoarea returnata este fie de tip variant fie de tip String īn functie de varianta utilizata:

Valret = InputBox (prompt, title, default, xpos, ypos, helpfile, context)

īntoarce Variant

Valret = InputBox$ (prompt, title, default. xpos, ypos, helpfile, context)

īntoarce String

Argumentul prompt este singurul argument obligatoriu, care va fi un mesaj (de tip String) care invita utilizatorul sa introduca text īn caseta de text afisata. Pentru a introduce text pe mai multe linii se va introduce CR. LF, (chr(13), chr(10)) sau constanta predefinita vbcrlf, īntre fiecare doua rānduri succesive).

Title este un sir de caractere ca va fi afisat īn bara de titlu a casetei de dialog.

Default - se poate completa pentru acest argument un sir de caractere care sa fie considerat raspunsul predefinit (va apare afisat īn caseta de text), iar daca nu se completeaza, caseta de text (īn care utilizatorul va introduce textul) va fi afisata goala.

xpos, ypos - sunt expresii numerice care specifica distanta pe orizontala, verticala a coltului din stānga sus al casetei de dialog fata de coltul din stānga al ecranului (formei). Daca sunt omise, caseta de dialog va fi centrata pe orizontala la o treime din īnaltimea ecranului. Daca se omite title sau default sau ambele si vrem sa precizam xpos, ypos atunci īn locul argumentelor omise se va folosi cāte o virgula pentru fiecare argument omis.

Pentru ambele functii InputBox( ) si MsgBox( ), argumentele helpfile (sir) si context (nr. īntreg) sunt utilizate pentru a pune la dispozitie asistenta soft dependenta de context, caz īn care utilizatorul poate apasa tasta F1 pentru a vedea articolul Help creat pentru respectiva caseta de dialog.

Daca se selecteaza butonul OK sau se apasa Enter, functia InputBox( ) returneaza continutul casetei de text. Daca nu se introduce text sau se selecteaza butonul Cancel, functia returneaza un sir de lungime 0 (" ").

Variabila Valret va memora continutul casetei de text (textul introdus).

Functia MsgBox ( ), procedura MsgBox

Functia MsgBox( ) si procedura MsgBox afiseaza un mesaj īntr-o caseta de dialog si asteapta ca utilizatorul sa selecteze un buton. Functia MsgBox ( ) returneaza o valoare īntreaga care indica numarul butonului selectat. Procedura MsgBox nu returneaza nici o valoare ( se utilizeaza atunci cānd nu intereseaza cum este īnchisa caseta de dialog corespunzatoare).

Sintaxa functiei MsgBox ( ) este:

Valret % = MsgBox(msg, type, title, helpfile, context)

Sintaxa procedurii MsgBox este:

MsgBox msg, type, title, helpfile, context

-msg = expresie sir afisata ca mesaj īn caseta de dialog

-type = expresie numerica ce precizeaza numarul si tipul butoanelor si a altor elemente ce vor fi afisate īn caseta de dialog corespunzator tabelului de mai jos.

Īn tabelul de mai jos sunt date grupele de valori care descriu:

numarul si tipul butoanelor casetei de dialog

tipul pictogramei

butonul prestabilit

modalitatea casetei de dialog.

Valoare

Semnificatie

Constanta simbolica recomandata

Afiseaza numai butonul OK

vbOKOnly

Afiseaza butoanele OK si Cancel

vbOKCancel

Afiseaza butoanele Abort,Retry,Ignore

vbAbortRetryIgnore

Afiseaza butoanele Yes, No, Cancel

vbYesNoCancel

Afiseaza butoanele Yes, No

vbYesNo

Afiseaza butoanele Retry, Cancel

vbRetryCancel

Afiseaza pictograma Critical

vbCritical

Afiseaza un semn de īntrebare

vbQuestion

Afiseaza un semn de exclamare

vbExclamation

Afiseaza pictograma Information

vbInformation

Primul buton este prestabilit

vbDefaultButton1

Al doilea buton este prestabilit

vbDefaultButton2

Al treilea buton este prestabilit

vbDefaultButton3

Caseta modala aplicatiei

vbApplicationModal

Caseta modala sistemului

vbSystemModal

Pentru a obtine valoarea argumentului type se va īnsuma cāte un numar din fiecare grup. Daca argumentul type este omis se considera implicit valoarea 0.

Modalitatea implicita a unei casete de dialog este ApplicationModal.

Īn modalitatea aplicatie utilizatorul trebuie sa raspunda casetei de dialog īnainte de a putea sa lucreze īn aplicatia curenta. Īn modalitatea System toate aplicatiile sunt suspendate pāna cānd utilizatorul raspunde casetei de dialog.

Atāt pentru functia MsgBox( ) cāt si pentru procedura MsgBox argumentul msg este obligatoriu, celelalte fiind facultative. Valoarea returnata de functia MsgBox( ) indica butonul care a fost selectat, conform tabelului de mai jos:

Valoare

Semnificatie

Constanta simbolica recomandata

Butonul OK selectat

vbOK

Butonul Cancel selectat

vbCancel

Butonul Abort selectat

vbAbort

Butonul Retry selectat

vbRetry

Butonul Ignore selectat

vbIgnore

Butonul Yes selectat

vbYes

Butonul No selectat

vbNo

Este indicat a se utiliza constante simbolice īn locul numerelor deoarece īn acest fel creste claritatea programului (semnificatia constantei vbAbort este evidenta, pe cānd nr. 3 nu spune nimic).

3.6. Structuri de ramificare si ciclare (luare decizii)

Pentru luarea deciziilor īn cadrul unui program Visual Basic se pot utiliza doua categorii de instructiuni cu ajutorul carora se dirijeaza executia instructiunilor programului īn functie de īndeplinirea anumitor conditii.

Cele doua categorii de instructiuni sunt:

instructiuni de ramificare - permit executia selectiva a anumitor secvente de instructiuni functie de īndeplinirea unor conditii

instructiuni de ciclare - permit executia repetata a unor secvente de instructiuni.

3.6.1.Structuri de ramificare

Structura If..EndIf - are sintaxa

If < conditie > then

< instructiuni 1 >

Else

< instructiuni 2 >

EndIf

Daca <conditie> este adevarata se executa secventa de instructiuni <instructiuni1> si se continua programul cu instructiunile care urmeaza dupa EndIf.

Daca <conditie> este falsa se executa secventa de instructiuni <instructiuni 2> si se continua programul cu instructiunile care urmeaza dupa EndIf.

Exemplu:

If Culoare < 15 Then

Culoare = Culoare + 1

Else

Culoare = 1

EndIf

Se pot construi structuri If imbricate (incluse), īnsa pentru aceasta se poate utiliza simplu structura If..ElseIf...EndIf, sau īn cazul mai multor actiuni se poate utiliza structura Select Case.

Exemplu:

If iValRet = vbYes Then

sMsg = "A-ti selectat Yes"

Elseif iValRet = vbNo Then

sMsg = "A-ti selectat No"

Else If iValRet = vbCancel then

SMsg = "A-ti selectat Cancel"

EndIf

Structura If..ElseIf..EndIf poate fi condensata īntr-o singura linie de cod utilizānd functia IIF ( ) ca īn exemplul de mai jos:

Culoare = IIF (Culoare <15, Culoare, 1)   '(testeaza sa nu se depaseasca codul

14 pentru culoare)

Structura Select..EndSelect - pentru realizarea unei actiuni din mai multe posibile.

Exemplu: fie iVarsta o variabila numerica īn care este memorata vārsta.

Select Case iVarsta

Case 5

sGrupa = "de cinci ani" = 5 ani

Case 13 To 19

sGrupa = "Adolescent"

Case 20 To 35, 50, 60 to 65

sGrupa = "adult"

Case Is >

sGrupa = "vārstnic"

Case Else

sGrupa ="ceilalti"

EndSselect

Īn functie de conditia (prima īndeplinita ) se executa secventa de instructiuni corespunzatoare, apoi se continua cu instructiunile care urmeaza dupa EndSelect. Daca nici una din conditiile anterioare nu este īndeplinita se executa instructiunile care urmeaza dupa CaseElse.

3.6.2. Structuri de ciclare

While...Wend are sintaxa:

While <conditie>

<instructiuni>

Wend

Se executa secventa de instructiuni <instructiuni> atāta timp cāt conditia <conditie> este īndeplinita (adevarata).

Do..Loop are sintaxa:

Do Until <conditie>

<instructiuni>

Loop

sau

Do

If <conditie> Then

Exit Do

Else

<instructiuni>

Loop Until <conditie>

Structura Do.Loop repeta un bloc de instructiuni atāta timp cāt o anumita conditie este adevarata sau pāna īn momentul īn care o anumita conditie devine adevarata.

Instructiunea Exit Do poate fi folosita numai īntr-o structura Do..Loop ca o conditie de a parasi ciclul.

For.Next - repeta o secventa de instructiuni de un numar precizat de ori dupa urmatoarea sintaxa:

For icontor = <valoare initiala> To <valoare finala> Step <pas>

<instructiuni>

Next

Executia ciclului For.Next se poate termina fortat cu instructiunea Exit For.

Exemplu: (calculeaza suma numerelor pare pāna la 100).

For iNr = 0 TO 100 step 2

isuma = isuma + iNr

Next

3.7. Module si proceduri

Īn Visual Basic 4.0, exista trei tipuri de module:

module ale formei

module de cod

module clasa

Fiecare tip de modul contine proceduri care pot fi partajate pe diverse nivele ale

domeniului de vizibilitate īn cadrul aplicatiei. Toate exemplele date pāna īn prezent cu exceptia variabilelor globale vor fi stocate īn module asociate unor forme.

Exemplu - daca se scrie cod asociat evenimentului click al unui buton va rezulta o procedura de eveniment (spre deosebire de o procedura generala) care va fi parte a formei īn care se afla butonul. Cu exceptia cazului cānd se elimina cuvāntul cheie Private din antetul procedurii de eveniment a formei, acest cod nu va fi vizibil īn afara formei.

O clasa este un sablon īn baza caruia pot fi create obiecte. Clasa defineste proprietatile obiectelor ce apartin clasei si metodele utilizate pentru controlul comportamentului obiectelor. Modulele clasa contin o definitie formala a unei clase care va fi instantiata ca obiect OLE automatic.

Un modul de cod contine cod public, declaratii, proceduri subrutina si functii care pot fi partajate īntre toate modulele unui proiect. Modulul de cod este numit si modul standard pentru a putea fi diferentiat de modulele formei si modulele clasa.

Proceduri generale si proceduri eveniment

O procedura generala comunica aplicatiei cum sa efectueze o anumita actiune. Pentru a efectua actiunea, procedura trebuie apelata explicit īn cadrul aplicatiei. O procedura generala poate fi plasata īn oricare din cele 3 tipuri de module. O procedura eveniment ramāne inactiva pāna cānd este apelata pentru a raspunde unor evenimente provocate de utilizator (ex. click cu mouse-ul) sau declansate de sistem (ex. evenimente de ceas, evenimente de īncarcare īn memorie).

3.7.1. Proceduri subrutine

O procedura subrutina (sau simplu procedura) este o secventa de instructiuni care are un nume si ale carei instructiuni sunt executate ca un tot. O procedura subrutina efectueaza o anumita actiune īnsa nu returneaza nici o valoare. O procedura subrutina īncepe cu instructiunea Sub si se termina cu instructiunea End Sub (exemplu procedura asociata evenimentului click al unui buton).

Limbajul Visual Basic are o serie de proceduri īncorporate ca de exemplu:

Procedura

Descriere

Exemplu de utilizare

MsgBox

Afiseaza un mesaj īntr-o caseta

MsgBox "mesaj",..

Print

Tipareste

Print iProcent & "%"

FileCopy

Copiaza un fisier

FileCopy "Fis1.doc", "Fis2.doc"

Name

Redenumeste un fisier

Name "Fisier1" As "Fisier2"

Kill

sterge un fisier

Kill "Fis1.doc"

Beep

Emite un sunet

Beep

Date

Stabileste data sistemului

Date December 18, 2002

Utilizatorul īsi poate defini propriile proceduri pentru a efectua diverse actiuni.

Exemplu:

Sub StergeFisiere( )

Kill " *.Tmp"

Kill " *. Dat"

Beep

MsgBox "S-au sters fisierele *.Tmp, *.Dat"

End Sub

Pentru apelarea procedurii stergeFisiere din orice punct al aplicatiei se va specifica numele procedurii ca instructiune īn cadrul programului. (desi parantezele apar īn definitia procedurii, la apelul procedurii se va specifica doar numele fara paranteze !).

Procedura de mai sus nu necesita argumente, īnsa daca o procedura urmeaza sa primeasca argumente acestea se vor specifica ca īn exemplul:

Sub Produs(iNr1 As Integer, iNr2 As Integer)

iVarGlobal = iNr1*iNr2

End Sub

Apelul procedurii este ilustrat īn exemplul de mai jos:

Dim iV1 As Integer, iV2 As Integer

iV1 = 560

iV2 = 829

Produs iV1, iV2

.......

3.7.2. Proceduri functii

O procedura functie (sau simplu o functie) este o secventa de instructiuni care efectueaza o anumita operatie īntr-un program si returneaza o valoare. O functie īncepe cu instructiunea Function si se termina cu instructiunea End Function.

Īn Visual Basic exista o serie de functii predefinite printre care:

Functia

Descriere

Exemplu de utilizare

Valoare returnata

Len( )

Returneaza lungime sir

iLung=Len("Limbaje de programare")

iLung = 21

Mid( )

Returneaza un subsir din sir

sSubsir=Mid("ABCDE", 1,2)

sSubsir = "AB"

Chr( )

Returneaza caracterul corespunzator codului

sCar = Chr(65)

sCar = "A"

Asc( )

Returneaza codul corespunzator caracterului

iCod = Asc ("A")

iCod = 65

UCase( )

Converteste īn litere mari

sMari = Ucase("Ionescu")

sMari = "IONESCU"

LCase( )

Converteste īn litere mici

sMici = Lcase("LIMBAJE")

sMici = "limbaje"

InStr( )

Returneaza pozitia unui subsir īn sir

iPozitie = Instr("ABCDE", "BCD")

iPozitie = 2

Pe lānga functiile predefinite fiecare utilizator īsi poate crea propriile functii

Exemplu - definirea unei functii utilizator pentru criptarea unui sir de caractere

Function Criptare(sSirTastat As String ) As String

Dim iLen As Integer

Dim sSirCriptat As String, sCar As String, sCript As String

iLen = Len(sSirTastat) depune īn iLen lungimea sirului tastat

For x = 1 To iLen pentru fiecare caracter din sirul tastat

sCar = Mid (sSirtastat, x, 1)  extrage caracterul

sCript = Chr$(Asc(sCar) +1)  cripteaza caracterul prin incrementare cu 1

sSirCriptat = sSirCriptat&sCript adauga caracterul criptat sirului criptat

Next

Criptare = sSirCriptat

End Function

Apelul functiei Criptare:

Private Sub frmApel

Dim sRezultat As String

sSirTastat$ = InputBox$("Tasteaza sirul de criptat")

Srezultat = Criptare(SirTastat$)

MsgBox Srezultat

End Sub

Daca vrem sa descriptam sirul criptat vom scrie o functie care este aproape identica cu cea de criptare si anume:

Function Decriptare(sSirIntrare As string) As string nume diferit

Dim iLen As Integer

Dim sSirIesire As string, sCarIntrare As string, sCarIesire as string

iLen = Len(sSirIntrare)

For x = 1 To iLen

sCarIntrare = Mid$(sSirIntrare, x, 1)

sCarIesire = Chr$(Asc(ScarIntrare)-1) minus īn loc de plus

sSirIesire = sSirIesire & sCarIesire

Next

Decriptare = sSirIesire Decriptare īn loc de criptare

End Function

Se constata ca cele doua functii pot fi scrise ca o singura functie de doua argumente si anume:

Function CriptDecript (sSirIntrare As String, iOperatie As Integer) As String

Dim iLen As Integer

Dim sSirIesire As string, sCarIntrare As String, sCarIesire As String

iLen = Len(sSirIntrare)

For x = 1 To iLen

sCarIntrare = Mid$(sSirIntrare, x, 1)

sCarIesire = Chr$(Asc(sCarIntrare) + iOperatie)

sSirIesire = sSirIesire & sCarIesire

Next

CriptDecript = sSirIesire

End Function

iar la apelarea functiei iOperatie va fi:

+1 pentru criptare

-1 pentru decriptare

Exemplu de apel:

Dim V1 As String, V2 As String

V1 = InputBox$("Introduceti sirul de criptat")

V2 = CriptDecript(V1, 1)

MsgBox V2

Pentru crearea procedurilor si functiilor se deschide fereastra de cod a modulului de cod standard.

Lista Object contine cuvāntul General iar lista Proc contine cuvāntul Declarations. Īn sectiunea General Declaration a modului se vor declara variabilele si constantele la nivel de modul (globale) si apoi se definesc (introduc) procedurile si functiile modulului (codul sursa prezentat mai sus).

Observatii

Fiecare din functiile si procedurile aplicatiei pot fi atasate unor obiecte grafice (butoane), deci īn acest caz textul sursa corespunzator se va atasa butoanelor respective.

Indiferent daca o functie are sau nu argumente, atāt la definire cāt si la apelare, parantezele sunt obligatorii !!

3.8. Obiecte īn Visual Basic

Bare cu instrumente

- Butoane de comanda - sunt utilizate pentru a īncepe, a īntrerupe sau a īncheia un anumit proces.

Cānd se executa click cu mouse-ul arata ca si cum ar fi apasat, de unde si denumirea sa īn engleza Push button. Pentru a afisa text pe buton trebuie definita proprietatea Caption. Prezenta unui caracter & īn textul proprietatii Caption face ca ceea ce urmeaza dupa & sa fie tasta de acces īn combinatie cu tasta Alt. Selectia unui buton de comanda se face prin click cu mouse-ul sau cu tasta Tab pentru a ajunge pe buton si apoi se apasa tasta Enter. Daca proprietatea Default a unui buton are valoarea True, atunci acest buton poate fi selectat īn orice moment prin apasarea tastei Enter indiferent ce control este curent īn acel moment.

Daca proprietatea Cancel a unui buton este stabilita pe valoarea True atunci acel buton poate fi selectat prin tasta Esc.

Proprietati uzuale ale unui buton de comanda

Proprietate

Descriere

Exemple de valori

Appearance

Selecteaza aspectul 3D sau plat

1= 3D, 0 = plat

Cancel

Permite selectarea cu ESC

True, False

Caption

sirul de caractere afisate pe buton

caractere

Default

Permite selectarea cu tasta Enter

True, False

Font

Stabileste corpul, stilul si dimensiunea caracterelor

MS Sans Serif, Bold, 12

- Etichete - sunt controale grafice folosite pentru a afisa text pe care utilizatorul nu īlpoate modifica direct ci doar cu ajutorul instructiunilor (codului). Pentru ca eticheta sa afiseze corect linii multiple de diverse lungimi se vor stabili proprietatile AutoSize si WordWrap la valoarea True.

Casete de text sau TextBox-uri sau casete de editare, sunt utilizate pentru a afisa informatii introduse de utilizator la rulare sau asociate controlului prin program. Accesul la textul afisat se obtine prin stabilirea sau citirea proprietatii Text a controlului, ceea ce poate face fie direct īn faza de proiectare, fie prin cod utilizānd notatia cu punct.

Exemplu de citire:

sTextCaseta1= txtCaseta1.Text (daca a fost creata o caseta de text numita txtCaseta1).

Pentru a afisa mai multe linii de text īntr-o caseta de text, proprietatea MultiLine trebuie sa fie selectata pe valoarea True.

Daca o caseta de text multilinie nu contine o bara de derulare orizontala, textul va fi īmpartit automat pe rānduri chiar daca caseta este redimensionata. Barele de derulare se stabilesc cu proprietatea ScrollBars: Horizontal, Vertical, Both, None.

Daca proprietatea MultiLine este True, se poate utiliza proprietatea Alignment pentru a alinia textul la stānga, la dreapta, sau īn centrul zonei, iar daca MultiLine este False, Alignment nu are efect.

Implicit textul este aliniat la stānga

Proprietati uzuale ale unei casete Text Box

Proprietate

Descriere

Exemplu de valori

Appearance

Selecteaza aspectul 3D sau plat

1= 3D, 0 = plat

Border Style

Precizeaza tipul chenarului

0 - fara chenar,

1 - chenar simplu

Font

Stabileste corpul, stilul si dimensiunea caracterelor

MS Sans Serif, Bold, 12

PasswordChar

Ascunde textul cu un singur caracter

Ex. * sau

SelStart

Pozitia initiala pentru selectarea textului

numai la rulare

SelLength

Precizeaza lungimea textului selectat

numai la rulare

Tag

Memoreaza informatii suplimentare

orice expresie sir

Proprietatile SelStart si SelLength sunt disponibile numai la rulare si deci nu vor fi afisate īn fereastra Properties a casetei de text. Proprietatea Tag poate stoca informatii suplimentare, ca de exemplu parola sistemului īn faza de proiectare.

- Butoane de optiune (butoane radio) (Option Button) - afiseaza o optiune care poate fi activata s-au dezactivata ( ,o), functie de valoarea True sau False a proprietatii Value a butonului. Īn general butoanele de optiune se utilizeaza īn grupuri (mai multe butoane) afisate īntr-un cadru - ca lista de optiuni ce se exclud reciproc. Toate butoanele de optiune afisate īntr-un recipient (cadru) se comporta ca un grup, deci numai unul singur poate fi activ la un moment dat (īntāi se deseneaza cadrul si apoi se depun butoanele īn cadru - desenarea ulterioara a cadrului nu are nici un efect asupra grupului).

Prin intermediul proprietatii Caption fiecarui buton i se poate atasa un text ce va fi afisat imediat īn dreapta butonului. Fiecarui buton i se poate atasa cod ca de exemplu:

If optButon1.Value = True Then

MsgBox "Buton selectat" Testeaza starea curenta a butonului

optButon1

Else

MsgBox "Buton neselectat"

End if

- Casete de validare - afiseaza o caseta care poate fi activata sau dezactivata (

Se pot grupa mai multe casete de validare īntr-un cadru, īnsa spre deosebire de butoanele de optiune, pot fi active mai multe casete din grup la un moment dat.

Prin proprietatea Caption se poate afisa text explicativ īn dreapta casetei ca mai jos:

Select Case chkCv1

Case 0

VMsg = "Nebifata"

Case 1

VMsg = "Bifata"

Case 2

VMsg = "Indisponibila"

End select

MsgBox VMsg

- Cadre - ofera posibilitatea de a grupa controale īnrudite (butoane de optiune, casete de validare). Īntāi se deseneaza cadrul si apoi controalele.

- Caseta cu lista (list box) afiseaza o lista de articole din care utilizatorul poate

selecta unul sau mai multe. Pentru a prelucra articolele selectate se utilizeaza evenimentul Click sau Double Click ale casetei cu lista.

Exemplu:

Private Sub lstLista1_Dblclick( ) Afiseaza articolul selectat din caseta cu lista

txtSelectie = lstLista1 īn caseta de text txtselectie

End Sub

Proprietatea ListCount a unei casete cu lista returneaza numarul de articole din lista, iar proprietatea ListIndex determina articolul curent selectat astfel:

ListIndex = 0 pentru primul articol din lista

ListCount -1 pentru ultimul articol din lista

= -1 daca nu a fost selectat nici un articol din lista

Pentru a selecta mai multe articole din lista se utilizeaza proprietatea Multiselect astfel:

MultiSelect = 0 - nu sunt admise selectii multiple (implicita)

1 - selectie simpla (executare click cu mouse sau apasare tasta

spatiu duce la selectarea sau deselectarea unui articol din

lista;

se pot utiliza sageti pentru mutarea selectiei de la un articol

la altul.

2 - selectie multipla (se apasa shift si apoi click cu mouse sau

utilizare sageti pentru a selecta articolul urmator adaugat la

elementul selectat anterior.Pentru selectii multiple de articole

neadiacente se utilizeaza tasta Ctrl si Click cu mouse pe

articol.

Proprietatea Selected pe valoarea True sau False specifica daca un articol din lista este selectat sau nu.

Exemplu de cod atasat:

iNr = lstlista1.ListCount - 1 afiseaza toate articolele selectate din

lista (caseta cu lisa) lstLista1

For x = 0 To iNr

If lstLista1.Selected(x) = True Then

MsgBox lstLista1.List(x)

End If

Next

Pentru a adauga articole listei se utilizeaza metoda AddItem

- Casete combinate (ComboBox) - combina facilitatile unui TextBox cu cele ale unui ListBox (contine o caseta cu lista si o caseta text).

Proprietati si metode comune ale casetelor cu lista si casetelor combinate.

Proprietate

Semnificatie

Exemplu de utilizare

ListCount

Nr. articole ale listei

iOptiune = lstLista1.ListCount - 1

ListIndex

Indexul numeric al articolului curent

lstLista1.ListIndex = 3

List

Asociata cu indexul returneaza articolul curent din lista

sArt3 = lstLista1.List(3)

Selected

Are valoarea True daca este selectat articolul

If lstLista1.Selected(3) Then

Sorted

Lista va fi sortata daca valoarea proprietatii sorted este True

lstLista1.Sorted = True

Metode

Semnificatie

Exemplu de utilizare

AddItem

Adauga listei un articol de tip sir

lstLista1.AddItem = "Ionescu Ion"

Clear

Elimina toate articolele din lista

lstLista1.Clear

RemoveItem

Elimina un singur articol din lista

lstLista1.RemoveItem 5

Utilizarea matricelor - variabile multidimensionale

Dim sStudenti(15) As String

sStudenti(0) = "Ionescu Ion"

.............

sStudenti(14) = "Popescu Vasile"

For iIndex = 0 To 14

MsgBox sStudenti(iIndex)

Next

Functia UBound(sStudenti) returneaza numarul de elemente ale matricii (tabloului) Studenti.

Exemplu de utilizare casete cu lista:

Private Sub frmForma1 Click( )

Dim sStudenti(15) As String Declara matricea sStudenti de 15

elemente

sStudenti(0) = "Ionescu" ' Initializeaza elementele matricii

sStudenti(1) = "Florescu"

...........

For iC = 0 To Ubound(sStudenti) - 1 Adauga fiecare element al matricii ca

lstLista1.AddItem (sStudenti(iC)) articol īn caseta cu lista lstLista1

Next Functia Ubound returneaza numarul

de elemente ale matricii

lstLista1.ListIndex = 0 Selecteaza primul articol din lista

- Bare de derulare (orizontale si verticale) permit parcurgerea unor liste mari. Ori de cāte ori se efectueaza click pe o bara de derulare se executa procedura evenimentului Change. Cānd se trage bara de derulare se declanseaza evenimentul Scrool, iar la eliberarea de pe bara de derulare se executa evenimentul Change.

- Spinner (SpinButton) - permite incrementare sau decrementare numere, prin atasare si activarea unui buton spinner unei etichete sau unei casete de text.

- Controale cu imagini - permit afisarea de imagini pe suprafata unei forme, putānd utilza pentru aceasta doua tipuri de controale si anume: PictureBox si Image.

Controalele Image pot fi create din bara de instrumente Toolbox Controls, aceste controale prezentānd si avantajul ca imaginile plasate īn ele pot fi redimensionate prin stabilirea proprietatii Stretch a controlului la valoarea True. Controalele Image nu accepta grafica desenata īn timpul rularii si nu pot fi utilizate ca recipiente pentru alte controale.

Controalele PictureBox accepta grafica desenata īn timpul rularii programului utilizānd metodele Line, Circle si Pset. Daca grafica īncarcata dintr-un fisier depaseste suprafata controlului PictureBox, grafica va fi trunchiata exceptīnd situatia īn care proprietatea AutoSize are valoarea True.

Fisierele imagine pot fi importate īn controale Image sau PictureBox fie prin setarea proprietatii Picture a controlulu, fie cu ajutorul functiei LoadPicture() īn timpul rularii programului.

Exemplu. Pentru a incarca fisierul imagine Poza.jpg din directorul C:\Imagini, īn controlul Image care are numele (Name) imag1 se va scrie instructiunea:

imag1.Picture = LoadPicture("C:\Imagini\Poza.jpg")

Pentru a elimina imaginea dintr-un control imagine se va folosi functia LoadPicture fara nici un argument ca īn exemplul de mai jos:

imag1.Picture = LoadPicture()

- Controale lista de fisiere, de unitati de disc si de directoare

DriveListBox - permite selectarea, la rularea programului, a unei unitati de disc

DirListBox - afiseaza o lista ordonata a directoarelor si subdirectoarelor de pe disc si prin click cu mouse permite utilizatorului sa navigheze prin directoare

FileListBox - afiseaza fisierele din directorul specificat de proprietatea Path la rularea programului.

3.9. Referire celule dintr-o foaie de calcul tabelar īn Visual Basic

Se face astfel:

Sheets(n).Cells(nr.rānd, nr.coloana)

Exemplu. Instructiunea

Sheets(3).Cells (1,2) = "Ionescu"

depune sirul 'Ionescu' īn celula B1 (rānd 1 coloana 2) din a treia foaie de calcul a

registrului de calcul Excel curent. Pentru precizarea celulei (nr.rānd, nr.coloana) se pot utiliza variabile īn bucle For.

Exemplu:

For irand = 1 To 5

lstLista1.AddItem (Sheets(3).Cells(irand,2))

Next

adauga īn caseta cu lista lstLista1 cinci īnregistrari din a treia foaie de calcul, coloana 2 (B) rāndurile de la 1 la 5 din registrul de calcul curent.

3.10. Gestionarea unui proiect

Resursele unui proiect sunt memorate īntr-un fisier al proiectului care īn Visual Basic este un fisier cu extensia .RES.

Īn cazul īn care limbajul Visual Basic este utilizat din Excel, fisierul proiect este un fisier cu extensia .XLS.

Componentele proiectului pot fi vizualizate selectānd din meniul View optiunea Project Explorer astfel:


Īn fereastra din stānga ecranului vor fi afisate componentele proiectului si anume:

componente Excel

componente Visual Basic (Forms, etc.)

dupa cum este ilustrat īn ecranul care urmeaza:


3.11. Crearea si extinderea meniurilor

Limbajul Visual Basic permite crearea de meniuri personale pentru o aplicatie cu ajutorul editorului de meniuri.

Unei forme i se poate asocia o pictograma prin stabilirea proprietatii Icon a formei īn faza de proiectare atribuind proprietatii Icon un fisier cu formatul .ICO. Daca nu se specifica o pictograma, se va utiliza pictograma Visual Basic prestabilita pentru forme.

Aceasta pictograma va aparea īn coltul din stānga sus al formei.

Aceste elemente ale limbajului nu pot fi create si utilizate īn Visual Basic sub Excel.

3.12. Realizarea programului executabil pentru aplicatie (proiect)

Programul executabil pentru o aplicatie Windows (proiect) este un fisier executabil cu extensia .EXE care poate fi rulat īn afara mediului de dezvoltare Visual Basic. Acest fisier īmpreuna cu alte fisiere auxiliare necesare programului va fi livrat viitorilor utilizatori ai aplicatiei si va putea fi instalat si executat sub sistemul de operare Windows.

Crearea programului executabil poate fi realizata pentru un proiect creat sub Visual Basic (si nu sub Excel ca īn cazul de mai sus).

3.13. Baze de date, Gestionarul de date, controlul Data, obiecte Set de īnregistrari,

SQL pentru interogarea bazelor de date

Gestionarea datelor īn Visual Basic se realizeaza cu componenta Data Manager care este o extensie a programului Visual Basic ce permite crearea de baze de date Microsoft Jet (Access).

O baza de date creata cu gestionarul de date Visual Basic poate fi manipulata cu programul Access si o baza de date creata cu programul Access poate fi gestionata cu gestionarul de date al programului Visual Basic.

De asemenea programul Visual Basic poate accesa īn citire o baza de date de urmatoarele tipuri:

Btrieve

dBase III, IV

FoxPro 2.0, 2.5

Paradox 3.X, 4.X

O baza de date creata sub Visual Basic consta din unul sau mai multe tabele si relatiile dintre tabele memorate īntr-un fisier baza de date.

Pentru crearea unei baze de date se selecteaza optiunea New Database din meniul File al gestionarului de date.

Dupa crearea si salvarea fisierului ce va contine baza de date se deschide fereastra Database ce contine urmatoarele bitoane de comanda:

Open - deschide o baza de date existenta si afiseaza datele acesteia

New - creaza un nou tabel īn baza de date curenta

Delete - elimina un tabel din baza de date curenta

Design - afiseaza si eventual modifica structura unui tabel existent

Attach - ataseaza tabele la distanta

Relations - defineste relatii īntre date din tabele diferite.

Controlul Data este un control predefinit ce poate fi utilizat pentru conectarea unei aplicatii Visual Basic la sursa de date selectata si pentru legarea altor controale (casete de text, casete cu imagini, etc.) cu cāmpuri din tabele ale bazei de date.astfel īncāt orice modificari efectuate īn continutul acestor controale sunt automat īnregistrate īn cāmpurile corespunzatoare din baza de date. Spre exemplu daca un control caseta de text este legat de un cāmp al bazei de date, atunci orice modificare a continutului casetei de text va fi automat efectuata īn cāmpul asociat din baza de date.

Un obiect set de inregistrari Recordset este un set logic de īnregistrari din baza de date cu ajutorul caruia pot fi accesate datele din baze de date multiple prin cod Visual Basic deci fara a utiliza controlul Data sau controale legate.

O alta modalitate pentru interogarea, actualizarea si gestionarea bazelor de date relationale o constituie limbajul SQL (Structured Query Language) ale carui instructiuni pot fi utilizate īn programe Visual Basic pentru accesarea si gestionarea datelor din baze de date relationale.

Probleme rezolvate

Se creaza un registru de calcul Excel care contine urmatoarele foi de calcul:

- Sheet1 (Personal) - Lista personalului angajat, cu urmatoarele cāmpuri:

Marca

Nume si prenume

Functia


Salar tarifar orar

- Sheet2 (Pontaj) - Orele lucrate īn luna., cu urmatoarele cāmpuri:

Marca

Nume si prenume

Total ore lucrate ( SUM(Ziua : Ziua31) )

Ziua 1 (ore lucrate)

Ziua 2 (ore lucrate)

.

Ziua 31 (ore lucrate)


-Sheet3 (Retineri) - Lista retineri īn luna., cu urmatoarele cāmpuri:

Marca

Nume si prenume

Avans

CAR

Rate


- Sheet4 (Salarii) - Lista salariilor pentru luna., ce contine urmatoarele cāmpuri:

Marca

Nume si prenume

Functia

Tarif orar

Ore pontate

Salar realizat

Retineri

Salar net


Īn foile de calcul Pontaj, Retineri, Salarii, cāmpurile Marca, Nume si prenume sunt preluate prin referire din foaia de calcul Personal.

De asemenea , cāmpurile Functia, Ore pontate sunt preluate prin referire īn foaia de calcul Salarii din foile de calcul Personal respectiv Pontaj, iar cāmpul Retineri īn foaia Salarii se obtine prin sumarea cāmpurilor Avans, CAR, Rate din foaia de calcul Retineri.

Īn acest mod orice modificare asupra datelor īn foile de calcul Personal, Pontaj, Retineri, se vor reflecta automat si īn foaia de calcul Salarii.

Din editorul Visual Basic, sa se creeze īn foaia de calcul Salarii, un formular care sa contina butonul de comanda Calcul Salarii caruia sa i se ataseze codul Visual Basic care identifica ultimul rānd completat īn foile de calcul, calculeaza si depune rezultatele obtinute īn cāmpurile Salar Realizat, Salar Net din foaia de calcul Salarii utilizānd formulele:

Salar Realizat = Tarif Orar * Ore Pontate

Salar Net = Salar Realizat - Retineri

La executia formei prin click cu mouse-ul pe butonul Calcul Salarii se vor realiza operatiile mentionate mai sus.

Creare forma:



Codul Visual Basic atasat butonului Calcul Salarii:


Executie forma:


Rezultatul obtinut dupa executia formei:

Īn continuare se extinde problema cu alte tipuri de controale astfel:

Īn formularul Form1 se creaza o caseta cu lista ListBox1 ce va contine numele si prenumele angajatilor si un control imagine Image1 īn care se va incarca un fisier imagine. Codul Visual Basic pentru completarea casetei cu lista si īncarcarea imaginii va fi atasat butonului de comanda Command Button1. Īn ecranele ce urmeaza sunt ilustrate noile obiecte create , codul visual basic si rezultatul executiei formei.


Formularul Form1


Codul Visual Basic


Rezultatul executiei formei

Rezultatul executiei formei dupa setarea proprietatilor BackColor si Font ale casetei cu lista pe alte valori


Probleme propuse spre rezolvare

1. Sa se scrie codul Visual Basic care sa realizeze completarea tuturor cīmpurilor īn foaia de calcul Salarii (se pleaca de la o foaie de calcul Salarii vida), utilizānd foile de calcul Personal, Pontaj, Retineri si formulele de calcul mentionate mai sus.

2. Sa se scrie codul Visual Basic pentru crearea foilor de calcul Pontaj, Retineri plecānd de la foaia de calcul Personal (valorile efective pentru orele pontate si retineri urmānd a fi preluate ulterior de la tastatura).

Teste de verificare

Īntr-un mediu de programare Visual obiectele principale sunt:

a)      aplicatiile

b)     formele si controalele desenate īn forme

c)     procedurile

Īn Visual Basic obiectele pot fi create:

a)      cu comanda Object din meniul Insert a programului Excel

b)     folosind barele cu instrumente

c)     din meniul Edit al editorului Visual Basic

Īn programarea orientata obiect si dirijata de evenimente, majoritatea obiectelor raspund la:

a)      evenimente

b)     controale

c)     proprietati

Comportamentul unui obiect:

a)      este predefinit

b)     nu poate fi modificat de utilizator

c)     poate fi modificat de utilizator prin atasare de cod corespunzator

Un obiect este definit de:

a)      un set de proprietati

b)     comportament

Proprietatile descriu:

a)      actiunile obiectelor

b)     obiectele prin intermediul datelor

c)     metodele prin intermediul codului asociat

Īn gramatica programarii orientate spre obiecte:

a)      obiectele sunt verbe

b)     proprietatile sunt adjective

c)     metodele sunt substantive

d)     obiectele sunt substantive

e)     metodele sunt verbe

Referirea proprietatilor sau metodelor īn cadrul codului scris īn Visual Basic se poate face prin:

a)      numele proprietatilor sau metodelor

b)     utilizarea notatiei cu punct (nume obiect. Nume proprietate / metoda)

Proprietatile unui obiect pot fi setate:

a)      numai īn faza de proiectare utilizānd fisa Properties

b)     numai prin program utilizānd notatia cu punct

c)     atāt īn faza de proiectare cāt si prin program

Metodele pot fi executate:

a)      atāt īn faza de proiectare cāt si īn momentul executiei programului

b)     numai īn momentul executiei programului

c)     numai īn faza de proiectare

Pentru referirea unui obiect īn scrierea codului se poate utiliza:

a)      numele dat obiectului īn proprietatea Capture

b)     numele dat obiectului īn proprietatea Name

c)     numele obiectului dat īn proprietatea Capture, fie cel dat īn proprietatea Name

O variabila īn Visual basic poate fi declarata:

a)      implicit utilizānd sufixul

b)     explicit utilizānd instructiunea Dim

c)     cu instructiunea Declare

d)     cu instructiunea Static

O variabila locala poate fi facuta permanenta īn interiorul unei proceduri daca:

a)      este declarata cu instructiunea Dim

b)     este declarata cu instructiunea Static

O variabila declarata cu instructiunea Static

a)      este vizibila din orice punct al aplicatiei

b)     īsi conserva valoarea īnsa este vizibila numai īn cadrul procedurii īn care a fost declarata

Cel mai īnalt domeniu de vizibilitate a unei variabile se defineste cu instructiunea:

a)      Static

b)     Dim

c)     Global

Tipurile de date definite de utilizator pot fi declarate:

a)      la nivelul oricarei proceduri

b)     la nivel de forma

c)     numai īn sectiunea General / Declaration a modului de cod

Functia InputBox este:

a)      o functie definita de utilizator pentru preluare date de la tastatura

b)     o functie a limbajului Visual Basic pentru preluare date īntr-o caseta de text predefinita

c)     o functie Visual Basic pentru afisarea valorii unei variabile

Īn limbajul Visual Basic structurile de ramificare pot fi descrise:

a)      cu instructiunea If..End If

b)     cu instructiunea Do..Loop

c)     cu instructiunea Select..End Select

d)     cu instructiunea For...Next

e)     cu functia Iif(.)

f)      cu instructiunea If.Else If.EndIf

Īn limbajul Visual Basic structurile de ciclare pot fi descrise cu instructiunile:

a)      Select.End Select

b)     While.Wend

c)     For..Next

d)     If..ElseIf..EndIf

e)     Do.Loop

Īn Visual Basic pot fi definite urmatoarele tipuri de proceduri:

a)      macro - definitii

b)     proceduri - subrutine

c)     macro- functii

d)     proceduri - functii

O procedura subrutina poate realiza:

a)      returneaza o valoare

b)     efectueaza o actiune dar nu returneaza nici o valoarea

c)     efectueaza o actiune si poate returna o valoare

Īn definirea unei proceduri subrutina trebuie respectate conditiile

a)      Īncepe cu instructiunea Sub

b)     Īncepe cu prima instructiune din corpul procedurii

c)     Continua cu instructiunile din corpul procedurii

d)     Se poate termina cu instructiunea End Sub

e)     Se termina cu instructiunea End Sub

f)      Īn instructiunea Sub trebuie precizat numele procedurii

g)     Numele procedurii se va termina cu ( )

Īn definirea unei proceduri functii trebuie respectate conditiile:

a)      Īncepe cu instructiunea Sub

b)     Īncepe cu prima instructiune din corpul functiei

c)     Īncepe cu instructiunea Function

d)     Se poate termina cu instructiunea End Function

e)     Continua cu instructiunile din corpul functiei

f)      Īn instructiunea Function trebuie precizat numele functiei si argumentele īncadrate īntre paranteze

g)     Se termina cu instructiunea End Function

O procedura de tip functie poate realiza:

a)      Efectueaza o anumita operatie

b)     Poate returna o valoare

c)     Efectueaza o operatie dar nu returneaza nici o valoare

d)     Returneaza o valoare

e)     Atāt la definire cāt si la apelare parantezele sunt obligatorii

O procedura de orice tip (Sub sau Function):

a)      poate fi atasata unui obiect grafic

b)     nu poate fi atasata unui obiect grafic

c)     numai procedurile subrutina pot fi atasate unor obiecte grafice

d)     numai procedurile de tip functie pot fi atasate unor obiecte grafice

Se creeaza o caseta text (Text Box) numita txtCaseta1. Pentru a memora textul introdus īn aceasta caseta īn variabila sv1 se scrie instructiunea:

a)      sv1 = txtCaseta1.Name

b)     sv1 = txtCaseta1.Text

c)     sv1 = Text

d)     sv1 = txtCaseta1.Capture

Pentru crearea unui grup de butoane de optiune īntr-un cadru se procedeaza astfel:

a)      Se deseneaza mai īntāi butoanele de optiune

b)     Se deseneaza cadrul astfel īncāt sa contina butoanele de optiune

c)     Se deseneaza cadrul si apoi butoanele de optiune īn interiorul cadrului

Īntr-un grup de butoane de optiune pot fi active la un moment dat:

a)      mai multe butoane din grup

b)     un singur buton din grup

c)     toate butoanele din grup

d)     nici un buton din grup

Īntr-un grup de casete de validare pot fi active la un moment dat:

a)      mai multe casete de validare din grup

b)     nici o caseta de validare din grup

c)     numai o singura caseta de validare din grup (restrictie impusa)

d)     toate casetele de validare din grup

Obiectele care pot constitui containere de controale (alte obiecte) pot fi:

a)      Formele

b)     Butoanele de comanda

c)     Cadrele (frame)

d)     Casetele cu lista (ListBox)

e)     Casetele combinate (ComboBox)

Adaugarea de articole unei casete cu lista (ListBox) se poate realiza:

a)      prin tastare text īn interiorul casetei

b)     utilizānd metoda AddItem

c)     prin setarea proprietati Text a casetei

d)     prin setarea proprietatii Value a casetei

Referirea celulei C1, din a patra foaie de calcul a registrului de calcul Excel curent, īn Visual Basic se face astfel:

a)      C1

b)     Sheets(4).Cells(C1)

c)      Sheets(4).Cells(1,3)


Document Info


Accesari: 21084
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )