Vba la exemple de cuvinte. VBA aplicat la Excel, Word și Power Point

Formatarea unui document

Cel mai caracteristică importantă Lucrul la VBA în Word înseamnă inserarea de text într-un document atunci când lucrați cu aplicații. În acest scop, sunt folosite obiectele Range și Selection, care sunt principalele pentru aproape orice operație care poate fi efectuată cu folosind Word VBA. Unele dintre aceste acțiuni pot fi aplicate documentelor ca un întreg, dar, în general, aveți nevoie de un interval sau de o selecție înainte de a face modificări. Cu toate acestea, vom analiza ce puteți face cu un document atunci când îl creați.

Un document Word deschis conține deja obiecte Range care corespund multor elemente ale sale. Fiecare paragraf, tabel, celulă de tabel, comentariu etc. definește intervale. De exemplu, pentru a insera ceva text într-un document existent, trebuie să scrieți codul:

ActiveDocument.Paragraphs(1).Range.Text = „Oxo-xo!!”

în plus linie dată va fi situat la sfârşitul paragrafului existent. Pe de altă parte, folosind obiectul Selection, puteți, de asemenea, să inserați ceva text în document folosind metoda și atribuirea Adăugare Proprietățile textului la obiectul Selectie:


Selection.Text = "Învățarea cum să lucrezi cu text într-un document Word este o parte importantă a învățării programării în VBA, " + TextBox1.Text + ", și răspunde nevoilor tuturor programatorilor!"

Ca rezultat al acestui lucru codul programuluiîn documentul Word va fi afișată linia: „A învăța cum să lucrezi cu textul într-un document Word este o parte importantă a capacității de a programa în VBA, Svetlana și răspunde nevoilor tuturor programatorilor!”

Descrierea procedurilor

Sub CommandButton privat 1_Click()
Dacă Documents.Count = 0, atunci Documents.Add
Selection.Text = "Când un curent cu o tensiune de " + TextBox1.Text + "volți trece printr-un conductor cu o lungime de " + TextBox4.Text + " metri, o secțiune transversală de " + TextBox3.Text + "sq . mm și rezistivitate" + TextBox5.Text + " Ohm*mm^2/m for " + TextBox2.Text + " secunde vor fi evidențiate " + TextBox6.Text + "jouli de căldură"
Selection.Collapse direction:=wdCollapseEnd
End Sub

Private Sub CommandButton2_Click()
Descarcă-mă
End Sub

Private Sub TextBox1_Change()
scet
End Sub

Private Sub TextBox2_Change()
scet
End Sub

Private Sub TextBox3_Change()
scet
End Sub

Private Sub TextBox4_Change()
scet
End Sub

Private Sub TextBox5_Change()
scet
End Sub

Private Sub scet()
Dacă IsNumeric(TextBox1.Text) = Adevărat Și
IsNumeric(TextBox2.Text) = Adevărat Și
IsNumeric(TextBox3.Text) = Adevărat Și
IsNumeric(TextBox4.Text) = Adevărat Și
IsNumeric(TextBox5.Text) = Adevărat și nu Val(TextBox4.Text) = 0 și nu Val(TextBox5.Text) = 0 Apoi rez = ((Val(TextBox1.Text) ^ 2) * Val(TextBox2.Text) * Val(TextBox3.Text)) / (Val(TextBox4.Text) * Val(TextBox5.Text))
TextBox6.Text = Str$(rez)
CommandButton1.Enabled = Adevărat
Altfel
TextBox6.Text = ""
CommandButton1.Enabled = Fals
Încheiați dacă
End Sub

Când lucrați cu text de pe desktop Foaie de cuvinte Trebuie să știți următoarele coduri:

definirea culorii
Selectie.Font.Culoare =
wdColorRed – roșu
wdColorDarkRed – visiniu
wdColorDarkTeal – turcoaz
wdColorBlue – albastru
wdColorGreen – verde
wdColorBlack – negru
wdColorOrange – portocaliu

determinarea conținutului de grăsime
Selectie.Font.Bold =
wdToggle – îndrăzneală

definiția stilului
Selectie.Font.Italic=
wdToggle – cursive

definirea alinierii
Selection.ParagraphFormat.Alignment=
wdAlignParagraphRight – aliniere la dreapta
wdAlignParagraphCenter – alinierea la centru
wdAlignParagraphJustify – alinierea la stânga

inserarea unei anumite propoziţii în text
Selection.TypeText Text:="Exemplu de lucru cu text"
inserând o nouă linie goală
Selectie.TypeParagraph
setarea dimensiunii literei
Selection.Font.Size = 14

Unul dintre elementele de design ale casetelor de dialog este elementul de control Imagine(desen). Principalele sale proprietăți:

Dimensiune automată– modifică dimensiunea imaginii de pe formular (automat sau nu);

Imagine– afișează un fișier grafic afișat pe formular;

pictureSizeMode – setează scalarea imaginii (nu întreaga imagine, întreaga suprafață a obiectului, în întregime în interiorul obiectului);

PictureAlignment– setează locația imaginii în interiorul obiectului (stânga, dreapta, sus, jos);
pozăTultură– acoperă un obiect cu un mozaic dintr-un desen.

Aceste proprietăți sunt fie setate în fereastra de proprietăți ale obiectului, fie specificate în listă.

Notă . Când rulați această aplicație, toate valorile câmpurilor de intrare trebuie să fie numerice. VBA are functie speciala pentru a verifica dacă șirul introdus este sau nu o înregistrare numerică - IsNumeric. Pentru a verifica dacă valorile din ultimele două câmpuri de intrare sunt diferite de zero, utilizați funcția Val, care convertește o expresie șir într-una numerică dacă această expresie șir conține cifre la început (sau totul este format din ele).

Funcția Str face opusul a ceea ce face Val: convertește valoarea numerică a unei expresii într-o valoare șir, permițând ca valoarea să fie tratată ca un șir.

Astfel, funcțiile Val și Str convertesc tipurile de date ale variabilelor pe care le procesează, din șir în șir, respectiv din șir în șir.

Creați un buton sau un panou în Word

Nu puteți atribui un buton sau un element de meniu unui formular pentru a apela direct o aplicație din Word - acest lucru se poate face numai pentru module. Prin urmare, trebuie să utilizați următoarea metodă. Creați o macrocomandă (Meniu + Inserare + Modul) într-un proiect deschis:

Subtejghea()

userForm1.Spectacol

SfârşitSub

Redenumiți această macrocomandă după cum doriți, cum ar fi Teplo. Și urmați acești pași:

1. Faceți clic dreapta oriunde în bara de instrumente.

2. Din acest meniu, selectați comanda Setări(sau Service + Setări).

3. În caseta de dialog Setări faceți clic pe pictograma filă Echipe.

4. Derulați lista Categorii jos și găsiți articolul Macro-uri. Selectați acest articol. În lista „Salvare în”, selectați numele documentului în care a fost creată macrocomanda.

5. În fereastra din dreapta, găsiți macrocomanda necesară (sau programul VBA).

6. Trageți numele acestei macrocomenzi sau program în bara de instrumente.

7. Creați o etichetă de buton corespunzătoare și, dacă este necesar, un desen (folosind butonul corect soareci).

8. Închideți caseta de dialog Setare, pentru a finaliza treaba.

9. Ca rezultat, va fi creat un buton pentru lansarea aplicației.


Lucrare de laborator nr 5


Informații conexe.


Programare în VBA în Word

Trimiterea textului într-un document Word

5.1. Obiecte Word de bază

obiect Word.Application

Pe lângă toate capabilitățile de programare VBA discutate în partea I, puteți adăuga capacitatea de a scoate toate rezultatele calculelor, transformările și mesajele într-un document Word, cu posibilitatea de a imprima în continuare. Pentru a face acest lucru, trebuie să vă uitați la obiectele de bază ale aplicației Word.

Cheia pentru modelul obiect Word este obiectul Application deoarece conține toate celelalte obiecte Word. Elementele sale la diferite niveluri ale ierarhiei sunt aproximativ 180 de obiecte. Obiectul Aplicație rădăcină în sine are peste o sută de elemente: proprietăți, metode și evenimente.

Proprietățile obiectului Word.Application

Proprietățile oricărui obiect sunt împărțite în două grupuri: proprietăți participante (obiecte) și proprietăți terminale (variabile VBA obișnuite).

Un sistem unificat pentru organizarea barelor de meniu și a butoanelor de instrumente este oferit de obiectul CommandBars, ajutor de la Asistent și căutare de FileSearch.

Obiectele centrale ale Word sunt colecțiile Documents and Templates, sau mai degrabă elementele lor constitutive, documentul în sine și șabloanele.

