Sunteți pe pagina 1din 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
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.

fundalul paginii, dup ă cum se observ ă din Figura 1.1. Figura 1.1 a) Antet ş

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.:

la complex, dup ă cum se poate observa în Figura 1.2.: Figura 1.2 Crearea unor tabele

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.

un document ce con ţ ine diferite desene ş i obiecte. Figura 1.3 Utilizarea barei de

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

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

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:

opţiunii Customize

Pentru

list , iar fereastra de dialog aferent ă este prezentat ă în figura 1.5: op ţ

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

),

ş.a. sau lasă utilizatorul să-şi

După

unor blocuri predefinite de câmpuri, pentru adresă (Address block

formule de încheiere (Greeting line

),

formateze scrisoarea după plac (opţiunea More items

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

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) > 0 (zero) doilea, etc.

Butonul Cancel Un alt buton din formular: 1

- primul buton, 2

- al

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)

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

Formularele

proprii

se

definesc

în

componenta

Visual

scrierea

codului

pentru

componentelor interfeţei

evenimentele

corespunzătoare

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:

în Visual Basic Editor este prezentat în figura 1.6: Figura 1.6 S-au folosit urm ă toarele

Figura 1.6

S-au folosit următoarele nume pentru componente:

frmFindFormat - formular

cmdOK - butonul OK cmdCancel - butonul Cancel cmdFont - butonul Font

tbWhat- TextBox pt. textul de căutat tbFontName - Tipul de caracter

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