You are on page 1of 14

Programarea aplicaiilor

Microsoft Office
(Visual Basic for Applications)
Prezentat de

Valentin Clocotici

www.infoiasi.ro/~val/vba.html

Cursul nr. 6
Dialoguri (Forms)

Controale
Label Control
Un control Label este utilizat pentru afiarea unui text descriptiv, cum ar
fi titluri, instruciuni de ajutor etc.
Textul afiat nu este i nu poate fi legat de surse de date (n sensul c se
va modifica mpreun cu sursa de date).
Proprietatea implicit este Caption, reprezentnd textul afiat.
Evenimentul implicit este Click.

TextBox Control
Afieaz informaie scris de utilizator sau primit dintr-o surs de date.
Dac TextBox este legat de o surs de date, atunci modificarea
informaiei afiate produce i modificarea informaiei din sursa de date.
Informaia afiat are un format unitar (acelai font, acelai stil).
Proprietatea implicit este Value, reprezentnd coninutul casetei.
Evenimentul implicit este Change, declanat la modificarea proprietii
Value.

Controale
TextBox Control (continuare)
Text este proprietatea (string) care conine textul afiat.
Numrul de linii pentru textul afiat este controlat de proprietatea
boolean MultiLine. Dac MultiLine este False, textul este afiat
trunchiat. Liniile se termin la caracterele Newline. De remarcat
i interaciunea cu proprietatea ScrollBars prin care se
controleaz afiarea barelor de scroll (orizontal, vertical).
Proprietatea WordWrap permite scrierea unei linii lungi de text pe
mai multe linii. Trebuie ca MultiLine s fie True. De remarcat c,
la editarea textului unui control TextBox, se genereaz un
caracter Newline la acionarea Shift+Enter, Ctrl+Enter, similar
unui salt de linii dintr-o celul Excel.
O alt proprietate cu efect la editarea controlului este AutoSize.
Dac AutoSize este True, atunci redimensionarea controlului are
loc dup dimensiunea textului care trebuie s fie afiat. Dac
MultiLine este True, se ajusteaz nlimea controlului, altfel se
ajusteaz limea (textul care depete limea dialogului nu se
mai vede).
4

Controale

ListBox Control
Afieaz o list i permite selectarea unei sau mai multor intrri din list.
ListBox poate fi legat de o surs de date (proprietatea RowSource).
Controlul ListBox poate s apar ca o list ori ca un grup de controale
OptionButton sau CheckBox (ListStyle este Option; MultiSelect d
intrrile: Single butoane radio, Multi sau Extended boxe de
control).
Proprietatea implicit este Value, reprezentnd valoarea selectat
curent (din coloana dat de proprietatea BoundColumn).
Evenimentul implicit este Click.

Controale

ComboBox Control
Combin posibilitile de la ListBox i TextBox: utilizatorul poate
introduce o valoare nou (ca la TextBox), sau poate selecta o valoare
dintr-o list (ca la ListBox). Grafic, un control ComboBox arat ca o
list ascuns.
Se poate lega la o surs de date (de exemplu, celule dintr-o foaie de
calcul).
Proprietatea implicit este Value, reprezentnd valoarea selectat.
Evenimentul implicit este Change.

ListBox, ComboBox

O list poate fi asociat unei surse de date (datele afiate vor fi


nregistrrile din surs), modificrile vor fi regsite n list.
Proprietatea este RowSource care accept ca valoare un string
(definiia unui domeniu, numele unui domeniu). Prin program se pot
atribui obiecte Range:
ListBox1.RowSource=Range(B3).CurrentRegion.Address

Numrul de coloane ale unei liste (ListBox sau ComboBox) este


controlat de proprietatea ColumnCount:
0 pentru a nu afia nimic, -1 pentru afiarea tuturor coloanelor
disponibile.
O list nelegat de o surs de date accept cel mult 10 coloane.

Proprietatea ColumnWidths fixeaz limea coloanelor.


Valoarea controlului, proprietatea Value, este valoarea din linia
curent i coloana indicat de proprietatea BoundColumn.
Proprietatea BoundValue conine valoarea controlului atunci cnd
acesta primete focusul, adic, pentru ListBox i ComboBox,
valoarea din coloana BoundColumn a liniei curente la primirea
focusului.
7

ListBox, ComboBox

Proprietatea ColumnWidths specific dimensiunea coloanelor pentru un control list


(ListBox sau ComboBox). Sintaxa este
listobject.ColumnWidths [= String]
unde String este o niruire de dimensiuni, separate de prin ;.

Observaii.

-1 sau blank conduce la un calcul automat al dimensiunii,


0 produce ascunderea coloanei
Dimensiunile pot fi nsoite de unitate de msur.
Calculul automat (la -1 sau blank) este realizat prin mprirea limii controlului la numrul
de coloane.
Dac suma limilor specificate este mai mare dect dimensiunea controlului, se afieaz
doar coloanele din stnga (se va utiliza bara de defilare pentru a vedea celelalte coloane).
Dimensiunea minim calculat automat este de 72 puncte (1 inch).

Exemplu
ListBox1.ColumnWidths = 90;72;;1 cm
are ca efect o coloan de 90 de puncte, una de 72 de puncte, una calculat automat
i una de un centimetru.