Să ne uităm la obiectele de fundal.

Obiectul AutoCorrect acceptă corectarea automată a textelor tastate. Capacitățile sale sunt echivalente cu comanda AutoCorrect din meniul Instrumente.

Obiectul Browser vă permite să mutați punctul de inserare care indică obiectele din document.

Colecția de obiecte Dialogs reprezintă colecția de casete de dialog integrate în Word. Adăugați articole noi sau eliminați din această colecție în mod programatic este interzis. Dar ferestrele corespunzătoare pot fi deschise și afișate pe ecranul de afișare și, prin urmare, pot organiza un dialog de către utilizator pe tema specificată de fereastra corespunzătoare.

Trei obiecte legate de gramatică și verificarea ortografică: Limbi, dicționare, ortografieSugestii, – vă permit să setați limba dorită, selectați un dicționar, inclusiv dicționare personalizate și, de asemenea, lucrați cu o listă de cuvinte sugerate pentru corectare dacă este detectată o eroare de ortografie. Comenzile Ortografie și Limbă din meniul Instrumente oferă funcționalități similare atunci când lucrați manual cu un document.

Folosind obiectul Opțiuni, puteți seta în mod programatic diverse opțiuni pentru aplicații și documente, așa cum ați face dacă ați selecta comanda Opțiuni din meniul Instrumente.

Lucrul cu documente și clasa Document

Când o aplicație este deschisă, este creată o colecție de documente care conține toate documentele deschise. La început, colecția conține cel puțin un document nou sau existent anterior. Un document nou este adăugat utilizând metoda Add, iar un document existent este adăugat utilizând metoda Open a obiectului Documents. Pentru a ajunge la documentul dorit, trebuie doar să specificați indexul acestuia - numele fișierului care stochează documentul sau al acestuia număr de serieîn colecție. Metoda Item poate fi folosită în același scop, dar de obicei este omisă. Metoda Save vă permite să salvați documentul, iar metoda Close, prin salvarea documentului într-un fișier, îl închide și îl elimină din colecție.

Proprietatea globală Dialogs returnează o colecție de casete de dialog. Constanta wdDialogFileOpen specifică o anumită casetă de dialog - un obiect al clasei Dialog.

Clase care definesc structurarea textului documentului

Textul este baza majorității documentelor. Poate fi structurat folosind diferite unități atunci când se rezolvă anumite probleme de transformare. Unitate minima textul este de obicei un simbol. În plus, există următoarele unități: cuvinte, propoziții, paragrafe, precum și unități mai mari: pagini, paragrafe, capitole.

Clasele Caractere, Cuvinte, Enunțuri, Paragrafe, Secțiuni vă permit să lucrați cu secvențe (colecții) de caractere, cuvinte, propoziții, paragrafe și secțiuni. Cea mai mare unitate după paragraf este secțiunea. Un element al colecțiilor Characters, Words și Statements este un obiect al clasei Range. Obiectul Range vă permite să lucrați fie cu un singur element, fie cu o secvență arbitrară de elemente. Documente, subdocumente, paragrafe, secțiuni - toate au o metodă sau o proprietate Range care returnează intervalul asociat obiectului. Prin urmare, lucrul cu textul se face într-un fel sau altul prin metodele și proprietățile obiectului Range.

Evenimente obiect document

Obiectul Document poate răspunde la trei evenimente care apar ca urmare a acțiunilor utilizatorului.

Tabelul 16

Evenimente obiect document Documentul și părțile sale

Să ne uităm la principalele clase care definesc structura documentului.

1. Subdocumente (Subdocument) – o colecție și subdocumentul în sine. Există o limită rezonabilă pentru dimensiunea unui singur document. Dacă un document are mai mult de 10-20 de pagini, devine incomod să lucrezi cu el. În acest caz, conține un document principal și subdocumente. Documentul principal în acest caz are o colecție de subdocumente, fiecare dintre ele fiind, de fapt, un document cu care se poate lucra independent.

Metoda AddFromRange a clasei SubDocuments creează un subdocument selectând o zonă din documentul principal specificat de parametru Gamă.

2. Tables (Table), TablesOfAuthoritiesCategories (T.O.A.C), TablesOfAuthorities (TableOfAuthorities), TablesOfContents (TablesOfContent), TablesOfFigures (TablesOfFigure). Clasa Table definește tabele „regulate” cu un număr arbitrar de rânduri și coloane și completarea arbitrară a câmpurilor. Clasele rămase definesc tabele de tip special.

3. Forme(Formă), Forme Inline(Formă Inline)– aceste două colecții cu elementele lor vă permit să adăugați desene în document, dar nu numai ele. Obiectele ActiveX și OLE sunt, de asemenea, elemente ale acestor colecții. Elementele acestor două colecții diferă în ceea ce privește modul în care sunt legate de document: prima poate fi mutată liber, a doua este legată rigid de o anumită zonă a documentului.

4. Liste(List), ListParagraphs(ListParagraph), listTemplates (ListTemplate)– listele sunt convenabile de introdus într-un document atunci când se ocupă de enumerare. Listele pot fi concepute în conformitate cu șablonul. Există două grupuri de șabloane: liste numerotate și liste de buletine. Colecția ListTemplates conține șabloane de design de listă, iar clasa ListTemplate descrie un anumit șablon. Un șablon este aplicat unei liste de paragrafe și îi oferă structura, specificate de șablon. Colecția Liste conține acele liste de documente (liste de paragrafe) care sunt formatate ca liste numerotate sau liste de buletine. Colecția ListParagraphs reprezintă o listă de paragrafe din toate listele dintr-un document. Proprietatea ListParagraphs, care returnează un obiect din clasa corespunzătoare, este deținută nu numai de document, ci și de obiectele List și Range. Deci, având în vedere o listă - un obiect Listă, puteți selecta o listă de paragrafe. Mai des trebuie să faci operare inversă– aplicați una dintre următoarele la o listă de paragrafe posibile șabloane, oferindu-i o structură de listă „adevărată”. Apoi utilizați obiectul ListFormat.

5. Comentarii (Comentariu), Marcaje (Marcaje), Note de subsol (Notă de subsol), Note de final (Notă de final), Câmpuri (Câmp)– aceste colecții și elementele lor reflectă concepte independente, dar similare. Acestea sunt părți ale documentului care sunt indirect legate de acesta. În timpul vizualizării normale a documentului, acestea pot să nu fie vizibile.

Colecția de comentarii și clasa de comentarii definesc comentariile. Comentariile, după cum știți, sunt introduse pentru a explica anumiți termeni sau concepte dintr-un document. În mod formal, ele sunt alocate unei anumite zone - obiectul interval.

Un document mare, ale cărui părți individuale trebuie accesate frecvent, ar trebui să fie marcat. Colecția de marcaje specifică toate marcajele pentru un anumit document.

Un alt mod de a comenta sunt notele de subsol. Ele pot fi de două tipuri: subpagină (în partea de jos a paginii) și final (la sfârșitul documentului). Primele sunt colectate în colecția de note de subsol, a doua - note de final.

6. Câmpuri (Câmp) – această colecție vă permite să lucrați cu câmpuri de document. Una dintre caracteristicile câmpurilor este că valorile lor sunt actualizate automat în funcție de condițiile externe sau contextul schimbat.

7. Story Ranges (Range) – această colecție reprezintă o colecție de părți de document numite fragmente (Story). Numărul de fragmente diferite de document este fix. Nu puteți adăuga articole la această colecție în mod obişnuit folosind metoda Add. Fragmentele apar în colecție atunci când este creată partea corespunzătoare a documentului.

Fragmentele au un tip specificat de constantele din enumerarea wdStoryType. Fragmentul principal este textul documentului, al cărui tip este specificat de constanta wdMainTextStory. Comentariile, linkurile și subsolurile formează fragmente de alte tipuri, adică fragmentul în sine este un obiect Range. Deci, datorită fragmentelor, puteți, de exemplu, să lucrați cu o colecție de comentarii ca o singură zonă.

8. Variabile (Variabilă) – puteți asocia o colecție de variabile de tip Variant unui document. Aceasta este o colecție importantă pentru programatori, deoarece durata de viață a variabilelor incluse în ea coincide cu durata de viață a documentului. Acest lucru face posibilă salvarea informațiilor despre funcționarea unei anumite proceduri între sesiuni. De exemplu, puteți avea contoare care numără numărul de apeluri către o macrocomandă și, în funcție de aceasta, determină funcționarea ulterioară a acesteia în moduri diferite.

Obiecte Range și Selectie

