You are on page 1of 26

CAPITOLUL 1

1. Scurtă prezentare a produsului Microsoft Word


1.1 Gestiunea documentelor (Meniul File)
1.2 Manipularea textului (Meniul Edit)
1.3 Formatarea documentelor (meniul Format)
1.4 Lucrul cu tabele (meniul Table)
1.5 Desene (Drawing)
1.6 Inserarea de imagini şi obiecte
1.7 Interclasarea de documente (Mail Merge)

2. Visual Basic for Applications (VBA) în Word


2.1 VBA – vedere de ansamblu
2.2 Înregistrarea macro-urilor
2.3 Elemente ale interfeţei de programare
2.4 Principalele obiecte şi colecţii Word
2.5 Utilizarea formularelor proprii (User Forms)
2.6 Exemplu de aplicaţie VBA în Word
Limbajul Visual Basic
for Applications [VBA]
pentru Microsoft Word

1. Scurtă prezentare a produsului Microsoft Word


Microsoft Word este un program de procesare de text adaptabil şi
uşor de folosit. Word oferă o multitudine de facilităţi pentru crearea
documentelor în mod profesional, pentru comunicarea ideilor şi partajarea
informaţiilor. Dintre aceste facilităţi amintim:
ƒ utilizarea puternicului set de instrumente de editare din Word
pentru a elabora proiecte, lucrând individual sau in grup
ƒ lucrul mai rapid si mai eficient folosind facilităţile Word de
automatizare
ƒ utilizarea vrăjitorilor din Word pentru configurarea automată a
documentelor
ƒ construirea de tabele, referinţe încrucişate, anteturi şi note de
subsol pentru a vă organiza documentele

1.1 Gestiunea documentelor (Meniul File)

Crearea unui document nou se realizează prin opţiunea New. În


caseta de dialog se specifică tipul de document dorit. Se pot crea documente
vide sau pe baza unor modele predefinite de Microsoft Word, cum ar fi:
scrisori de afaceri, fax-uri, memorandum-uri, rapoarte, publicaţii de tip
newsletter sau curriculum vitae.
Deschiderea unui document deja existent este posibilă prin opţiunea
Open, iar în caseta de dialog se specifică numele, tipul şi adresa
documentului care se deschide.
Salvarea unui document
• Se poate salva documentul activ la un moment dat, indiferent dacă
este nou creat sau deja existent (opţiunea Save).
• Se pot salva toate documentele deschise la un moment dat
(opţiunea Save All, când se tine apăsata tasta SHIFT).
• Se poate face o copie a unui document activ (opţiunea Save As)
La salvarea unui document, se poate specifica tipul de fişier astfel
încât acesta să poata fi utilizat şi de către alte programe.
Închiderea unui document activ se realizează cu ajutorul opţiunii
Close, sau Close All – pentru închiderea tuturor documentelor active la un
moment dat.

1.2 Manipularea textului (Meniul Edit)

Selectarea textului - există mai multe moduri de selectare a unui text


ƒ cu mouse-ul – se apasă butonul stâng al mouse-ului şi se trage
mouse-ul până la sfârşitul selecţiei
ƒ cu tastatura – se ţine apăsată tasta SHIFT şi se selectează textul
dorit cu ajutorul săgeţilor
ƒ se utilizează opţiunea Edit->Select All pentru a selecta întreg
conţinutul unui document

Copiere şi mutare – un text selectat poate fi eliminat din document


(opţiunea Edit-> Cut) sau copiat pentru a fi reutilizat (opţiunea Edit-
>Copy). Un text copiat sau eliminat prin comanda Cut poate fi inserat în alt
loc în acelaşi document sau poate fi introdus într-un alt document Word cu
ajutorul comenzii Edit->Paste.
Anularea unei comenzi se obţine prin opţiunea Edit->Undo. Se
poate seta numărul de acţiuni care pot fi anulate. Pentru a reface o acţiune,
se utilizează opţiunea Edit-> Repeat.
Pentru a regăsi un text în cadrul unui document se utilizează
opţiunea Edit->Find. În caseta de dialog se va specifica textul căutat şi
sensul de căutare în document. Un text astfel găsit poate fi înlocuit cu un
text specificat de utilizator în caseta de dialog Edit ->Replace.

1.3 Formatarea documentelor (meniul Format)

Formatarea textului (Font)


Pentru a formata un text, acesta trebuie mai întâi selectat. Apoi, se
pot modifica pentru acea selecţie, tipul de caracter (sau fontul), stilul
(normal, bold, italic, subliniat), dimensiunea, culoarea sau i se pot aplica
diverse efecte speciale.
Comenzile utilizate în acest sens pot fi selectate din caseta de dialog
Format->Font.
Formatarea paragrafelor (Paragraph)
Din caseta de dialog Format->Paragraph se pot selecta diverse
opţiuni legate de formatul unui paragraf, cum ar fi: alinierea (la stânga, la
dreapta sau centrat), distanţa faţă de marginea rândului (opţiunea
Indentation), distanţa între rânduri (opţiunea Line Spacing).
Formatarea paginii
Formatarea paginii se referă la definirea şi delimitarea unor elemente
cum ar fi antetele şi notele de subsol, marginile şi secţiunile, orientarea,
numerotarea sau fundalul paginii, după cum se observă din Figura 1.1.

Figura 1.1

a) Antet şi notă de subsol


