Sunteți pe pagina 1din 15

Universitatea Tehnică a Moldovei

Facultatea Calculatorare, Informatică şi Microelectronică


Departamentul Informatica si Ingineria Sistemelor

Lucrare de laborator nr.5


Programarea procedurală
Tema: Programarea în Word

1
Sarcina lucrării de laborator:
De creat o aplicație pentru automatizarea crearii unui document sub forma unor documente
Word(Cerere,Contract, Curricucum Vitae ,Darea de seama e.t.c. la alegere). Ca șablon va fi folosit un
model tipic de contract de colaborare (”ContractDeColaborare.dot”).

Sarcina-Exemplu:

1. De creat în șablonul ”ContractDeColaborare.dot” o formă cu numele FormContr și cu titlul


Datele contractului la fel ca în imaginea de mai jos:

2. Creați un macros prin intermediul căruia se va deschide forma creată și atribuiții acestui macros
un buton pe bara de instrumente Word ori amplasați butonul chiar în interiorul documentului.

3. Creați și salvați acest șablon pe disc cu numele ”ContractDeColaboare.dot”, în acest șablon se


vor subsitui datele introduse de utilizator în formă, pentru aceasta creați în locurile necesare în
șablon marcaje (Insert | Bookmarks).

4. Creați pentru butonul ”Creare contract” de pe formă codul sursă, acest cod trebuie să formeze
un nou documen Word din șablon și datele introduse de utilizator în formă.

2
Etapele de elaborare:

1. Deschidem fereastra editor-ului Visual Basic pentru Word și facem un click dreapta pe proiectul
Normal în fereastra Project Explorer, apoi selectăm din lista apărută Insert | UserForm.
2. În design-erul de forme construim forma ce a fost prezentată în imaginea de mai sus, pentru
elementele de control de pe formă vom utiliza următoarele nume:
 numeFirma1 – cîmp de text pentru introducerea denumirii primei firme.
 numeFirma2 – cîmp de text pentru introducerea denumirii pentru firma a II-a.
 adresaFirma1 – cîmp de text pentru introducerea adresei primei firme.
 adresaFirma2 – cîmp de text pentru introducerea adresei pentru firma a II-a.
 nrCertificat1 – cîmp de text pentru introducerea numărului de certificat pentru prima
firma.
 nrCertificat2 – cîmp de text pentru introducerea numărului de certificat pentru firma a
II-a.
 numePrenume1 – cîmp de text pentru introducerea numelui și prenumelui
reprezentantului primei firme.
 numePrenume2 – cîmp de text pentru introducerea numelui și prenumelui
reprezentantului firmei a II-a.
 functia1 – cîmp de text pentru introducerea funcției reprezentantului primei companii.
 functia2 – cîmp de text pentru introducerea funcției reprezentantului firmei a II-a.
 incasariFirma1 – radio buton ce permite setarea beneficiarului încasărilor de comisioane
să fie firma 1.
 incasariFirma2 – radio buton ce permite setarea beneficiarului încasărilor de comisioane
să fie firma 2.
 cmdContr – buton pentru crearea contractului.
 cmdCancel – buton pentru închiderea formei.
3. Setăm proprietatea Caption a formei create egală cu ”Datele contractului”. Pentru butonul
cmdContr setăm proprietatea Default egală cu True, iar pentru butonul cmdCancel setăm
proprietatea Cancel egală cu True. Setăm proprietatea Name a formei egală cu ”FormContr”.
4. În modulul standart NewMacros proiectului Normal creăm o procedură nouă cu numele
FormContrShow(). Codul ei poate fi următorul:

Public Sub FormContrShow()


FormContr.Show
End Sub
Asigurați-vă că la execuția acestei proceduri se deschide forma creată.

5. În Word în meniul Tools alegeți Settings, apoi treceți pe pagina Commands. În lista Categories
alegeți Macros și apoi trageți pe orice bară de instrumente macrosul
Normal.NewMacros.FormContrShow. Setați pentru butonul creat formatul cuvenit de
reprezentare. Închideți fereastra Settings și verificați dacă la apasarea butonului se lansează
forma creată.

3
6. Creați un document Word nou pe baza la șablonul ContractDeColaborare.dot (ori puteți folosi
chiar acest fisier). Inserați în locurile cuvenite a acestui documente marcaje. Marcajele se vor
numi în felul următor:
 bFirma1 – marcaj pentru inserarea denumirii primei firme.
 bFirma2 – marcaj pentru inserarea denumirii pentru firma a II-a.
 bAdresa1 – marcaj pentru inserarea adresei primei firme.
 bAdresa2 – marcaj pentru inserarea adresei firmei a II-a.
 bCertificat1 – marcaj pentru inserarea numărului de certificat pentru prima firma.
 bCertificat2 – marcaj pentru inserarea numărului de certificat pentru firma a II-a.
 bNumPren1 – marcaj pentru inserarea numelui și prenumelui reprezentantului primei
firme.
 bNumPren2 – marcaj pentru inserarea numelui și prenumelui reprezentantului firmei a
II-a.
 bFunctia1 – marcaj pentru inserarea funcției repezentantului primei firme.
 bFunctia2 – marcaj pentru inserarea funcției reprezentantului firmei a II-a.
 bIncasari – marcaj pentru inserarea beneficiarului încasărilor.
 data – marcaj pentru inserarea datei curente.
7. Salvați acest document ca șablon cu numele ContractTemplate.dot.
8. Creăm codul pentru forma noastră:

‘ Codul pentru evenimentul Click al butonului cmdCancel

Private Sub cmdCancel_Click()


FormContr.Hide
End Sub

‘ Codul pentru evenimentul Click al butonului cmdContr