Obiectul Document are o metodă Range, care returnează un obiect Range și o metodă Select, care creează un obiect Selection. Metoda Range este o funcție care returnează un obiect Range ca rezultat; Metoda Select este o procedură fără parametri care creează un obiect Selection ca efect secundar. Obiectul Range are o metodă Select care transformă o zonă a obiectului Range într-o selecție. Astfel, metoda Select determină obiect nou Selecţie. Simetric, obiectul Selection are o proprietate Range care returnează obiectul Range corespunzător zonei selectate.

Majoritatea părților de document descrise anterior sunt și părți (proprietăți) ale obiectelor Range și Selection.

Obiectul Range este ca o păpușă de cuib: fiecare zonă conține o zonă mai mică. Iată un exemplu de setare corectă (deși nu cea mai eficientă) a unui obiect Range:

ActiveDocument.Range.Sections(1).Range.Paragraphs(l).Range.Sentences(1). Cuvinte(1).Personaje(1)

Lucrați cu text

Obiectele Range și Selection vă permit să efectuați operațiuni de bază pe text: „selectați”, „adăugați”, „înlocuiți”, „ștergeți”. Obiectele noastre au un set mare de metode care ne permit să implementăm aceste operațiuni. Toate metodele discutate aici aparțin ambelor obiecte, dacă nu este menționat altfel.

Selecţie

Selectarea unei porțiuni de text înseamnă în esență definirea unui obiect Range sau Selection. Obiectele definesc o anumită zonă în textul documentului, iar proprietățile lor Start și End vă permit să setați începutul și sfârșitul acestei zone. Schimbând valorile proprietăților, puteți seta zona de selecție dorită.

Mutarea este metoda principală de mutare a punctului de inserare. Restul metodelor din acest grup sunt modificări într-o măsură sau alta. Metoda Move(Unit, Count) micșorează zona la un punct, trăgând-o la început sau la sfârșit, apoi mută punctul de inserare. Parametrul Unit definește unitățile de mișcare, iar Count – numărul acestor unități (implicit 1). Semnul variabilei Număr specifică direcția contracției și mișcării. Valorile pozitive ale acestui parametru specifică contracția până la sfârșit și mișcarea înainte, valorile negative – contracția la început și mișcarea înapoi. O contracție pură fără deplasarea punctului de inserție este specificată ca o mișcare a unei unități. Metoda returnează numărul de unități prin care a avut loc efectiv mișcarea sau 0 dacă nu a fost efectuată. Parametrul Unit acceptă valorile wdCharacter (implicit), wdWord, wdSentence, wdParagraph, wdSection, wdStory, wdCell, wdColumn, wdRow și wdTable.

Metodele de mutare nu afectează textul în sine - schimbă doar zona specificată de obiectele Range și Selection. Prin urmare, aceste metode sunt aplicabile numai pentru variabilele Range și nu pentru zonele fixe. De exemplu, înregistrați

ActiveDocument.Paragrafe(l).Range.Move

nu are efect deoarece zona primului paragraf este imuabilă. Metoda Mutare micșorează zona la un punct, care este mutat, astfel încât după executarea sa zona dispare, rămâne doar punctul de inserare. Metodele MoveStart și MoveEnd mută startul sau punctul final zone, de obicei extinzând zona.

Ștergerea textului

Metoda Delete vă permite să ștergeți text. Apelat fără parametri, șterge obiectul Range sau Selection care l-a numit. Când este aplicat sub forma Delete(Unit,Count) , porțiunea de text din zona specificată este ștearsă. Parametrul Unit specifică unitățile, dar la ștergere sunt posibile doar două valori: wdWord și wdCharacter. Parametrul Count specifică numărul de unități care trebuie eliminate. Dacă regiunea este contractată la un punct, caracterele înainte sau după punctul de inserare sunt eliminate, în funcție de semnul parametrului Count.

Inserarea textului

Grupul de metode de inserare a obiectelor Range și Selection vă permite să inserați într-un document. Pentru a insera text, utilizați metodele InsertBefore(Text) și InsertAfter(Text). Parametru tip de textșir specifică textul care trebuie inserat înainte sau după zona specificată de obiectele de gamă sau de selecție. După ce inserați text, zona se extinde automat pentru a include textul adăugat.

Proprietatea Text vă permite să înlocuiți textul în zona selectată, deci nu este nevoie să apelați metoda Insert(Text). Metodele InsertBefore și InsertAfter sunt sigure deoarece textul este adăugat fără a modifica conținutul zonei. O chestiune complet diferită este metodele de inserare, care sunt departe de a fi sigure. Când inserați într-o regiune, cum ar fi utilizarea metodei InsertSymbol sau InsertParagraph, conținutul regiunii este înlocuit.

Lucrul cu un tampon

Metoda Soru, care nu are parametri, copiază un obiect (conținutul unei zone) într-un buffer. Metoda de tăiere, acționând în mod similar, ar trebui să ștergă și obiectul. Dar obiectul în sine nu este șters - este contractat doar până la un punct, astfel încât să fie posibile operațiuni suplimentare asupra acestuia.

Uneori nu textul este copiat în buffer, ci formatul acestuia. Acest lucru se realizează prin metoda CopyFormat, care copiază formatul pe baza primului caracter al obiectului de selecție. Dacă acest caracter este un semn de paragraf, formatul de paragraf este copiat. Numai obiectul de selecție are metoda CopyFormat.

Metoda Paste vă permite să plasați („paste”) conținutul unui buffer în zona specificată de obiectele Range și Selection. Această operațiune este periculoasă deoarece înlocuiește, nu adaugă, text. Prin urmare, metoda Paste este de obicei aplicată obiectelor Range și Selection care au fost restrânse anterior la punctul de inserare. Metoda PasteFormat aplică formatarea stocată în buffer obiectului Selection.

De exemplu, să creăm o macrocomandă care inserează lista „lecție, examen, promovat!”, o copiază și o plasează din nou pe foaie.

Sub Macro1()

Cu Selection.ParagraphFormat

Selection.TypeText Text:="Lucrul cu text:"

Selectie.TypeParagraph

ListGalleries(wdBulletGallery).ListTemplates(1)._ListLevels(1)

ListGalleries(wdBulletGallery).ListTemplates(1).Name = ""

Selection.Range.ListFormat.ApplyListTemplate

ListTemplate:=ListGalleries(wdBulletGallery).ListTemplates(1), ContinuePreviousList:=False, ApplyTo:= _wdListApplyToWholeList, DefaultListBehavior:=wdWord10ListBehavior

Selection.TypeText Text:="lectie"

Selectie.TypeParagraph

Selection.TypeText Text:="examen"

Selectie.TypeParagraph

Selection.TypeText Text:="a trecut"

Selectie.TypeParagraph

Selection.Range.ListFormat.RemoveNumbers

NumberType:=wdNumberParagraph

Selectie.TypeParagraph

Selection.Font.Bold = wdToggle

Selection.Font.Italic = wdToggle

Selection.TypeText Text:="Job finalizat!"

Selectie.Toată Povestea

Selection.PasteAndFormat(wdPasteDefault)

5.2. Formatarea unui document

Lucrați cu text(continuare)

Cea mai importantă caracteristică a lucrului cu VBA în Word este inserarea textului într-un document atunci când lucrați cu aplicații. Acest lucru se face folosind obiectele Range și Selection, care sunt centrale pentru aproape orice operațiune care poate fi efectuată folosind Word VBA. Unele dintre aceste acțiuni pot fi aplicate documentelor ca un întreg, dar, în general, aveți nevoie de un interval sau de o selecție înainte de a face modificări. Cu toate acestea, vom analiza ce puteți face cu un document atunci când îl creați.

Un document Word deschis conține deja obiecte Range care corespund multor elemente ale sale. Fiecare paragraf, tabel, celulă de tabel, comentariu etc. definește intervale. De exemplu, pentru a insera ceva text într-un document existent, trebuie să scrieți codul:

ActiveDocument.Paragraphs(1).Range.Text = „Oxo-xo!!”

Mai mult, acest rând va fi situat la sfârșitul paragrafului existent. Pe de altă parte, folosind obiectul Selection, puteți, de asemenea, să inserați ceva text în document utilizând metoda Add și atribuind proprietatea Text obiectului Selection:

Selection.Text = "Învățarea cum să lucrezi cu text într-un document Word este o parte importantă a învățării programării în VBA, " + TextBox1.Text + ", și răspunde nevoilor tuturor programatorilor!"

Ca rezultat al executării acestui cod de program, următoarea linie va fi afișată în documentul Word:

A învăța să lucrezi cu text într-un document Word este o parte importantă a capacității de a programa în VBA, Svetlana și răspunde nevoilor tuturor programatorilor!