Pentru ca anumite informaţii să apară la începutul fiecărei pagini,
cum ar fi de exemplu un titlu, se utilizează antetul. Nota de subsol se
creează pentru informaţiile care se repetă în josul fiecărei pagini dintr-un
document. Din meniul View, se selectează opţiunea Header and Footer şi
se introduce textul dorit în secţiunea aferentă – antet sau notă de subsol.
b) Margini
Marginea reprezintă distanţa dintre text şi marginea foii de hârtie.
Este imprimat de obicei textul din interiorul marginilor. Pentru a fixa
marginile, se selectează opţiunea Margins din caseta de dialog File->Page
Setup.
c) Secţiuni
Un document se poate împărţi în mai multe secţiuni astfel încât
fiecare secţiune să fie formatată diferit. Formatarea unei secţiuni presupune
stabilirea numărului de coloane, dimensiunea marginilor, formatarea
numărului de pagină şi a conţinutului şi poziţiei antetelor şi notelor de
subsol. Crearea unei noi secţiuni se obţine prin poziţionarea cursorului în
punctul de început al acesteia şi selectarea opţiunii Break din meniul
Insert. Pentru ca textul să fie dispus pe mai multe coloane se utilizează
opţiunea Columns din meniul Format, iar în caseta de dialog se specifică
numărul şi dimensiunea coloanelor.

d) Delimitatori de pagină
Microsoft Word introduce automat o pagină nouă când pagina
curenta este plină. Dacă se doreşte ca o pagină să înceapă într-un anume
punct, se selectează opţiunea Page Break din meniul Insert->Break.

e) Aliniere verticală a textului


Pentru a selecta un tip de aliniere a textului dintr-o pagină, se
selectează opţiunea Layout->Vertical Alignment din caseta de dialog File-
>Page Setup.

f) Numerotarea paginilor
Se poate specifica locul şi formatul pentru numărul paginii într-un
document utilizând caseta de dialog Page Numbers din meniul Insert.
Numărul paginii poate fi specificat şi din comanda View->Header and
Footer.

g) Dimensiune şi orientare
Tot din caseta de dialog File->Page Setup se selectează dimensiunea
dorită a paginii (de exemplu A4, A5, A6, etc – opţiunea Paper Size) şi
orientarea acesteia, respectiv pe verticală (Portrait) sau pe orizontală
(Landscape).

h) Fundal (Background)
Se pot selecta diverse fundaluri pentru un document Word, de la un
fond colorat, până la imagini. Acest lucru se realizează prin selectarea
opţiunii Background din meniul Format.

Chenare şi umbre
Într-un document Word, unele paragrafe, cuvinte, litere pot fi incluse
în chenare. De asemenea, se pot alege chenare pentru o întreagă pagină.
Acest lucru se realizează utilizând opţiunile Borders sau Page Borders din
meniul Format->Borders and Shading. În casetele de dialog aferente se
alege tipul chenarului, culoarea sau grosimea liniei.
Prin selectarea opţiunii Shading din acelasi meniu se pot alege
‘umbre’, care să apară în fundalul unui paragraf selectat anterior sau chiar al
unei pagini.

1.4 Lucrul cu tabele (meniul Table)

Informaţiile incluse într-un document pot fi reprezentate în diferite


moduri, unul din acestea fiind tabelul, care oferă posibilitatea unei mai bune
sintetizări şi structurări a datelor. Complexitatea tabelelor utilizabile variază
de la simplu la complex, după cum se poate observa în Figura 1.2.:

Figura 1.2

Crearea unor tabele simple


Un tabel este format din linii şi coloane la intersecţia cărora se
găsesc celule, în care se pot introduce diferite tipuri de date (numerice, text,
imagini etc.).
Pentru a crea un tabel se selectează opţiunea Insert Table din
meniul Table şi, în caseta de dialog, se specifică numărul de linii şi coloane
dorit. Opţiunea AutoFormat oferă posibilitatea utilizării unuia dintre
tipurile de tabele predefinite.
Există posibilitatea transformării unui text deja existent într-un tabel.
În acest sens, se selectează mai întâi textul şi apoi opţiunea Convert Text to
Table din meniul Table.
Dacă ulterior se doreşte inserarea de noi linii şi coloane într-un tabel,
se procedează în felul următor: se selectează mai întâi linia deasupra căreia
se va insera noua linie sau coloana în dreapta căreia se va introduce noua
coloană, iar apoi se apeleazăn comenzile Insert Rows sau Insert Columns
din meniul Table. În noile versiuni ale Microsoft Word există posibilitatea
inserării de linii deasupra sau sub rândul curent (Insert->Rows Above sau
Insert-> Rows Below) sau de coloane în stânga sau în dreapta coloanei
curente (Insert->Columns to the Left sau Insert-> Columns to the
Right).
Ştergerea celulelor dintr-un tabel se realizează prin intermediul
opţiunii Delete Cells din meniul Table, dupa ce au fost mai întâi selectate
celulele de şters. În caseta de dialog se poate specifica dacă se doreşte
ştergerea unei întregi linii sau coloane sau doar a unor celule.

Crearea unor tabele complexe


Cel mai simplu mod ce a crea tabele complexe sau neregulate se
realizează cu ajutorul comenzii Tables and Borders din bara de lucru
Standard. În acest mod, oricine poate să deseneze tabelul dorit fără prea
mare greutate.
Se poate utiliza însă şi opţiunea Draw Table din meniul Table,
similară cu desenarea unui tabel cu creionul pe o foaie de hârtie. Mai întâi se
desenează diagonala tabelului, pentru a-i defini mărimea, iar apoi liniile şi
coloanele din interior.
Pentru a divide o celulă în mai multe celule se selectează celula şi se
alege opţiunea Split Cells din meniul Table. Pentru a uni mai multe celule
într-una singură se selectează celulele şi se alege opţiunea Merge Cells tot
din meniul Table.

