Obiective: |
Însusirea tehnicii de definire, lansare si editare de macrocomenzi. Se vor defini doua macrocomenzi ce se vor lansa, una de pe o bara de instrumente si cealalta prin utilizarea unei combinatii de taste. |
Resurse: |
PC, Microsoft Word, fisierul macro_img.doc, precum si fisierul sablon macheta.dot (situate în directorul ftp://info2/birotica) |
Durata: |
45 minute |
Enuntul temei
Definiti doua macrocomenzi care vor îndeplini urmatoarele functii:
Macrocomanda 1, ce se va numi form_img, va stabili dimensiunile si alinierea pe pagina a unei imagini, va realiza decuparea unei fâsii din stânga imaginii, va seta valoarea contrastului, precum si prezenta unui chenar si se va lansa de pe o bara de instrumente; dupa definirea macrocomenzii, aceasta se va edita;
Macrocomanda 2, ce se va numi deschidere, va crea un document nou pe baza unui anumit sablon si se va lansa de la tastatura pe baza unei combinatii de taste.
Macrocomanda 1 va stabili dimensiunile imaginii (orizontala x verticala) la 3 x 4 cm (fara pastrarea raportului dintre dimensiunile initiale) si o va alinia dreapta pe pagina. Imaginea va primi un chenar desenat cu linie dubla cu grosimea de ˝ puncte, se va realiza decuparea unei fâsii de 1 cm din partea stânga a imaginii, iar contrastul va fi setat la valoarea 75%. Editarea macrocomenzii va avea ca scop modificarea zonei de decupare de la 1 cm la 1,2 cm.
Macrocomanda 2 va deschide un document nou pe baza sablonului macheta.dot (se va putea folosi astfel la lucrarea urmatoare ce trateaza problema crearii unei machete).
Mod de lucru
Pentru crearea primei macrocomenzi
Pentru crearea celei de a doua macrocomenzi
Definirea propriu-zisa a unei macrocomenzi se va face astfel:
Figura 1
Pe spatiul de lucru va aparea o bara de instrumente specializata (figura 3). Ea contine butoanele pentru oprirea înregistrarii macrocomenzii (stop) - , respectiv întreruperii acesteia (pauza) - .
a) |
b) |
Figura 2
Figura 3
Figura 4
Pentru prima macrocomanda, operatiile ce vor fi înregistrate sunt:
Format Imagine - Cu ajutorul casetei de dialog Formatare Imagine se vor stabili (sectiunea Dimensiune) dimensiunile imaginii (3 x 4 cm - latime x înaltime), se va seta contrastul si se va realiza decuparea (sectiunea Imagine);
Format Borduri si umbrire - Cu ajutorul ferestrei de dialog Borduri, se va impune chenarul dublu cu grosimea de linie ˝ puncte;
Pentru cea de a doua macrocomanda, operatia înregistrata va fi:
Fisier Nou Se alege sablonul pe baza caruia se va deschide documentul (macheta.dot).
Atentie !
Se vor retine informatiile de mai jos legate de definirea de macrocomenzi:
În cazul macrocomenzilor care executa operatii asupra unor selectii (formatari de exemplu), este necesar ca selectia sa se faca înainte de a se începe definirea macrocomenzii, respectiv înainte de lansarea în executie a acesteia;
Înainte de lansarea în executie a unei macrocomenzi care implica actiuni asupra unei selectii, se recomanda sa se verifice daca selectia respectiva poate suporta integral actiunea macrocomenzii. Astfel, de exemplu, daca printr-o macrocomanda se stabilesc latimi diferite pentru coloanele unui tabel, atunci tabelul formatat cu macrocomanda trebuie sa aiba exact acelasi numar de coloane cu cel folosit pentru înregistrarea macrocomenzii;
Analiza figurii 1 pune în evidenta existenta câmpului Memorare macrocomandă în. Acest câmp permite stabilirea fisierului în care se va salva macrocomanda, în fisierul sablon Normal.dot, în fisierul sablon ce sta la baza documentului în care se înregistreaza macrocomanda, sau numai în documentul în care s-a definit macrocomanda. Hotarârea luata aici va determina aria de disponibilitate a macrocomenzii astfel create. Macrocomenzile salvate în Normal.dot vor fi disponibile în toate fisierele, cele salvate în sablonul de la baza documentului curent vor fi disponibile în documentele ce se vor crea (sau au fost create) pe baza acestui sablon, în vreme ce macrocomenzile salvate numai în fisierul curent vor fi disponibile numai în acesta.
Editarea unei macrocomenzi
Definirea unei macrocomenzi prin înregistrare genereaza cod Visual Basic (aplicatiile folosesc un limbaj numit Visual Basic for Application, pe scurt VBA, o varianta a limbajului Visual Basic). De fapt o macrocomanda poate fi de la bun început creata numai utilizând VBA, dar asta ar fi excesiv de complicat (pe de o parte ar presupune cunoasterea VBA si mai ales ar fi foarte mult de scris - pentru a întelege de ce, se recomanda urmarirea figurii 5, care contine chiar macrocomanda creata în cadrul acestei lucrari de laborator).
O macrocomanda odata definita poate fi modificata numai prin interventia în secventa VBA aferenta. O alta posibilitate, destul de lipsita de eleganta ar fi reînregistrarea macrocomenzii, cu pastrarea numelui.
Sub form_img()
' form_img Macro
Selection.InlineShapes(1).Fill.Visible = msoTrue
Selection.InlineShapes(1).Fill.Solid
Selection.InlineShapes(1).Fill.ForeColor.RGB = RGB(255, 255, 255)
Selection.InlineShapes(1).Fill.Transparency = 0#
Selection.InlineShapes(1).Line.Weight = 0.75
Selection.InlineShapes(1).Line.Transparency = 0#
Selection.InlineShapes(1).Line.Visible = msoFalse
Selection.InlineShapes(1).LockAspectRatio = msoFalse
Selection.InlineShapes(1).Height = 113.4
Selection.InlineShapes(1).Width = 85.05
Selection.InlineShapes(1).PictureFormat.Brightness = 0.5
Selection.InlineShapes(1).PictureFormat.Contrast = 0.75
Selection.InlineShapes(1).PictureFormat.ColorType = msoPictureAutomatic
Selection.InlineShapes(1).PictureFormat.CropLeft = 28.35
Selection.InlineShapes(1).PictureFormat.CropRight = 0#
Selection.InlineShapes(1).PictureFormat.CropTop = 0#
Selection.InlineShapes(1).PictureFormat.CropBottom = 0#
Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
With Selection.InlineShapes(1)
With .Borders(wdBorderLeft)
.LineStyle = wdLineStyleDouble
.LineWidth = wdLineWidth050pt
.Color = wdColorAutomatic
End With
With .Borders(wdBorderRight)
.LineStyle = wdLineStyleDouble
.LineWidth = wdLineWidth050pt
.Color = wdColorAutomatic
End With
With .Borders(wdBorderTop)
.LineStyle = wdLineStyleDouble
.LineWidth = wdLineWidth050pt
.Color = wdColorAutomatic
End With
With .Borders(wdBorderBottom)
.LineStyle = wdLineStyleDouble
.LineWidth = wdLineWidth050pt
.Color = wdColorAutomatic
End With
.Borders.Shadow = False
End With
With Options
.DefaultBorderLineStyle = wdLineStyleDouble
.DefaultBorderLineWidth = wdLineWidth050pt
.DefaultBorderColor = wdColorAutomatic
End With
End Sub
Figura 5
Accesul la codul VBA al unei macrocomenzi se face prin utilizarea câmpului Instrumente Macrocomanda Macrocomenzi. Se va ajunge la fereastra de dialog prezentata în figura 6.
Figura 6
Se selecteaza macrocomanda dorita din lista si se apasa butonul Editare. Se ajunge în mediul de lucru VBA - vezi figura 7.
În acest mediu se poate interveni pe cod prin adaugare, modificare, stergere, fireste cu respectarea sintaxei VBA. În figura 5, liniile de cod care apar au fost generate automat, la înregistrarea macrocomenzii. O lectura atenta va pune în evidenta faptul ca secventa de cod contine toate setarile specifice operatiei de formatare de imagine (în fond macrocomanda a facut apel la caseta de dialog Formatare Imagine). Liniile de cod direct implicate în macrocomanda sunt redate cu caractere aldine.
Figura 7
În cazul decuparii cu 10 mm din partea stânga a imaginii, linia de cod implicata este:
Selection.InlineShapes(1).PictureFormat.CropLeft = 28.35
Valoarea 28.35 reprezinta cei 10 mm exprimati în puncte (se stie ca 72 puncte =1 tol (inch) = 25.4 mm). O eventuala modificare a decuparii de la 10 la 15 mm, s-ar putea face pur si simplu modificând valoarea 28.35 în 42.53. S-a realizat astfel o editare a macrocomenzii, prin interventia în codul aferent. Fireste orice alta interventie este posibila atâta vreme cât se respecta sintaxa VBA.
Se mai face observatia ca în cazul chenarului dublu, codul s-a generat pentru fiecare latura a imaginii. Se poate interveni deci pe fiecare latura în parte.
Utilizarea macrocomenzilor
O macrocomanda poate fi lansata în executie prin apasarea butonului creat la definirea sa (daca s-a optat pentru acest mod de utilizare), prin folosirea combinatiei de taste aleasa, sau cu ajutorul casetei de dialog Macrocomenzi (vezi figura 6). În acest caz, se selecteaza din lista macrocomanda si se apasa butonul Executare.
Se mai face precizarea ca unei macrocomenzi pentru care s-a definit un buton i se poate asocia si o combinatie de taste.
|