Aici, numele Svetlana, de exemplu, este citit dintr-un câmp de text de o formă care are doar un câmp de intrare pentru nume și un buton „Text de ieșire” (Fig. 64).

Orez. 64. Formular de introducere a datelor

Când lucrați cu text într-o foaie de lucru Word, trebuie să cunoașteți următoarele coduri:

definirea culorii

Selectie.Font.Culoare =

wdColorRed – roșu

wdColorDarkRed – visiniu

wdColorDarkTeal – turcoaz

wdColorBlue – albastru

wdColorGreen – verde

wdColorBlack – negru

wdColorOrange – portocaliu

determinarea conținutului de grăsime

Selectie.Font.Bold =

wdToggle – îndrăzneală

definiția stilului

Selectie.Font.Italic=

wdToggle – cursive

definirea alinierii

Selection.ParagraphFormat.Alignment=

wdAlignParagraphRight – aliniere la dreapta

wdAlignParagraphCenter – alinierea la centru

wdAlignParagraphJustify – alinierea la stânga

inserarea unei anumite propoziţii în text

Selection.TypeText Text:="Exemplu de lucru cu text"

inserând o nouă linie goală

Selectie.TypeParagraph

setarea dimensiunii literei

Selection.Font.Size = 14

Notă. Pentru design corect cod, profitați de capacitatea de a crea macrocomenzi de program.

Unul dintre elementele de design ale casetelor de dialog este controlul Imagine. Principalele sale proprietăți:

Autosize – modifică dimensiunea imaginii din formular (automat sau nu);

Imagine – afișează un fișier grafic afișat pe formular;

pictureSizeMode – setează scalarea imaginii (nu întreaga imagine, întreaga suprafață a obiectului, în întregime în interiorul obiectului);

PictureAligment – ​​stabilește poziția imaginii în interiorul obiectului (stânga, dreapta, sus, jos);

pictureTilling – acoperă un obiect cu un mozaic al unei imagini.

Aceste proprietăți sunt fie setate în fereastra de proprietăți ale obiectului, fie specificate în listă.

Exemplul 30. Creați un program care va calcula cantitatea de căldură eliberată într-un conductor atunci când curentul trece prin el. Formula pentru calcularea cantității de căldură este cunoscută sub numele de legea Joule-Lenz:

unde Q este cantitatea de căldură în Jouli;

U – tensiunea în volți;

t – timpul în secunde;

S – aria secțiunii transversale a conductorului în milimetri pătrați;

l – lungimea conductorului în metri;

p – rezistivitatea materialului conductor în Ohm? mm2/m.

Toate datele inițiale sunt introduse în câmpurile de text ale formularului. Pe baza rezultatelor calculului, rezultatul este afișat sub forma unei note explicative în document, iar rezultatul numeric este afișat într-o fereastră specială de formular.

Tehnologia de execuție

Creați un formular conform figurii prezentate. 65.

Orez. 65. Forma dezvoltată a exemplului 30 în stare de funcționare și ieșirea informațiilor rezultate într-un document Word

Când creați un formular, setați proprietățile necesare ale elementului. Setați proprietatea Locked a TextBox6 la True pentru a împiedica utilizatorul să introducă text accidental în ea.

Descrierea procedurilor

Sub CommandButton privat 1_Click()

Dacă Documents.Count = 0, atunci Documents.Add

Selection.Text = "Când un curent cu o tensiune de " + TextBox1.Text + "volți trece printr-un conductor cu o lungime de " + TextBox4.Text + " metri, o secțiune transversală " + TextBox3.Text + " sq. mm și o rezistivitate " + TextBox5.Text + " Ohm*mm2/m pentru " + TextBox2.Text + " secunde evidențiate" + TextBox6.Text + "jouli de căldură"

Selection.Collapse direction:=wdCollapseEnd

Private Sub CommandButton2_Click()

Private Sub TextBox1_Change()

Private Sub TextBox2_Change()

Private Sub TextBox3_Change()

Private Sub TextBox4_Change()

Private Sub TextBox5_Change()

Private Sub scet()

Dacă IsNumeric(TextBox1.Text) = Adevărat Și

IsNumeric(TextBox2.Text) = Adevărat Și

IsNumeric(TextBox3.Text) = Adevărat Și

IsNumeric(TextBox4.Text) = Adevărat Și

IsNumeric(TextBox5.Text) = Adevărat și nu Val(TextBox4.Text)

0 și nu Val(TextBox5.Text) = 0 Atunci

rez = ((Val(TextBox1.Text) ^ 2) * Val(TextBox2.Text) *

Val(TextBox3.Text)) / (Val(TextBox4.Text) *

Val(TextBox5.Text))

TextBox6.Text = Str$(rez)

CommandButton1.Enabled = Adevărat

TextBox6.Text = ""

CommandButton1.Enabled = Fals

Notă. Când rulați această aplicație, toate valorile câmpurilor de intrare trebuie să fie numerice. VBA are o funcție specială pentru a verifica dacă șirul introdus este o înregistrare numerică sau nu - IsNumeric. Pentru a verifica dacă valorile din ultimele două câmpuri de intrare sunt diferite de zero, utilizați funcția Val, care convertește o expresie șir într-una numerică dacă această expresie șir conține cifre la început (sau totul este format din ele).

Funcția Str face opusul a ceea ce face Val: convertește valoarea numerică a unei expresii într-o valoare șir, permițând ca valoarea să fie tratată ca un șir.

Astfel, funcțiile Val și Str convertesc tipurile de date ale variabilelor pe care le procesează, din șir în numeric și, respectiv, din numeric în șir (vezi Capitolul 3).

Creați un buton sau un panou în Word

Nu puteți atribui un buton sau un element de meniu unui formular pentru a apela direct o aplicație din Word - acest lucru se poate face numai pentru module. Prin urmare, trebuie să utilizați următoarea metodă. Creați o macrocomandă (Meniu + Inserare + Modul) într-un proiect deschis:

Redenumiți această macrocomandă după cum doriți, cum ar fi Teplo. Și urmați acești pași.

1. Faceți clic dreapta oriunde în bara de instrumente.

2. Din acest meniu, selectați comanda Setări (sau Instrumente + Setări).

3. În caseta de dialog Setări, faceți clic pe comanda rapidă a filei Comenzi.

4. Derulați în jos lista Categorii și găsiți Macro-uri. Selectați acest articol. În lista „Salvare în”, selectați numele documentului în care a fost creată macro-ul (Fig. 66).

Orez. 66. Găsirea unei macrocomenzi pentru a crea un buton

5. În fereastra din dreapta, găsiți macrocomanda necesară (sau programul VBA).

6. Trageți numele acestei macrocomenzi sau program în bara de instrumente.

7. Creați o etichetă de buton corespunzătoare și, dacă este necesar, o imagine (folosind butonul din dreapta al mouse-ului).

8. Închideți caseta de dialog Setup pentru a finaliza.

Odată ce toți pașii de mai sus sunt finalizați, va fi creat un buton pentru lansarea aplicației.

Sarcini de consolidare a materialului

Exemplul 31. Creați un program care vă permite să completați aplicațiile standard pentru studenți instituție educațională, dacă toate datele necesare sunt completate în câmpurile de text corespunzătoare ale formularului și motivul pentru care lipsesc clasele este selectat din lista derulantă (Fig. 67, 68).

Orez. 67. Forma dezvoltată a exemplului 31 în stare de funcționare

Exemplul 32. Creați un program care vă permite să calculați suma de bani cheltuită pe benzină atunci când călătoriți în țară.

Vă rugăm să țineți cont de următoarele: condițiile de călătorie pot fi: dus, dus-întors, puteți lua mașina altcuiva (aceste condiții sunt luate în considerare în lista derulantă „condiții de călătorie” din formularul creat).

Pentru profesorul clasei

Grupele AS-42

Sidorov O.I.

de la un student

Petrenko Oleg Ivanovici

Afirmație Petrenko Oleg Ivanovici18.05.2007

Orez. 68.

Rezultatul obtinut se calculeaza folosind formula:

Rezultat = distanta * (consum de benzina la 100 km) / 100*pret benzina pe litru.

Vă rugăm să rețineți că, dacă alegeți să călătoriți „în mașina altcuiva”, atunci prețul benzinei este de 0 ruble.

Orez. 69. Forma dezvoltată a exemplului 32 în stare de funcționare

De asemenea, țineți cont de faptul că, dacă rezultatul calculului depășește 400 de ruble, atunci afișați mesajul „Ar trebui să mergem la piață?”

Când creați formularul, respectați Fig. 69, la scoaterea textului într-un document Word - fig. 70.