Chenare şi umbre
Implicit, tabelele sunt încadrate într-un chenar negru de o anumită
grosime. Pentru a modifica sau şterge un chenar, se selectează butonul
Tables and Borders din bara de lucru Standard şi apoi noul tip de chenar.

Sortarea si totalizarea datelor


Datele dintr-un tabel pot fi sortate alfabetic, numeric sau cronologic.
Pentru a sorta un tabel, se selectează mai întâi celulele de sortat şi apoi
opţiunea Sort din meniul Table. Din caseta de dialog se va alege ordinea de
sortare – crescătoare sau descrescătoare.
De asemenea, se pot efectua calcule cu datele dintr-un tabel. Pentru a
aduna, de exemplu, o coloana ce conţine numere, se selectează celula din
josul coloanei care se adună şi apoi butonul Auto Sum din bara de lucru
Tables and Borders. Pentru a efectua alte calcule se utilizează comanda
Formula din meniul Table.

Orientarea şi alinierea conţinutului unui tabel


Cu ajutorul comenzii Text Direction din meniul Format, un anumit
text poate fi dispus pe orizontală sau pe verticală.
Cu ajutorul instrumentelor de aliniere din barele de lucru
Formatting şi Tables and Borders, conţinutul celulelor unui tabel poate fi
aliniat orizontal sau vertical.

1.5 Desene (Drawing)

Un alt mod de reprezentare a informaţiilor dintr-un document este


cel grafic. Deşi este dedicat procesării textelor, Word oferă facilităţi de
desen liber sau de utilizare a unor elemente predefinite. În Figura 1.3 este
prezentat un document ce conţine diferite desene şi obiecte.

Figura 1.3

Utilizarea barei de lucru Drawing


Din bara de lucru Drawing se pot alege instrumente pentru a desena,
manipula sau formata diverse desene.
Crearea de forme
În Word există o serie de forme predefinite care pot fi selectate cu
ajutorul opţiunii AutoShapes, fie din meniul Insert->Picture, fie din bara
de lucru Drawing. Aceste forme predefinite sunt grupate pe categorii: linii
(Lines), forme de bază (Basic Shapes), săgeţi (Block Arrows), elemente
pentru diagrame de flux (Flowchart Elements), steluţe şi insigne (Stars and
Banners).
Pentru a desena oricare din aceste forme, este necesară selectarea ei
din meniul AutoShapes. După desenare, o formă poate fi redimensionată.
Toate formele de bază au puncte de mânuire (handles), cu ajutorul cărora li
se poate modifica forma sau dimensiunea.
Adăugarea de text la desene
I se poate adăuga un text oricărui obiect desenat, mai putin liniilor,
formelor libere sau conectorilor, prin simpla selectare a desenului şi apoi
editarea textului respectiv. Există şi instrumentul Text Box în bara de lucru
Drawing, cu ajutorul căruia se poate introduce un text încadrat într-un
chenar oriunde în pagină.
Linii drepte, curbe şi alte forme
Cu ajutorul butonului Line din bara de lucru Drawing se pot desena
linii drepte. Pentru linii curbe se apelează meniul AutoShapes. Tot cu
ajutorul instrumentelor din bara de lucru Drawing, liniile sau formele deja
desenate pot fi modificate, în sensul schimbării grosimii, culorii, tipului
(punctat, de exemplu) sau transformării liniilor în săgeţi.
Manipularea obiectelor
Manipularea unui obiect presupune selectarea în prealabil a acestuia,
cu ajutorul mouse-ului. Asupra obiectului se pot efectua apoi următoarele
acţiuni:
• Copiere, tăiere sau lipire – cu ajutorul comenzilor Copy, Cut sau
Paste din meniul Edit
• Redimensionare – fie cu ajutorul opţiunii Size din caseta de
dialog Format-> AutoShape, fie cu ajutorul punctelor de
mânuire (handles). Dacă se lucrează cu punctele de mânuire,
desenul este adus la forma dorită cu ajutorul mouse-ului (drag and
drop).
• Rotire – cu ajutorul comenzii Free Rotate din bara de lucru
Drawing; punctele de mânuire se transformă astfel încât obiectul
va putea fi rotit de utilizator în ce sens doreşte. Se poate utiliza şi
meniul Draw din bara de lucru Drawing, unde se alege opţiunea
Rotate or Flip.
Formatarea obiectelor
Din caseta de dialog Format->AutoShapes se pot alege opţiuni
pentru:
• Modificarea culorii de fond a obiectului - Colors and Lines->Fill
• Modificarea conturului, ca stil de linie sau culoare – Colors and
Lines
• Aliniere sau mod de dispunere în pagină – Layout

Gruparea obiectelor
Dacă se lucrează cu mai multe obiecte la un moment dat, pentru a le
manipula mai uşor acestea pot fi grupate. Acest lucru se realizează cu
ajutorul comenzii Group din meniul Draw din bara de lucru Drawing.
Pentru a le degrupa se utilizează comanda Ungroup, din acelaşi meniu.

1.6 Inserarea de imagini şi obiecte