Private Sub cmdContr()


Dim oContr As Document
' In acest caz e folosit discul C:\ dar el poate fi inlocuit dupa preferintele dvs.
Set oContr = Application.Documents.Add("C:\ContractTemplate.dot")
oContr.Bookmarks("bFirma1").Range.Text = numeFirma1.Value
oContr.Bookmarks("bFirma2").Range.Text = numeFirma2.Value
oContr.Bookmarks("bAdresa1").Range.Text = adresaFirma1.Value
oContr.Bookmarks("bAdresa2").Range.Text = adresaFirma2.Value
oContr.Bookmarks("bCertificat1").Range.Text = nrCertificat1.Value
oContr.Bookmarks("bCertificat2").Range.Text = nrCertificat2.Value
oContr.Bookmarks("bNumPren1").Range.Text = numePrenume1.Value
oContr.Bookmarks("bNumPren2").Range.Text = numePrenume2.Value
oContr.Bookmarks("bFunctia1").Range.Text = functia1.Value
oContr.Bookmarks("bFunctia2").Range.Text = functia2.Value

If incasariFirma1.Value = True Then


oContr.Bookmarks("bIncasari").Range.Text = numeFirma1.Value
End If

4
If incasariFirma2.Value = True Then
oContr.Bookmarks("bIncasari").Range.Text = numeFirma2.Value
End If

oContr.Bookmarks("data").Range.Text = Date

FormContr.Hide
oContr.Activate
End Sub
9. Lansăm forma, o completăm ca în exemplul de mai jos:

5
Mersul lucrării:

Codul programului:

Din modulul New Macros:


Public Sub FormCerereShow()
FormCerere.Show
End Sub

Pentru formă:
Private Sub cmdCerere_Click()
Dim oCerere As Document
Set oCerere =
Application.Documents.Add("C:\Users\User\Documents\Cere
re")
With oCerere
.Bookmarks("bFirma").Range.Text =
NumeFirma.Value
.Bookmarks("bNume").Range.Text = Nume.Value & "
" & Prenume.Value
.Bookmarks("bLocalitatea").Range.Text =
Oras.Value
.Bookmarks("bStrada").Range.Text = Strada.Value
.Bookmarks("bNumarul").Range.Text =
NrCasei.Value
.Bookmarks("bBlocul").Range.Text = Bloc.Value
.Bookmarks("bApartament").Range.Text =
Apartament.Value
.Bookmarks("bSector").Range.Text = Judet.Value
6
.Bookmarks("bTelefon").Range.Text =
Telefon.Value
.Bookmarks("bExperienta").Range.Text =
Experienta.Value
.Bookmarks("bBInr").Range.Text = BI.Value
.Bookmarks("bEliberat").Range.Text =
Eliberat.Value
.Bookmarks("bDataEliberat").Range.Text =
DataEl.Value
.Bookmarks("bNInr").Range.Text = NI.Value
.Bookmarks("bFunctia").Range.Text =
Functia.Value
.Bookmarks("bSpecialitate").Range.Text =
Specialitatea.Value
.Bookmarks("bAbsolvire").Range.Text =
Institutia.Value
.Bookmarks("bData").Range.Text = Date
End With
FormContr.Hide
oCerere.Activate
End Sub
Private Sub cmdCancel_Click()
FormCerere.Hide
End Sub

7
Pașii:

Primul pas este crearea butonului ,,Normal.NewMacros.FormCerereShow” și


aplasarea în bara ne navigare rapidă.

8
Pasul doi este crearea șablonului pentru forma și codul dat. Îl salvăm cu
Cerere.dot(extensia dot ne permite crearea șablonului). Drumul fișierului da teste
C:\Users\User\Documents\, care apoi îl vom folosi în codul formei.

În pasul 3 creăm codul și atribuim drumul fișierului variabilei oCerere

9
Drumul formei trebuie să fie:
C:\Users\User\AppData\Roaming\Microsoft\Templates

10
Descrierea și executarea:

Cu ajutorul codului prezentat mai sus sa creat evenimente, la efectuarea unui


click pe macrosul, obiectele formei se execută procedurile create.
La apasarea butonului ,,Normal.NewMacros.FormCerereShow” din bara ne
navigare rapidă se lansează forma creată. După lansarea formei, după ce o
completăm cu date și efectuând click pe butonul ,,Creare cerere”, se închide forma
și se însriu datele introduse de pe formă în marcajele create din șablon
,,Cerere.dot”. Astfel, obținem un document completat automat pe baza unei
,,Cereri de angajare”. Butonul ,,Cancel” de pe forma, închide forma și anulează tot
ce o fost introdus.

Documentul inițial:

11
După clic pe macrosul ,,Normal.NewMacros.FormCerereShow” din bara ne
navigare rapidă:

După clic pe butonul ,,Cancel”:

12
După completarea formei și apăsarea butonului ,,Creare cerere”:

13
Șablonul ,,Cerere.dot”:

Marcajele din text din șablon:

14
Concluzii:

În urma efectuării acestei lucrări de laborator, am acumulat abilități și


deprinderi pentru elaborarea unei aplicații VBA în cadrul aplicației Word care ne
permite generarea unui raport pe baza unui șablon creat și a informației introduse
de către utilizator. Am învățat cum să inserez în locurile cuvenite a unui document
marcaje pentru un șablon, cum să creez un cod pentru a scrie în aceste marcaje
datele de pe formă, și cum să salvez un document ca pe un șablon pe disc. La fel,
am întâlnit unele dificultăți și erori ce ține atribuirea macrosului un buton pe bara
de instrumente Word, pe care am reușit să le găsesc și să le corectez.

15

S-ar putea să vă placă și