Când călătoriți într-o clădire situată la 55 km distanță, cu un preț al benzinei pe litru de 18,50 ruble, consumul de benzină va fi de 101,75 ruble.

Orez. 70.

Exemplul 33. Dezvoltați un program care produce Raportul veniturilor investitorilor In zilele de azi. Vă rugăm să rețineți că în interfața formularului dobândă selectat din lista derulantă (oferiți două tipuri de interese).

Orez. 71. Forma dezvoltată a exemplului 33 în stare de funcționare

Când calculați, respectați următoarele formule:

dacă schema de calcul este simplă, atunci

Venit = suma depusa + suma depusa * rata dobanzii/100*termen/360;

dacă schema de calcul este complexă, atunci

Venit = suma depusă + suma depusă * rata dobânzii/100*termen/360 +0,01*(suma depusă * rata dobânzii/100*termen/360).

Când dezvoltați interfața de formular, bazați-vă pe figura dată. 71, iar la ieșirea calculelor într-un document Word - Fig. 72.

Raportul de venituri

În prezent, cetățeanul Olga Konstantinovna Evseeva are o dobândă simplă în contul ei, cu o investiție inițială de 1000 de ruble. timp de 150 de zile la o rată de 2% de 1008,33 ruble.

Orez. 72. Format aproximativ pentru ieșirea calculelor într-un document Word

Rezultatul calculelor cu explicații adecvate este afișat într-un document Word, iar rezultatul numeric al calculelor este dat în câmpul formular.

Exemplul 34. Dezvoltați un program care vă permite să completați o cerere de reintroducere a unui card de student dacă acesta este deteriorat (furat, pierdut, spălat etc.). Specificați motivul avariei în lista derulantă a formularului creat.

Când lucrați, respectați fig. 73 și 74.

Cursivele indică expresiile inserate de program după ce sunt completate câmpurile de text corespunzătoare din formularul în curs de dezvoltare.

Orez. 73. Forma dezvoltată a exemplului 34 în stare de funcționare

Orez. 74. Format aproximativ pentru ieșirea unei declarații într-un document Word

CAPITOLUL 10

Programare in Word

10.1. De ce programați în Word

Cuvântul este cel mai vechi și cel mai mult aplicație populară, inclus cu Microsoft Office. În majoritatea organizațiilor, utilizatorii pregătesc documente în Word.

Din punct de vedere al programării, Word este, în primul rând, un instrument de realizare a rapoartelor pe baze de date. În acest caz, un raport este orice document care este generat pe baza informațiilor din baza de date, de exemplu: un acord, un certificat de acceptare, un ordin de primire în numerar, un anunț pentru o contribuție în numerar, o comandă către departamentul de contabilitate, o factură etc. Desigur, la rapoartele , care pot fi generate în Word, includ și documente cu date rezumative - rapoarte pentru perioada, extrase de cont etc.

Autorul a trebuit să creeze aplicații cu rapoarte dezvoltate într-o varietate de produse software - Microsoft Access, Crystal Reports, Microsoft Reporting Services etc. Dacă aplicația dvs. generează rapoarte de baze de date în Microsoft Word, atunci cel mai probabil astfel de rapoarte nu vor fi cele mai rapide în ceea ce privește generarea lor și nici cele mai simple în ceea ce privește programarea. Dar cu siguranță vor fi cei mai prietenoși cu utilizatorul final. De ce?

Foarte des, la o întreprindere, este nevoie să corectați doar câteva rânduri în formularul de raport - de exemplu, în loc de „Director”, puneți „I.O.”

Director". Dacă raportul a fost creat în Crystal Reports sau Microsoft Reporting Services, va trebui să contactați de urgență dezvoltatorul. Și după un timp, directorul interimar va fi confirmat ca director, iar dezvoltatorul va trebui să editeze din nou raportul. .

Dacă raportul este creat inițial într-un document Word, atunci utilizatorul poate face oricând modificările necesare documentului creat - prin

Marea majoritate a utilizatorilor din întreprindere știu să lucreze în Word. Nu mai este nevoie să cauți urgent un dezvoltator.

Word are și alte beneficii. De obicei, la pregătirea rapoartelor

V Valorile cuvintelor din baza de date sunt înlocuite în șablonul de raport, care este stocat în baza de date sau într-un fișier (cu extensia punct). Dacă formatul raportului este complex, cu o cantitate mare design specific (de exemplu, o reclamă pentru o contribuție în numerar), este mult mai ușor să-i pregătiți șablonul

V Word decât, de exemplu, Crystal Reports sau Reporting Services.

O alta aplicație software Cuvânt - capacitatea de a lucra cu diferite formate documente. Acest Caracteristica Word Poate fi folosit pentru procesarea în masă a documentelor.

Permiteți-mi să vă dau un exemplu practic: într-un director de pe disc am adunat câteva sute de documente „diferite dimensiuni” de la diferiți utilizatori. Unele dintre ele au fost create în Cuvânt diferit versiuni, unele sunt doar fișiere text, unele documente sunt în formate HTML, XML sau EML (mesaje E-mail). Întreprinderea a implementat un sistem de management al documentelor bazat pe SharePoint Portal Server și trebuie să aducem toate aceste documente într-un mod unificat.

format nou (Word 2003) și încărcați-le pe SharePoint Portal Server. Bineînțeles, fără automatizare într-o astfel de situație va trebui să mânuiești foarte mult timp.

A treia aplicație software a Word este formatarea documentelor, de exemplu: aplicarea programatică a stilurilor, căutarea și înlocuirea secțiunilor de text în mai multe documente simultan, lucrul cu structura unui document etc. De obicei, astfel de sarcini sunt stabilite în edituri, pt. de exemplu, la pregătirea manuscriselor.

10.2. Introducere în programarea în Word. Model de obiect

Structura generală a obiectelor Word arată așa cum se arată în Fig. 10.1.

Dar nu vă fie teamă - nu veți avea niciodată nevoie de majoritatea acestor sute de obiecte. În practică, pentru a rezolva majoritatea problemelor software, este suficient să cunoașteți doar cinci obiecte (cu colecții însoțitoare):

obiect aplicație;

Obiect document (cu colecția Documents);

Obiect de selecție;

obiect de rază;

un obiect Bookmark (cu o colecție Bookmarks).

9.3. Editor Visual Basic

După înregistrarea macrocomenzii discutate mai sus, următorul text macro a fost adăugat la șablonul Normal:

Sub Arial_10_bold()

„Arial_10_bold Macro

„ Arial 10 Bold

Cu Selectie.Font

Underline = wdUnderlineNone

UnderlineColor = wdColorAutomatic

StrikeThrough = Fals

DoubleStrikeThrough = Fals

Contur = Fals

SmallCaps = Fals

AllCaps = Fals

Culoare = wdColorAutomatic

Gravare = Fals

Superscript = Fals

Indice = Fals

Animație = wdAnimationNone

Cu siguranță, pentru utilizatorii care nu sunt familiarizați cu programarea, un astfel de text va părea foarte complex, dar la o examinare mai atentă se dovedește că acesta este un set simplu de parametri care sunt setați sau nu. Setați parametrul este notat cu cuvântul Adevărat și nespecificat prin Fals.

Pentru a înregistra macrocomenzi, ca și pentru alte comenzi, folosește Microsoft Word Limbajul vizual De bază pentru Aplicații (VBA, Visual Basic pentru aplicații). O macrocomandă este un set de comenzi și instrucțiuni în VBA. Fiecare comandă și acțiune din Microsoft Word este reprezentată ca șiruri de caractere în format VBA, iar procesul de înregistrare a unei macrocomenzi implică și formarea unor astfel de șiruri. În acest fel, utilizatorul are posibilitatea de a modifica sau crea o macrocomandă fără a repeta întreaga procedură. Deși puteți crea o macrocomandă VBA în orice editor de text, nu trebuie să neglijați capacitatea de a înregistra o macrocomandă în Word. Puteți adăuga comenzi și funcții noi la o macrocomandă creată folosind Microsoft Word și, de asemenea, puteți învăța limbajul VBA folosind astfel de macrocomenzi.

Macro-urile pot fi editate folosind un utilitar special care este inclus cu Microsoft Office - editorul Visual Basic (Fig. 9.10).

Orez. 9.10. Fereastra Editor Visual Basic

Acest program conține caracteristici care vă permit să lucrați cu o macrocomandă: testare, depanare, rulare. Folosind acest editor, puteți adăuga, modifica și șterge obiecte din macrocomenzi, puteți crea personalizate casete de dialog, depanați codul procedurilor programului, vizualizați și selectați componente ale proiectelor și bibliotecilor curente, determinați aspectul și comportamentul obiectelor macro în timpul rulării și multe altele.