Pentru a insera o imagine se utilizează opţiunea Picture din meniul
Insert. Se pot introduce imagini din galeria Microsoft Word (Clipart), dintr-
un fişier specificat de utilizator, imagini scanate, grafice sau texte dintr-o
galeri predefinită (WordArt).
În galeria Clipart există o serie de imagini predefinite, grupate pe
diverse categorii, cum ar fi: comunicaţii, birou, familie, muzică, plante, etc.
Pentru a le utiliza se selectează comanda Insert Clip Art din bara de lucru
Drawing sau din meniul Insert->Picture.
Inserarea unei imagini dintr-un alt fişier se realizează cu ajutorul
opţiunii From File din meniul Insert->Picture, iar în caseta de dialog se
localizează fişierul dorit.
Galeria WordArt conţine diverse tipuri de texte artistice pe care
utilizatorul le poate folosi pentru a edita un text. Se selectează în acest sens
opţiunea WordArt din bara de lucru Draw sau din meniul Insert->Picture.
În caseta de dialog se alege tipul de text, apoi se editează şi se formatează
textul dorit.

1.7 Interclasarea de documente (Mail Merge)


Interclasarea de documente, realizată cu ajutorul opţiunii Mail
Merge, presupune existenţa a două documente: un fişier principal şi un
fisier de date. Legătura dintre aceste două fişiere se realizează prin anumite
câmpuri de date, numite “câmpuri de interclasare” (merge fields).
Interclasarea se poate face pe baza a două documente deja existente sau prin
crearea unor documente noi. Fişierul principal este un document obişnuit,
care conţine o parte variabilă, specificată prin câmpurile de interclasare.În
versiunile recente de Microsoft Word (începând cu anul 2000), câmpurile de
date nu mai sunt salvate într-un document, ci sub forma unei tabele
Microsoft Access, numită listă.

Etapele interclasării documentelor cu ajutorul Vrăjitorului


1. Se activează vrăjitorul corespunzător interclasării, cu ajutorul
opţiunii Tools-> Letters and Mailings->Mail Merge Wizard...
Vrăjitorul este structurat în 6 paşi.

2. Primul pas îl reprezintă alegerea unui tip pentru documentul


principal. Tipurile disponibile sunt:
a. Scrisori (Letters)
b. Mesaje electronice (E-Mail messages)
c. Plicuri (Envelopes)
d. Etichete (Labels)
e. Catalog de adrese (Directory).

Vom prezenta în continuare paşii pentru crearea unei scrisori


circulare.
3. După ce a fost selectat tipul de document (Letters) urmează
specificarea documentului de bază. Se poate:
a. Porni de la documentul curent – opţiunea Use the current
document
b. Utiliza un model predefinit de document – opţiunea Start from
template
c. Utiliza un document existent – opţiunea Start from existing
document.

4. La pasul al treilea din vrăjitor se va specifica lista unde sunt


salvate câmpurile de date. Din nou există 3 opţiuni:
a. Utilizarea unei liste disponibile, prin specificarea fisierului
Microsoft Access corespunzător – Use an existing list
b. Selectarea persoanelor de contact dintre adresele salvate în
Microsoft Outlook – Select from Outlook contacts
c. Editarea unei noi liste de persoane de contact – Type a new list.
Selectarea acestei opţiuni are ca efect deschiderea unei ferestre
de dialog, prezentată în figura 1.4.
Figura 1.4

Există un set de câmpuri predefinite care vor putea fi completate


pentru fiecare destinatar al scrisorii circulare. Modificarea acestora, în
sensul adăugării, ştergerii sau redenumirii lor este posibilă cu ajutorul
opţiunii Customize....Pentru adăugarea unei noi persoane de contact se
utilizează butonul New Entry, iar pentru ştergerea persoanei de contact
selectate butonul Delete Entry. Navigarea între înregistrările dintr-o listă se
poate realiza cu ajutorul butoanelor First, Previous, Next, Last, active
pentru o listele cu cel puţin două înregistrări, unde o înregistrare reprezintă
toate informaţiile existente despre o anumită persoană de contact.
Prin închiderea ferestrei de dialog, cu ajutorul butonului Cancel, are
loc şi salvarea informaţiilor înregistrate. Vizualizarea lor ulterioară este
posibilă prin opţiunea Edit recipients list, iar fereastra de dialog aferentă
este prezentată în figura 1.5:

Figura 1.5
Înregistrările din listă pot fi sortate după diferite câmpuri dacă se
efectuează click pe denumirea câmpului respectiv. Modificarea unei
înregistrări se face prin activarea butonului Edit....
De asemenea, pot fi selectate doar anumite înregistrări din listă
pentru utilizare în scrisoarea circulară. Acest lucru se poate realiza în două
moduri:
• prin bifarea căsuţei din stânga corespunzătoare înregistrărilor
dorite
• prin activarea submeniului unui anumit câmp (săgeata din stânga
denumirii câmpului) şi selectarea uneia din opţiunile:
ƒ (All) – toate înregistrările
ƒ Oricare din câmpurile din listă, prin denumirea sa
ƒ (Blanks) – doar înregistrările pentru care acest câmp este vid
ƒ (Nonblanks) – doar înregistrările pentru care acest câmp nu
este vid
ƒ (Advanced) – specificarea uror criterii de selecţie pentru
câmpuri.

5. După definitivarea editării sursei de date, pasul următor presupune


editarea documentului principal, respectiv scrierea efectivă a
scrisorii şi inserarea câmpurilor dorite. Word permite introducerea
unor blocuri predefinite de câmpuri, pentru adresă (Address block...),
formule de încheiere (Greeting line...), ş.a. sau lasă utilizatorul să-şi
formateze scrisoarea după plac (opţiunea More items...). După
inserare, în documentul principal denumirile câmpurilor vor apare
astfel: «Title» «Company_Name» «First_Name» «Last_Name».

6. Penultimul pas al vrăjitorului permite previzualizarea scrisorilor


circulare.

7. În ultimul pas are loc interclasarea efectivă acelor două documente:


a. Într-un document nou – se obţine un document nou în care se
găsesc scrisorile personalizate pentru fiecare destinatar.
b. Pentru imprimare – interclasarea are loc doar la imprimare.

În ambele cazuri există posibilitatea selectării tuturor înregistrărilor,


doar a celei curente sau specificarea înregistrărilor pentru care se face
interclasarea.
Interclasarea documentelor, odată ce acestea sunt create, se poate
face şi prin utilizarea opţiunilor din bara de lucru Mail Merge (View-
>Toolbars->Mail Merge).

2. Visual Basic for Applications (VBA) în Word

2.1 VBA – vedere de ansamblu

Visual Basic for Applications este un subset al limbajului Visual


Basic utilizabil din interiorul aplicaţiilor care-l implementează (MS Word,
MS Excel, ş.a.), şi este destinat automatizării anumitor activităţi de rutină
(repetitive) ale utilizatorilor acestor aplicaţii.
VBA intră în categoria limbajelor – macro, termenul de macro
semnificînd o secvenţă de operaţii memorată ca unitate de sine-stătătoare şi
apelabilă de către utilizator. Iniţial, macro-urile erau create prin
“înregistrarea” secvenţei de operaţii, conţinutul lor nefiind accesibil sau
modificabil. Limbajele macro ne dau posibilitatea de a extinde
funcţionalitatea macro-urilor prin elemente specifice limbajelor de
programare.
Ca şi Visual Basic, VBA este puternic orientat pe obiecte;
elementele aplicaţiilor sunt accesibile programatorului, fiind reprezentate
prin obiecte VBA.

2.2 Înregistrarea macro-urilor

Înregistrarea unui macro se face cu ajutorul componentei Macro


Recorder. Aceasta “traduce” acţiunile utilizatorului în instrucţiuni VB,
acţiuni efectuate între momentul începerii înregistrării şi cel al sfîrşitului
acesteia. Putem apoi edita codul rezultat, efectuînd modificările necesare.

Notă: codul generat de Macro Recorder nu poate include instrucţiuni


de control (bucle, decizii), atribuiri de variabile, formulare proprii sau
tratarea erorilor, fiind o simplă secvenţă de operaţiuni.

Cum înregistrăm un macro în Word?


1. Din meniul Tools se alege Macro->Record Macro
2. Se introduce numele macro-ului în cîmpul Macro name
3. Se selectează documentul sau şablonul (template) în care se va
memora macro-ul, din cîmpul Store macro in
4. Se dă o descriere a macro-ului în cîmpul Description
5. Dacă nu dorim accesarea macro-ului printr-un meniu sau buton
(toolbar) se apasă OK pentru a începe inregistrarea macro-ului; în
caz contrar se continuă cu pasul următor
6. Din căsuţa Commands se selectează macro-ul pe care-l vom
înregistra şi se efectueză drag&drop pe meniul sau toolbar-ul
dorit. Este posibilă şi definirea unei taste de acces, prin clic pe
Keyboard. Înregistrarea începe după ce se apasă pe butonul
Close.

După începerea înregistrării, se efectuează activităţile pe care dorim


să le includem în macro. Nu se pot înregistra acţiuni ale mouse-ului în
fereastra documentului (mutarea cursorului, selecţie, copiere, mutare),
acestea trebuind efectuate cu ajutorul tastaturii pentru a fi înregistrate.
Putem folosi totuşi mouse-ul pentru comenzi din meniuri sau butoane de pe
toolbar, precum şi pentru selecţia opţiunilor.
Înregistrarea se încheie cu comanda Stop Recording.

Codul rezultat se poate vizualiza astfel:


1. Din meniul Tools alegem Macro->Macros (sau Alt+F8)
Selectăm macro-ul dorit şi apăsăm butonul Edit.

2.3 Elemente ale interfeţei de programare

2.3.1 Colecţii, proprietăţi şi metode

Colecţii
O colecţie este un obiect care conţine mai multe alte obiecte, de
obicei de acelaşi tip. Prin proprietăţi şi metode se poate modifica întreaga
colecţie, sau numai obiecte individuale din aceasta. Uzual, numele unei
colecţii este pluralul substantivului care defineşte tipul de obiecte care
aparţin colecţiei.
Ex. Documents, Paragraphs, Words

Proprietăţi
Sunt atribute ale obiectelor sau ale comportamentului acestora.
Pentru a modifica aceste caracteristici trebuie modificate valorile
proprietăţilor corespunzătoare. Nu toate proprietăţile permit modificarea
prin program; în general, proprietăţile sunt de trei feluri:
• read-write: permit atît citirea, cît şi modificarea
• read-only: permit numai citirea
• write-only: permit numai modificarea (setarea) valorii

Metode
Metodele sunt acţiuni care pot fi executate de către obiecte. Adesea
metodele au argumente (parametri) care precizează modul de execuţie al
acţiunii.

2.3.2 Accesarea obiectelor

Accesarea unui obiect dintr-o colecţie se poate face folosind o


valoare index pentru colecţie, care poate fi un număr sau un nume.
Ex.: Documents(1).Close
Pentru primul obiect de tip Document din colecţia Documents se
apelează metoda Close (pentru închiderea documentului).
Documents("Sales.doc").Close
Similar, dar se utilizează un nume de document (şir de caractere)
pentru calificarea obiectului în cadrul colecţiei.

Notă: Toate colecţiile au metoda Item, care returnează un obiect


individual din colecţie. Această metodă este implicită, deci apelul său poate
fi omis pentru conciziune. Astfel, expresia Documents.Item(1) este
echivalentă cu Documents(1).

Obiectele de tip colecţie pot avea metode care afectează toate