ListBox, ComboBox

Dac lista are mai multe coloane, selectarea unei linii returneaz ca
valoare a controlului valoarea aflat pe coloana precizat ca
BoundColumn (numerotarea coloanelor este aici de la 1).
Proprietatea ControlSource identific locaia utilizat pentru a seta
sau a memora valoarea controlului (proprietatea Value). In cazul
Excel, ControlSource poate fi adresa (string) a unui domeniu:
ListBox1.ControlSource = Range("E3").Address

Intre valoarea controlului (Value) i locaia fixat n ControlSource


exist sincronizare n ambele sensuri. Dac Value este Null, n
locaia ControlSource nu apare nimic.
Exemplu:
dac lista este asociat unei liste de persoane i dac valoarea
controlului este campul nume, atunci o celul fixat drept
ControlSource va controla lista prin aceea c linia activ va fi linia care
are n cmpul nume valoarea din celula de control i, reciproc,
selectarea altei nregistrri din list va modifica i valoarea din celula de
control.
9

ListBox, ComboBox

Controalele de tip list au i proprietatea TextColumn care fixeaz


(numerotare de la 1) coloana de pe care se stabilete proprietatea
Text a controlului. In cazul listei ComboBox, valoarea Text este i
textul afiat n zona de text a controlului. In acest fel se poate obine
acces direct la dou dintre cmpurile liniei selectate.
Gestionarea listei se efectueaz prin proprietile Column, List i
ListIndex (toate sunt cu numerotare de la 0).
ListIndex returneaz indicele liniei selectate. De amintit i faptul c
acest indice este returnat ca valoare a controlului dac
BoundColumn este 0.
Exemple:
MsgBox ListBox1.TextColumn, vbInformation, "Proprietatea TextColumn
MsgBox ListBox1.Text, vbInformation, "Proprietatea Text
MsgBox ListBox1.BoundColumn, vbInformation, _
"Proprietatea BoundColumn
MsgBox ListBox1.Value, vbInformation, "Proprietatea Value
MsgBox ListBox1.ListIndex, vbInformation, "Proprietatea ListIndex"

10

ListBox, ComboBox

Proprietatea Column specific una sau mai multe intr dintr-o list (ListBox sau
ComboBox). Sintaxa este
listobject.Column([column[, row]]) [= value]

unde column, row sunt ntregi (numerotarea coloanelor, liniilor este de la 0)


value este un Variant care specific o singur valoare, o coloan de valori sau un
tablou bidemensional de valori care se ncarc n list, poriune necesar n scriere.
Observaii:

Dac se precizeaz linia i coloana, se obine itemul astfel specificat


Dac se specific doar coloana, se obine referin la coloana respectiv din linia curent a
listei..
Column returneaz un Variant.

Se poate utiliza Column pentru a asigna coninutul unei liste la alt control, de
exemplu stabilirea proprietii ControlSource pentru un TextBox.
Dac utilizatorul nu selecteaz nimic n list, Column este Null (se poate testa
valoarea prin funcia IsNull).
Se poate utiliza Column pentru a copia un tablou bidimensional ntr-o list. La
copiere are loc o transpunere a tabloului, Column(X, Y) este Array(Y, X). Prin
proprietatea List copierea are loc fr transpunere.

11

ListBox, ComboBox

Proprietatea List returneaz sau scrie intrrile din list (ListBox sau
ComboBox). Sintaxa este
listobject.List( row, column ) [= value]

unde row, column sunt ntregi (numerotarea de la 0), value este,


doar pentru scriere, un Variant cu valorile atribuite.
Observaii
De menionat proprietile ListCount (numrul de intrri n list) i
ListIndex (indicele liniei curente.
O list este un tablou variant, fiecare item fiind caracterizat de linia i
coloana sa.
Iniial, lista (ComboBox sau ListBox) este vid.

De notat c List este utilizat pentru a alimenta lista cu un tablou de


valori. Pentru o valoare individual sau pentru un tablou
unidimensional (o linie) se va utiliza AddItem. Pentru a elimina
intrri se utilizeaz metoda RemoveItem.
12

Controale
CheckBox Control
Este utilizat pentru alegeri ntre dou alternative (Yes/No,
True/False etc.).
Dac TripleState este True, controlul poate avea i valoarea
Null.
La legarea de o surs de date, schimbarea strii se reflect n
modificarea valorii sursei.
Proprietatea implicit este Value: Null = null (nici selectat, nici
neselectat), (1) True (selectat), 0 False (neselectat).
Evenimentul implicit este Click.

13

Controale
OptionButton Control
Permite selectarea dintr-un grup de opiuni.
Controlul este cunoscut i ca buton radio
(apsarea unui buton de selectare a unei
game de lungimi de und le deselecteaz
pe celelalte).
Butoanele de opiune dintr-un frame sunt
mutual exclusive. Asemenea grupuri se
pot defini i cu proprietatea GroupName,
fiecare grup fiind identificat prin denumire.
Un control OptionButton poate fi legat la
o surs de date, controlul poate s arate
valori Yes/No, True/False sau On/Off.
n funcie de proprietatea TripleState,
controlul poate avea i valoarea Null.
14

You might also like