Puteți deschide fereastra Editor Visual Basic în mai multe moduri, de exemplu, făcând clic pe butonul Visual Basic din panoul Dezvoltator.

Din cartea Programare autor Kozlova Irina Sergheevna

3. Variabilele Visual Basic În Visual Basic, variabilele acumulează informații (valori). Când sunt utilizate, Visual Basic ocupă o zonă din memoria computerului care este destinată să stocheze aceste informații. Numele variabilelor alcătuite din caractere pot avea până la 255 de caractere.

Din cartea Windows Registry autor Klimov Alexandru

Visual Basic Înregistrarea fișierelor dll și ocx Această notă va fi utilă dezvoltatorilor. Dacă trebuie să lucrați adesea cu fișiere ocx (precum și fișiere dll) care necesită înregistrarea în registru folosind REGSVR.EXE, atunci va fi mult mai convenabil să faceți o intrare corespunzătoare în registru decât

Din cartea Limbajul de programare C# 2005 și platforma .NET 2.0. de Troelsen Andrew

Abordarea Visual Basic 6.0 Cu o dorință reală de a se bucura de o viață mai simplă, mulți programatori s-au îndepărtat de „lumea cadru” a aplicațiilor bazate pe C(++) la limbaje mai ușor de utilizat, cum ar fi Visual Basic 6.0 (VB6). ). Limbajul VB6 a devenit popular datorită a ceea ce oferă

Din cartea Windows Registry autorul Klimov A

Din cartea BPwin și Erwin. Instrumente de dezvoltare CASE sisteme de informare autor Maklakov Serghei Vladimirovici

Visual Basic 6.0 În Visual Basic 6.0, spre deosebire de cea de-a cincea versiune, ferestrele Cod și Obiect apar într-o formă normală, nu extinsă. Și de fiecare dată când porniți VB6 trebuie să deschideți aceste ferestre. Puteți forța aceste ferestre să se deschidă automat de fiecare dată când le porniți. Creați în secțiunea corespunzătoare

Din cartea VBA for Dummies de Steve Cummings

2.4.2. Generarea de cod în Visual Basic ERwin acceptă generarea de cod pentru versiunile MS Visual Basic 4.0 și 5.0. Modelul ERwin servește ca sursă de informații la generarea formularelor. Utilizarea ERwin vă permite să descrieți simultan atât partea client (obiecte care afișează date pe ecran),

Din cartea Programare pentru calculatoare de buzunar autor Volkov Vladimir Borisovici

Ce este vizual în Visual Basic pentru aplicații? Din fericire, VBA elimină în mare măsură nevoia de tastare plictisitoare a codului. În unele cazuri, notați comenzile necesare în aplicație și le utilizați ca punct de plecare atunci când creați un program nou.B

Din cartea Delphi Virtual Library a autorului

VBA vs Visual Basic Pe lângă faptul că VBA nu vă permite să creați aplicații individuale, una dintre principalele diferențe este că programele scrise în VBA sunt mai lente decât programele scrise în Visual

Din cartea autorului

Diferențele dintre VBA și Visual Basic VBA are multe în comun cu Visual Basic, fratele său mai mare conceput pentru a crea aplicații independente. Și, deoarece limbile sunt similare, puteți transfera majoritatea abilităților de programare VBA în Visual Basic. Cu toate acestea, ar trebui să vă amintiți

Din cartea autorului

Invocarea Editorului Visual Basic Editorul Visual Basic servește ca centru de comandă pentru lucrul în VBA. Ar trebui să fiți în el atunci când dezvoltați formulare VBA, creați cod VBA, testați și depanați programe VBA. Veți fi un expert în utilizarea Editorului Visual Basic după ce ați citit capitolul 5, dar pentru moment

Din cartea autorului

O scurtă introducere în Visual Basic Editor Prima dată când utilizați Visual Basic Editor poate fi confuză. Prezența meniurilor și a barelor de instrumente în partea de sus a ecranului vă va părea probabil familiară, dar ce înseamnă această abundență de ferestre? Preziceți pozițiile lor relative

Din cartea autorului

Capitolul 5. Editorul Visual Basic la dispoziția dumneavoastră. În acest capitol...~ Găsirea comenzilor în sistemul de meniuri Visual Basic Editor~ Afișarea, mutarea și personalizarea barelor de instrumente~ Înțelegerea și utilizarea barelor de instrumente Dock și Windows~ Lupta cu mulțimile de Windows Editor Visual Basic~

Din cartea autorului

Interfața utilizator Visual Basic Editor Editorul Visual Basic este standard Microsoft – meniurile, barele de instrumente și comenzile rapide de la tastatură arată și funcționează foarte similar cu Microsoft Office. Vă veți simți ca acasă dacă utilizați VBA cu aplicații Office.

Din cartea autorului

Mediul de dezvoltare eMbedded Visual Basic 3.0 Pentru scurtitate, abrevierea eVB va fi folosită în acest capitol pentru a face referire la mediul eMbedded Visual Basic 3.0. Puteți lansa eVB fie folosind comanda meniului Start (Start? Programe? Microsoft eMbedded Visual Tools ? eMbedded Visual. Basic 3.0), sau căutați în folderul de instalare

Din cartea autorului

Diferențele dintre eVB și Visual Basic pentru. NET Practic, diferențele dintre VB.NET și eVB sunt legate de integrarea limbajului VB cu Compact Framework și sunt determinate tocmai de structura internă a CF în sine. Tipuri de date În eVB a existat un singur tip de date pentru toate ocaziile. Varianta, pe care eVB a moștenit-o de la VB Script. Vizual

Din cartea autorului

Delphi și Visual Basic 1. Există un Delphi echivalent cu matricea de control Visual Basic? Nu. Componentele Delphi nu au o proprietate Index ca VB. Cu toate acestea, există trei motive principale pentru care ați dori să le utilizați în VB și pentru fiecare dintre ele există o soluție în Delphi. Motivul 1. Vrei

Modulul de căutare nu este instalat.

Cuvânt VBA, cum se face

(Se termină. Începe la nr. 7)

Evenimente

Un eveniment este o acțiune recunoscută de un obiect (de exemplu, un clic de mouse pe o bară de meniu, o apăsare de tastă, un document nou deschis, un utilizator care închide o aplicație) pentru care poate fi programat un răspuns. Când are loc un eveniment, metoda este activată, adică. cele asociate cu obiectul încep să se execute în avans anumite programe si functii.

Activarea unei metode poate apărea nu numai ca urmare a acțiunilor utilizatorului, ci și atunci când are loc un eveniment, cum ar fi o eroare în program sau sosirea unui anumit timp etc., în acest caz se spune că metoda este activată. de către sistem. Procedurile de gestionare a evenimentelor pot fi accesate din editorul VBA. Când programăm un obiect, cum ar fi un formular, avem acces la o listă întreagă de proceduri de eveniment. Practic, motivele apariției evenimentelor diferitelor obiecte nu diferă unele de altele, motivul apariției lor rămâne același clic de mouse, apăsarea tastelor, schimbarea focalizării obiectului etc., dar procedurile de procesare a acestora sunt împărțite în funcție de la apartenenţa lor la obiect.

Puteți programa reacția la un clic de mouse pe un câmp Formular și un Buton de comandă în acest formular în moduri diferite, procedurile de procesare aparent același eveniment vor fi diferite, deoarece va aparține unor obiecte diferite. Există și o secvență în care apar evenimente care trebuie luate în considerare la programarea lor. De exemplu, un eveniment Click este precedat de un eveniment MouseDown și un eveniment MouseUp. Dar trebuie menționat că nu este deloc necesar să țineți cont de toate evenimentele atunci când vă scrieți programul, trebuie doar să le selectați pe cele de care aveți cu adevărat nevoie pentru muncă. Puteți face fără programarea procesării evenimentelor, dar de îndată ce vă decideți să scrieți un program care conține formulare de utilizator, vă veți confrunta imediat cu nevoia de a programa procedurile de procesare a evenimentelor.

Clase de obiecte

Un alt concept important în programarea orientată pe obiecte sunt clasele. O clasă este un șablon din care este creat un obiect în timpul execuției programului. O clasă definește proprietățile și metodele unui obiect. Dacă luăm un exemplu din viață, atunci ca clasă de obiecte putem lua o clasă de școală, unde obiectele sunt elevi, fiecare cu proprietățile proprii unice pentru ei. De asemenea, fiecare obiect din clasă are una sau mai multe proprietăți identice, de exemplu, vârsta, care determină dacă obiectul aparține clasei.