obiectele din colecţie. De exemplu, colecţia Documents are o metodă Save
care salvează toate documentele din colecţie:
Documents.Save
Şi obiectele Document au o metodă Save, care poate fi folosită pentru
salvarea unui singur document.
Documents("Report.doc").Save

Colecţiile şi obiectele VBA sunt structurate într-o manieră


arborescentă; accesul la un anumit obiect se poate face parcurgînd această
structură de la rădăcină (sau alt nod superior cunoscut ) către obiectul dorit.
Această parcurgere se face prin intermediul metodelor şi proprietăţilor
obiectelor de pe nivelele superioare ale ierarhiei. În vârful ierarhiei se află
obiectul Application.
Ex.: Application.ActiveDocument.Words(1)

Cum aflăm care sunt obiectele, proprietăţile şi metodele pe care


trebuie să le folosim ?
Există cîteva căi pentru a ne ajuta să parcurgem ierarhia de obiecte:
• Listarea automată a membrilor: în editorul VB, dacă scriem “.”
după numele unei metode sau proprietăţi, se va afişa o listă cu
proprietăţile şi metodele disponibile.
• Help (ajutor) on-line: putem accesa informaţii despre obiecte,
metode şi proprietăţi ale acestora, cu tasta F1, după ce am
selectat în editor sau în fereastra Object Browser obiectul dorit.
• Object Browser: afişază membrii (proprietăţi şi metode)
obiectelor Word.
• Diagrama “Microsoft Word Objects”, din cadrul Help-ului,
prezintă dispunerea obiectelor în structura arborescentă şi
permite accesarea directă a informaţiilor despre acestea.
• o cale comodă de a afla care sunt proprietăţile şi obiectele de
care avem nevoie este înregistrarea unui macro şi editarea
codului rezultat

2.3.3 Evenimente Word

În programarea orientată obiect putem asocia evenimentelor anumite


secvenţe de instrucţiuni, care vor fi executate la apariţia acestor evenimente.
Putem folosi deci evenimentele specifice aplicaţiei Word pentru a
personaliza modul de lucru cu aceasta.
● Evenimentele Word sunt de trei categorii:
• evenimente legate de obiectul Document
• evenimente legate de obiectul-aplicaţie (Application)
• evenimente legate de controale ActiveX incluse în document
(depăşesc scopul acestui material)
● Evenimente legate de obiectul Document
Obiectul Document poate răspunde la trei evenimente:
New - are loc la crearea unui document pe baza şablonului
(document template) care conţine procedura pentru
tratarea acestui eveniment. Această procedură are efect
numai cînd este inclusă într-un şablon.
Open - are loc la deschiderea documentului
Close - are loc la închiderea documentului

Procedurile pentru aceste evenimente trebuiesc incluse în modulul


(class module) ThisDocument.
Ex.: Procedura de mai jos afişază un mesaj la crearea unui
document nou.
Private Sub Document_New()
MsgBox "New document was created"
End Sub

● Evenimente legate de obiectul aplicaţie (Application)


Aceste evenimente privesc aplicaţia Word în ansamblul ei. Obiectul
Application poate răspunde la două evenimente:
DocumentChange - are loc la crearea unui nou document, la deschiderea
unuia existent sau la schimbarea documentului activ.
(Word permite deschiderea simultană a mai multor
ferestre – document)
Quit - are loc atunci cînd utilizatorul părăseşte (închide)
aplicaţia Word
Scrierea procedurilor de tratare a acestor evenimente este puţin mai
complicată:
• mai intîi trebuie definită o clasă VB (class module), numită spre
exemplu EventClassModule, care să aibă un membru de tip
Word.Application care acceptă evenimente:
Public WithEvents App As Word.Application
• în această clasă se scriu procedurile corespunzătoare
evenimentelor, în legătură cu obiectul – aplicaţie declarat (App
în acest exemplu)
Private Sub App_DocumentChange()
. . .
End Sub
• în final trebuie conectat obiectul declarat în clasa de mai sus cu
obiectul Application. Într-un alt modul se includ următoarele
instrucţiuni:
Dim X As New EventClassModule
Sub Register_Event_Handler()
Set X.App = Word.Application
End Sub
Astfel se declară un obiect X din clasa EventClassModule, iar în
procedura Register_Event_Handler se efectuează conectarea propriu-zisă.
După rularea acestei proceduri, obiectul App membru al instanţei X
desemnează obiectul Word.Application, iar procedurile de tratare a
evenimentelor prevăzute de clasa EventClassModule vor fi rulate la
apariţia evenimentelor.

2.4 Principalele obiecte şi colecţii Word

Principalele obiecte şi colecţii Word sunt prezentate în tabelul 1.1.

Obiecte şi colecţii Word


Tabelul 1.1
Obiect Semnificaţie
Application Aplicaţia Word
Proprietăţi:
Documents Colecţia de documente deschise
ActiveDocument Documentul activ
IsObjectValid Verifică dacă obiectul referit de o variabilă
este valid
Selection Zona selectată sau cursorul curent
Colecţie de documente

Metode:
Run Rulează un macro
Help Afişază informaţii din help-ul on-line
Quit Închide aplicaţia Word, salvînd opţional
documentele deschise
Repeat Repetă utima acţiune de editare (similar
cu comanda Repeat din meniul Edit)

Documents Colecţie de documente


Metode:
Add Adaugă un document nou la colecţie
Close Închide documentele din colecţie
Item Identifică un element din colecţie
Save Salvează documentele din colecţie
Document Document Word
Proprietăţi
Paragraphs Colecţia paragrafelor din document
Tables Colecţia tabelelor din document
Sentences Colecţia propoziţiilor din document
Section Colecţia secţiunilor din document
Words Colecţia cuvintelor din document
Characters Colecţia caracterelor din document
Saved Documentul a fost salvat de la ultima modificare
Metode
Activate Activează documentul
Close Închide documentul
PrintOut Tipăreşte documentul
Save Salvează documentul
SaveAs Salvează documentul sub alt nume

Selection Zona selectată din documentul curent


sau cursorul (punctul de inserţie)
Proprietăţi:
Type Tipul zonei selectate
Information Informaţii despre selecţie sau zonă (Range)
Start Caracterul de început al selecţiei
End Caracterul de sfîrşit al selecţiei
Font Tipul de literă folosit şi caracteristicile sale
Range Obiectul Range corespunzător selecţiei
Metode:
Collapse Reduce zona selectată la cursor
Cut Mutarea obiectelor din selecţie în Clipboard
(similar cu Edit -> Cut )
Copy Copiere în Clipboard
Paste Inserarea obiectelor din Clipboard în selecţie
Delete Şterge continutul selecţiei
Sort Sortează paragrafele din selecţie

Range Reprezintă o zonă dintr-un document.


Majoritatea proprietăţilor şi metodelor sunt
similare celor ale obiectului Selection.

Notă: cele mai importante proprietăţi ale obiectului Application


sunt considerate “globale”, nemaifiind necesară menţionarea acestui obiect.
Application.ActiveDocument.Save este echivalent cu
ActiveDocument.Save

2.4.1 Utilizarea obiectelor Selection şi Range

Obiectele Selection şi Range pot fi folosite pentru a modifica o


zonă din document (spre exemplu prin formatare sau introducere de text).
Diferenţa dintre ele constă în faptul că Selection cuprinde zona selectată la
un moment dat în document (prin acţiuni ale utilizatorului sau prin
instrucţiuni VB), în timp ce Range poate cuprinde orice zonă din document,
zonă specificată de obicei prin program. Drept consecinţă, putem avea la un
moment dat un singur obiect Selection, dar mai multe obiecte Range
desemnînd zone diferite din document.

Cum stabilim zona desemnată de un obiect Selection?


Dacă dorim modificarea selecţiei curente prin program astfel încît să
cuprindă un anumit obiect, putem folosi metoda Select asociată acelui
obiect (Range, Paragraph, Row, Word, Table, etc.). Zona selectată
poate fi apoi extinsă prin metode precum MoveDown, folosind parametrul
wdExtend.

Cum stabilim zona desemnată de un obiect Range?


Ca şi în cazul obiectului Selection, majoritatea componentelor unui
document au asociată proprietatea Range, care desemnează zona în care se
găseşte obiectul respectiv. O altă modalitate este metoda Range a obiectelor
de tip Document, care admite ca parametri începutul şi sfîrşitul zonei dorite.
Un obiect Range îşi poate modifica zona pe care o desemnează prin metoda
SetRange.

Legături între Range şi Selection


Putem obţine un obiect Range care desemnează zona selectată
folosind proprietatea Range a obiectului Selection.
MyRange = Selection.Range
Invers, putem specifica zona selectată pentru a corespunde unui
obiect Range, folosind metoda Select a acestuia.
MyRange.Select

2.4.2 Apelarea formularelor standard Word

Formularele standard Word (dialog boxes) pot fi folosite prin


program pentru introducere de date sau controlul aplicaţiei. Ele se accesează
ca elemente ale colecţiei Dialogs, fiind desemnate prin constante simbolice.
Există mai multe modalităţi de utilizare a acestor formulare, în
funcţie de metoda folosită:
1. Show : Afişarea formularului şi executarea acţiunilor prevăzute de
acesta.
Dialogs(wdDialogFileOpen).Show
Este afişat formularul standard de deschidere a unui fişier; dacă se apasă
butonul OK, fişierul selectat este deschis.

2. Display: formularul este afişat, dar nu sunt executate acţiunile


acestuia. Astfel, un formular poate fi folosit pentru a culege date
ce vor fi folosite în program.
With Dialogs(wdDialogToolsOptionsUserInfo)
.Display
MsgBox .Name
End With

Este afişat formularul User Information (corespunzător meniului


Tools -> Options), după închiderea acestuia fiind afişat numele introdus
de utilizator.
Modificările efectuate pot fi actualizate în formular prin metoda
Execute, care nu presupune afişarea formularului.
With Dialogs(wdDialogToolsOptionsUserInfo)
.Display
If .Name <> "" Then .Execute
End With
Metodele Show şi Display întorc un rezultat numeric care reflectă
modul cum a fost închis formularul:
-2 Butonul Close
-1 Butonul OK
0 (zero) Butonul Cancel
> 0 (zero) Un alt buton din formular: 1 - primul buton, 2 - al
doilea, etc.

3. Citirea sau setarea unor valori (proprietăţi) din cadrul


formularului fără afişarea acestuia. Setarea valorilor trebuie
urmată de apelul metodei Execute. Este recomandabil să
modificăm proprietăţile direct, nu prin intermediul formularelor
Word.

With Dialogs(wdDialogFormatParagraph)
.KeepWithNext = 1
.Execute
End With

Se poate înlocui cu:


Selection.Paragraphs(1).KeepWithNext = True
2.5 Utilizarea formularelor proprii (User Forms)

Formularele proprii se definesc în componenta Visual Basic