Un obiect care este creat dintr-o clasă se numește o instanță a clasei.

Modelul obiect al aplicației

Înainte de a începe să creați programe de automatizare pentru lucrul cu o aplicație, trebuie să vă familiarizați cu modelul obiect (ierarhia de clasă) al aplicației. Ierarhia claselor definește relațiile dintre obiecte și conține informații despre accesul la alte obiecte. VBA folosește Object Browser în acest scop.

Fereastra de vizualizare a obiectelor este afișată după cum urmează:

1. Activați fereastra Editor Visual Basic.

2. Selectați comanda View\View Objects (sau apăsați F2).

Pe ecran va apărea fereastra View Objects (Fig. 1).

3. Selectați biblioteca dorită din lista de biblioteci situată în colțul din stânga sus.

Fereastra Clasuri afișează o listă cu toate clasele din biblioteca selectată.

4. Selectați clasa necesară din lista Clasuri.

O listă de componente ale clasei selectate va apărea în partea dreaptă a ferestrei de vizualizare, de exemplu. proprietățile, constantele și metodele sale.

5. Selectați linia necesară din lista de componente.

Informații suplimentare vor apărea în fereastra de ajutor situată mai jos.

Dacă aveți nevoie de informații detaliate despre o componentă a clasei, faceți clic pe pictograma semn de întrebare din bara de instrumente.

PROGRAMARE IN WORD.
Model de obiect Word

În aplicația Word trebuie să lucrăm cu obiectele acesteia. Prin urmare, să le privim mai detaliat.

În fig. Figura 2 prezintă modelul complet al obiectelor Word. Obiectul principal, aflat în vârful piramidei ierarhice a obiectelor, este Word însuși, considerat ca o aplicație (Aplicație), la nivelul următor se găsesc seturi de obiecte (Documente, Dialoguri, Windows etc.) și obiecte unice ( de exemplu, Selectie). Fiecare dintre ele conține, de asemenea, un număr mare de obiecte, proprietăți și metode. De exemplu, un obiect Documente include obiecte care sunt asociate cu acesta, cum ar fi Cuvinte, Paragrafe, Marcaje, Caractere, Document etc. Aceste obiecte, la rândul lor, conțin mai multe obiecte, proprietăți și metode. Acele obiecte care includ obiecte similare se numesc seturi sau colecții (Colecție), ele se disting printr-un nume scris la plural (de exemplu, Documente, Ferestre, Cuvinte). Folosind proprietățile și metodele inerente obiectului Collection, puteți selecta un anumit obiect din acesta pentru procesare. Colecții diferite pot conține aceleași obiecte, de exemplu, obiectul Words aparține colecției Documents, este asociat cu obiectul Selection și cu obiectul Range. Obiectul Words este în sine o colecție de obiecte. Doar pentru că un obiect aparține unei colecții nu înseamnă că este considerat parte a altceva.

Pentru a vedea întregul model de obiect Word, să folosim fereastra Object Viewer din editorul Visual Basic.

În fereastra Editor Visual Basic, faceți clic pe butonul Vizualizare obiecte și selectați Word din meniul pop-up Listă Selectare bibliotecă. În partea dreaptă a ferestrei, sub titlul Clase, vor fi listate toate seturile de obiecte Word, iar în stânga - toate proprietățile și metodele obiectului selectat.

Să trecem la o descriere a principalelor obiecte și colecții de obiecte Word, metodele și proprietățile acestora, precum și exemple de utilizare a acestora.

Obiect de aplicație

După cum sa menționat mai sus, acest obiect reprezintă Aplicație Word. Obiectul Aplicație include proprietăți și metode care returnează obiecte de nivel superior.

De exemplu, proprietatea ActiveDocument returnează un obiect Document și o proprietate numită Application este folosită pentru a returna un obiect Application. Următorul exemplu arată numele de utilizator pentru Word. Acest nume este înregistrat în meniul Instrumente/Opțiuni din fila Utilizator. Instrucțiunea MsgBox este Funcția VBA, care afișează o casetă de dialog cu mesaj MsgBox Application.UserName (Figura 3).

Multe dintre proprietățile și metodele care returnează cele mai comune obiecte de interfață cu utilizatorul, cum ar fi documentul activ (proprietatea ActiveDocument), pot fi utilizate fără specificatorul obiectului Application.

De exemplu, în loc să scrieți Application.ActiveDocument.PrintOut, puteți scrie pur și simplu ActiveDocument.PrintOut. Proprietățile și metodele care pot fi utilizate fără specificatorul obiectului Aplicație sunt considerate „globale”. Pentru a vedea proprietățile și metodele globale în Object Viewer, faceți clic pe linie<глобальные>în partea de sus a listei în blocul Clasuri.

Obiectul Aplicație are peste 80 de proprietăți care reflectă toate setările aplicației. Să enumerăm câteva dintre ele (Tabelul 1).


Cum poți schimba proprietățile obiectului Aplicație într-un program în timp ce faci ceva? Există mai multe proceduri speciale care pot fi utilizate pentru a face acest lucru. Aceste proceduri au denumiri speciale și sunt efectuate automat în timpul unor operații (Tabelul 3).


Prin inserarea șirurilor de instrucțiuni VBA în aceste macrocomenzi, puteți influența obiectele, de exemplu, când creați un document nou, eliminați barele de defilare și bara de stare de pe ecran scriind următoarea macrocomandă în modulul Normal:

Sub Public AutoNew()

Application.DisplayScrollBars = Fals

Application.DisplayStatusBar = Fals

De fapt, puteți salva aceste macrocomenzi în orice șablon sau document. Excepție este macrocomanda AutoExec, care funcționează numai din șablonul Normal.dot salvat în folderul specificat ca folder de lansare.

Acțiuni similare pot fi efectuate folosind procedurile de gestionare a evenimentelor ale obiectului Aplicație.

Obiectul Aplicație are puține evenimente (Tabelul 4).

Pentru a programa un răspuns la evenimentele obiectului Aplicație, trebuie mai întâi să efectuați o serie de acțiuni:

1. Declarați o variabilă obiect într-un modul de clasă.

2. Notați procedurile de procesare a evenimentelor.

3. Inițializați un obiect declarat dintr-un alt modul.

Cum se declară o variabilă Object

Pentru a face acest lucru, trebuie să creați modul nou class și declara un obiect de tip Aplicație cu evenimente. Pentru a face acest lucru, selectați linia Class Module din meniul Insert, iar în fereastra Program for a new class module introduceți următorul cod (Fig. 4):

Aplicația publică WithEvents ca Word.Application

Apelați fereastra de proprietăți și modificați proprietatea Name din Class1 în EventClassModule.

Descrierea procedurilor evenimentului

Odată ce un obiect nou a fost declarat cu evenimente, acesta va apărea în fereastra Program din lista derulantă Obiecte și puteți scrie proceduri de eveniment pentru noul obiect. (Când selectați un nou obiect în lista de obiecte, evenimentele valide pentru acesta sunt listate în lista derulantă Proceduri.) Selectați un eveniment din lista derulantă Proceduri și o procedură goală este adăugată la modulul de clasă (Figura 5). Puteți scrie codul necesar pentru a gestiona evenimentul.

Inițializarea unui obiect declarat

Înainte ca procedura să fie executată, este necesar să conectați obiectul declarat în modulul de clasă (noi îl numim App) la la obiectul Aplicație. Acest lucru se face prin următorul cod din orice modul.

Dim X ca nou EventClassModule

Subregistru()

Setați X.App = Word.Application

Acum nu mai rămâne decât să finalizați procedura de înregistrare. Îl puteți rula din meniu sau îl puteți apela dintr-o altă procedură de modul. Obiectul App din modulul de clasă va indica apoi către obiectul Aplicație Word, iar procedurile de eveniment din modulul de clasă vor fi executate atunci când apar evenimente.

Colecția de obiecte Documente

Documente este colecția tuturor obiectelor Document care sunt deschise în prezent în Word.

Acest set are propriile sale proprietăți, metode și evenimente.

Setul de documente are puține proprietăți (Tabelul 5).


Puteți utiliza proprietatea Documents pentru a returna un set de Documente. Următorul exemplu arată numele documentelor deschise

Pentru fiecare aDoc din documente

aName = aName & aDoc.Name & vbCr „vbCr este o constantă care definește caracterul de returnare a căruciorului (cod 13)

Setul de documente are puțin mai multe metode (Tabelul 6).


Metoda Add este folosită pentru a crea un nou document gol și pentru a-l adăuga la colecția Documents. Următorul exemplu creează document nou, bazat pe șablonul Normal.dot.