Editor ( meniul Tools -> Macro -> Visual Basic Editor), în mod
similar cu formularele obişnuite Visual Basic. Reamintim pe scurt etapele
definirii unui formular funcţional VB:
• proiectarea grafică a formularului, prin amplasarea
componentelor corespunzătoare în fereastra acestuia
• stabilirea valorilor proprietăţilor acestor componente, inclusiv a
numelui componentelor ce vor fi utilizate în program
• scrierea codului pentru evenimentele corespunzătoare
componentelor interfeţei

Formularelor utilizator le corespund obiecte de tip UserForm, care


sunt conţinute în colecţia UserForms. Pentru utilizarea efectivă a
formularelor se folosesc următoarele metode ale clasei UserForm:
Show - afişază formularul
Hide - ascunde formularul
şi instrucţiunile
Load - încarcă formularul, dar nu îl afişază
Unload - descarcă formularul
Ex.:
Load myForm
myForm.Show
Formularele definite de utilizator au caracter modal, adică
utilizatorul trebuie să închidă formularul pentru a putea lucra în continuare
cu aplicaţia.
Pentru iniţializări necesare formularului se va scrie codul
corespunzător în procedura Initialize a formularului.
Obiectul UserForm are proprietatea Controls, care desemnează
colecţia componentelor de interfaţă ale formularului (butoane, etichete, etc.)

2.6 Exemplu de aplicaţie VBA în Word

Ne propunem construirea unui macro pentru găsirea tuturor


apariţiilor unui cuvînt (text) în document şi formatarea acestora, specificînd
un anumit tip de literă, mărime etc. Pentru aceasta proiectăm un formular
utilizator în care să putem introduce cuvîntul dorit şi să specificăm
caracteristicile de formatare. Pentru uşurinţa utilizării vom prelua textul de
căutat din zona selectată de utilizator, dacă aceasta există. Caracteristicile de
formatare vor fi stabilite cu ajutorul formularului standard al Word-ului
pentru acest scop (wdDialogFormatFont).
Formularul proiectat în Visual Basic Editor este prezentat în figura 1.6:

Figura 1.6

S-au folosit următoarele nume pentru componente:


frmFindFormat - formular
cmdOK - butonul OK tbWhat - TextBox pt. textul de căutat
cmdCancel - butonul Cancel tbFontName - Tipul de caracter
cmdFont - butonul Font tbSize - Mărimea literei

Se observă că butonul OK este iniţial dezactivat; el va fi activat după


selectarea noilor caracteristici ale textului, cu ajutorul butonului Font.
Acesta deschide formularul standard pentru selectarea caracteristicilor de
formatare.
TextBox-urile referitoare la formatarea textului nu sunt modificabile,
fiind prevăzute numai pentru afişarea informaţiilor.

În continuare dăm codul VB asociat formularului:


'Declaratii globale
Dim myFont As New Font 'variabila pentru referirea unui
'obiect de tip Font

Private Sub cmdCancel_Click()


'Inchide formularul
Unload Me
End Sub
Private Sub cmdFont_Click()
Dim fontDlg As Dialog 'variabila pentru referirea
'unui obiect Dialog
'Asociem variabilei formularul standard
'pentru formatarea textului
Set fontDlg = Dialogs(wdDialogFormatFont)

With fontDlg
'afisam formularul standard
.Display

'dupa inchiderea formularului standard


'preluam caracteristicile introduse
'ca proprietati ale variabilei myFont
myFont.AllCaps = .AllCaps
myFont.SmallCaps = .SmallCaps
myFont.Underline = .Underline
myFont.Bold = .Bold
myFont.DoubleStrikeThrough = .DoubleStrikeThrough
myFont.Emboss = .Emboss
myFont.Engrave = .Engrave
myFont.Italic = .Italic
myFont.Kerning = .Kerning
myFont.Name = .Font
myFont.Outline = .Outline
myFont.Shadow = .Shadow
myFont.Size = .Points
myFont.StrikeThrough = .StrikeThrough
myFont.Subscript = .Subscript
myFont.Superscript = .Superscript
myFont.Underline = .Underline
End With

'actualizam continutul TextBox-urilor


tbFontName.Text = myFont.Name
tbSize.Text = myFont.Size

'activam butonul OK
cmdOK.Enabled = True

End Sub

Private Sub cmdOK_Click()


'selectia curenta este redusa la punctul de
'insertie si mutata la inceputul liniei
Selection.HomeKey

'gaseste prima aparitie a textului din tbWhat


'Forward:= True - sensul de parcurgere al documentului
'Wrap:=wdFindStop - oprirea cautarii la sfirsitul
‘documentului
Selection.Find.Execute FindText:=tbWhat.Text,
Forward:=True, Wrap:=wdFindStop

'repeta, cit timp a fost gasit textul


Do While Selection.Find.Found = True

'modifica formatarea textului selectiei;


'la gasirea textului, selectia se modifica
'pentru a cuprinde aparitia curenta
Selection.Font = myFont

'gaseste urmatoarea aparitie


Selection.Find.Execute FindText:=tbWhat.Text,
Forward:=True, Wrap:=wdFindStop
Loop

'inchide formularul
Unload Me

End Sub

Private Sub UserForm_Initialize()

'preluam textul selectat de utilizator


'inainte de rularea macro-ului
If Selection.Type = wdSelectionNormal Then
tbWhat.Text = Selection.Text
Else
tbWhat.Text = ""
End If

'initializam TextBox-urile
tbFontName.Text = Selection.Font.Name
tbSize.Text = Selection.Font.Size

End Sub

În final vom construi un macro, declanşat printr-un meniu sau buton,


pentru a putea apela formularul din aplicaţia Word. Macro-ul trebuie să
conţină instrucţiunea
frmFindFormat.Show