Adăugați sintaxa metodei:

expression.Add(Șablon, șablon nou)

expresie - o expresie care returnează un obiect Documents.

Șablonul este un parametru opțional. Conține numele șablonului care va fi utilizat pentru noul document. Dacă parametrul este omis, se utilizează Normal.dot.

NewTemplate este un parametru opțional. Dacă parametrul este True, documentul se deschide ca șablon. Valoarea implicită este False.

Metoda Item este folosită pentru a selecta un anumit articol dintr-un set. Un element poate fi identificat prin nume sau prin numărul său din set.

Sintaxa metodei:

expresie.Articol(Index)

Expresie - O expresie care returnează un obiect Documents.

Index - numele sau numărul de index al elementului setat.

Metoda Item este metoda implicită pentru seturi. Prin urmare, următoarele două linii de cod sunt echivalente.

Aplicație.Documente(1)

Aplicație.Documente.Articol(1)

Următoarele linii sunt, de asemenea, echivalente:

Application.Documents(„Raport.doc”)

Application.Documents.Item ("Raport.doc")

Deschideți fișierele document utilizând metoda Open.

Sintaxa metodei Open este următoarea:

expression.Open(FileName, ConfirmConversions, ReadOnly, AddToRecentFiles, PasswordDocument, PasswordTemplate, Revert, WritePasswordDocument, WritePasswordTemplate, Format)

expresie este o expresie care returnează un obiect Documents.

FileName - parametru necesar „nume fișier”. Acest parametru specifică calea către document. Puteți înregistra mai multe fișiere, separând numele fișierelor cu spații.

ConfirmConversions este un parametru opțional care poate fi True dacă doriți să afișați caseta de dialog Convert File dacă fișierul nu este în format Word.

ReadOnly este un parametru opțional. Egal cu True dacă fișierul este deschis doar în citire.

AddToRecentFiles - parametru opțional dacă este egal cu True, fișierul este adăugat la lista de fișiere din partea de jos a meniului Fișier.

PasswordDocument este un parametru opțional. Conține parola pentru deschiderea documentului.

PasswordTemplate este un parametru opțional. Conține parola pentru deschiderea șablonului.

Revert este un parametru opțional. Dacă FileName conține numele fișierului unui document deja deschis, atunci dacă parametrul este True, documentul este redeschis fără a salva modificările efectuate. Dacă valoarea parametrului este False, atunci este activat un document deja deschis.

WritePasswordDocument este un parametru opțional. Conține parola necesară la salvarea modificărilor documentului.

WritePasswordTemplate este un parametru opțional. Conține o parolă pentru salvarea modificărilor șablonului.

Formatul este un parametru opțional. Conține un convertor pentru conversia fișierului. Poate fi scris ca una dintre constantele: wdOpenFormatAuto, wdOpenFormatDocument, wdOpenFormatRTF, wdOpenFormatTemplate, wdOpenFormatText sau wdOpenFormatUnicodeText. Valoarea implicită este wdOpenFormatAuto.

Pentru a determina formatul de fișier extern, utilizați proprietatea OpenFormat a obiectului FileConverter, care returnează valoarea scrisă la acest parametru.

Următorul cod deschide fișierul Sales.doc. Numele fișierului este indicat între ghilimele.

Documents.Open FileName:="C:\My Documents\Sales.doc" " deschide documentul "Sales.doc"

Următorul exemplu parcurge documentele din colecția Documents pentru a găsi un document din colecția numită „Report.doc”. Dacă acest document se află în colecția Documente, este activat, dacă nu, documentul este deschis.

Pentru fiecare document din documente

Dacă doc.Name = „Raport.doc” Atunci găsit = Adevărat

Daca este gasit<>Adevărat Atunci

Documents.Open FileName:="C:\Documents\Report.doc"

Documente(„Raport.doc”).Activare

Metoda Close este folosită pentru a închide documentele și are sintaxa:

expression.Close(Salvare modificări, OriginalFormat, RouteDocument)

expresie - o expresie care returnează un obiect Document sau Documents.

SaveChanges este un parametru opțional. Definește acțiunea de întreprins la salvarea unui document. Poate fi una dintre următoarele constante WdSaveOptions:

WdDoNotSaveChanges (nu salvați modificările);

WdPromptToSaveChanges (afișează o casetă de dialog care vă cere să salvați modificările);

WdSaveChanges (salvați fără solicitări).

OriginalFormat este un parametru opțional. Specifică formatul pentru salvarea documentului. Poate fi una dintre următoarele constante wdOriginalFormat: wdOriginalDocumentFormat, wdPromptUser, wdWordDocument.

RouteDocument este un parametru opțional. Adevărat dacă documentul este transmis următorului destinatar.

Următoarea linie de cod închide documentul numit „Report.doc” fără a salva modificarea. Specifică parametrul SaveChanges, căruia îi este atribuită valoarea „nu salvați modificările” printr-o constantă.

Documents("Report.doc").Close SaveChanges: = wdDoNotSaveChanges

Metoda Salvare este utilizată pentru a salva unul sau toate documentele. Metoda are mai multe tipuri de înregistrare, în funcție de rezultatul așteptat.

1. Expresie.Salvare.

O înregistrare de acest tip salvează documentul sau șablonul specificat. Dacă documentul sau șablonul nu a fost salvat înainte, caseta de dialog Salvare ca solicită utilizatorului un nume de fișier.

Aici expresia este o expresie care returnează un obiect Document sau Template.

2. Expression.Save (NoPrompt, OriginalFormat).

Această intrare stochează toate documentele în setul Documente. Dacă documentul nu a fost salvat înainte, caseta de dialog Salvare ca solicită utilizatorului un nume de fișier. Această intrare conține și doi parametri opționali.

Parametrul NoPrompt. Dacă această setare este True, Word salvează automat toate documentele. Dacă valoarea parametrului este False, atunci Word solicită utilizatorului să salveze fiecare document care a fost modificat.

Parametrul OriginalFormat specifică calea pentru salvarea documentelor. Poate fi egal cu una dintre următoarele constante wdOriginalFormat: wdOriginalDocumentFormat, wdPromptUser sau wdWordDocument.

3. Expresie.Salvare(Comentariu)

Această intrare va salva o versiune a documentului specificat cu comentarii.

Următorul exemplu salvează documentul activ.

ActiveDocument.Salvare

Următorul exemplu salvează fiecare document din colecția Documente fără a solicita utilizatorului.

Documents.Save NoPrompt:=True, OriginalFormat:=wdOriginalDocumentFormat

Dacă fișierul Sales.doc este deschis, următorul cod salvează o versiune a fișierului cu comentarii adăugate.

Pentru fiecare document din Documente

Dacă Instr(1, doc.Name, „Vânzări.doc”, 1) > 0, atunci

doc.Versions.Save Comment:="modificări minore"

Obiect document

Reprezintă un obiect Document, un element al colecției Documents. Spre deosebire de setul Documente, obiectul Document are mai mult de o sută de proprietăți. Practic, proprietățile unui obiect Document sunt folosite pentru a returna un alt obiect sau un set de obiecte pentru a lucra cu proprietățile și metodele acestuia. Într-un document, trebuie să lucrați în principal cu cuvinte, paragrafe, simboluri și marcaje, așa că să ne uităm la unele dintre proprietățile obiectului Document care returnează aceste obiecte (Tabelul 7).


Pentru a fi selectiv cu privire la un document dintr-un set, puteți utiliza proprietatea ActiveDocument a obiectului Application.

Următorul exemplu utilizează metoda Activare pentru a iniția un document numit „Document 1”. Exemplul stabilește și el orientare orizontală pagini și imprimă documentul.

Documente(„Documentul 1”).Activare

ActiveDocument.PageSetup.Orientation = wdOrientLandscape

ActiveDocument.PrintOut

Proprietatea Marcaje returnează un set de Marcaje care conține toate marcajele din document.

Acest exemplu găsește pozițiile de început și de sfârșit pentru primul marcaj din documentul activ.

Cu ActiveDocument.Marcaje(1)

BookStart = .Start

Proprietatea Caractere returnează un set de caractere care conține toate caracterele din document.

Următorul exemplu arată primul caracter din selecție. Dacă nu există nicio selecție, atunci este returnat primul caracter după cursor.

char = Selectie.Caractere(1).Text

MsgBox „primul caracter este...” și char

Un alt exemplu returnează numărul de caractere din prima propoziție (spațiile sunt incluse în numărare).

numchars = ActiveDocument.Sentences(1).Characters.Count

Citiți despre evenimentele și metodele obiectului Document în articolul următor.

Malyshev S.A.