Exemple de Word Macro și tutorial VBA

Bine ați venit la Mega-ghidul nostru Word VBA / Macros!

Această pagină conține:

    1. Word VBA Tutorial PDF (Descărcare gratuită)
    2. Word VBA „Foaie de cheat” care conține o listă cu cele mai utilizate fragmente de cod Word VBA
    3. Tutorial complet Word VBA / Macro.
    4. Listă căutabilă a tuturor tutorialelor noastre Macro Word VBA

S-ar putea să vă intereseze și Tutorialul nostru VBA interactiv pentru Excel. În timp ce unele dintre exemple / exerciții sunt specifice pentru Excel VBA, o mare parte din conținut este generică pentru toate VBA și s-ar putea să fie util să învățați concepte precum Instrucțiuni If, Bucle, MessageBoxes și multe altele.

PDF VBA (Descărcări gratuite)

Descărcați tutorialul nostru gratuit Microsoft Word VBA! Sau tutoriale VBA pentru alte programe Office!

Descarca

Exemple Word VBA „CheatSheet”

Mai jos veți găsi exemple simple de cod VBA pentru lucrul cu Microsoft Word.

Selectați / Accesați

DescriereCodul VBABackspaceSelecție.TypeBackspaceSelectați întregul documentSelection.HomeKey Unit: = wdStory
Selecție. ExtindețiCopieSelecție.CopieȘtergeSelecție. Ștergeți unitatea: = wdCharacter, Count: = 1Inserați dupăSelecție.Insertați după „text”Începutul linieiSelection.HomeKey Unit: = wdLineSfârșit de linieSelection.EndKey Unit: = wdLinePastăSelecție.PasteSelectează totSelection.WholeStorySelectați întreaga linieSelection.EndKey Unit: = wdLine, Extend: = wdExtendMutați în sus paragrafulSelection.MoveUp Unit: = wdParagraph, Count: = 1Mutați-vă la dreapta cu un personajSelection.MoveRight Unit: = wdCharacter, Count: = 1Mutați dreapta o celulă în tabelSelection.MoveRight Unit: = wdCellAccesați Începutul documentuluiSelection.HomeKey Unit: = wdStoryMergeți la sfârșitul documentuluiSelection.EndKey Unit: = wdStoryAccesați pagina 1Selection.GoTo What: = wdGoToPage, Care: = wdGoToNext, Nume: = ”1 ″Accesați partea de sus a paginiiSelection.GoTo What: = wdGoToBookmark, Name: = ”\ Page”
Selection.MoveLeft Unit: = wdCharacter, Count: = 1

Reveniți în partea de sus

Marcaje

DescriereCodul VBAAdăugaCu ActiveDocument.Bookmarks
.Adăugați gama: = Selecție.Gama, Nume: = ”Nume”
.DefaultSorting = wdSortByName
.ShowHidden = False
Se termina cuNumaraDim n ca întreg
n = ActiveDocument.Bookmarks.CountȘtergeActiveDocument.Bookmarks („BookmarkName”). ȘtergețiExista?Dacă ActiveDocument.Bookmarks.Exists („BookmarkName”) = True atunci
'Fă ceva
End IfMergi laSelection.GoTo What: = wdGoToBookmark, Name: = ”BookmarkName”SelectațiActiveDocument.Bookmarks („BookmarkName”). SelectațiÎnlocuiți textulSelection.GoTo What: = wdGoToBookmark, Name: = ”BookmarkName”
Selecție. Ștergeți unitatea: = wdCharacter, Count: = 1
Selecție.Insertați după „Text nou”
ActiveDocument.Bookmarks.Add Range: = Selection.Range, _
Nume: = ”BookmarkName”

Reveniți în partea de sus

Document

DescriereCodul VBAActivatiDocumente („Exemplu.doc”). ActivațiAdăugați la VariabilăDim doc ca document
Setați doc = Documents.AddAdăugaDocumente.AdăugațiAdăugați (dintr-un alt document)Documents.Add Template: = ”C: \ Forms \ FormDoc.doc”, _
NewTemplate: = FalseÎnchideDocumente („Exemplu.doc”). ÎnchidețiÎnchidere - Salvați modificărileDocumente („Example.doc”). Închideți SaveChanges: = wdSaveChangesÎnchidere - Nu salvațiDocumente („Example.doc”). Închideți SaveChanges: = wdDoNotSaveChangesÎnchidere - Solicitați să salvațiDocumente („Example.doc”). Închideți SaveChanges: = wdPromptToSaveChanges

Reveniți în partea de sus

Coloane

DescriereCodul VBASalvează caDocumente („Example.doc”). SaveAs („C: \ Example \ Example.doc”)SalvațiDocumente („Exemplu.doc”). SalvațiProtejaDocumente („Exemplu.doc”). Protejați parola: = ”parolă”NeprotejeazăDocumente („Example.doc”). UnProtect Password: = ”parola”Număr de paginiDim varNumberPages ca variantă
varNumberPages = _
ActiveDocument.Content.Information (wdActiveEndAdjustedPageNumber)ImprimareDocumente („Exemplu.doc”). Imprimați

Reveniți în partea de sus

V-ați săturat să căutați exemple de cod VBA? Încercați AutoMacro!

Font

DescriereCodul VBAmărimeaSelection.Font.Size = 12ÎndrăzneţSelection.Font.Bold = AdevăratCursivSelection.Font.Italic = AdevăratSubliniațiSelection.Font.Underline = wdUnderlineSingleToate majusculeleSelection.Font.AllCaps = AdevăratCuloareSelection.Font.TextColor = vbRedNumeSelection.Font.Name = „Abadi”IndiceSelection.Font.Subscript = AdevăratSuperScriptSelection.Font.Superscript = AdevăratEvidențiați culoareaSelection.Range.HighlightColorIndex = wdYellowStilSelection.Style = ActiveDocument.Styles („Normal”)

Reveniți în partea de sus

Introduce

DescriereCodul VBAIntroduceți text automatSelection.TypeText Text: = ”a3 ″
Selection.Range.InsertAutoTextIntroduceți codul dateiInserați fișierulSelection.InsertFile („C: \ Docs \ Something.doc”)Inserați Pauză de paginăSelecție.InsertBreak Tip: = wdPageBreakInserați simbolul de paragrafSelection.TypeText Text: = Chr $ (182)Inserați filaSelection.TypeText Text: = vbTabIntroduceți textSelection.TypeText Text: = ”Orice text”Inserați paragraful de tipSelection.TypeParagraphIntroduceți paragrafulSelecție.InsertParagraf

Reveniți în partea de sus

Bucle

DescriereCodul VBAFaceți până la sfârșitul docFaceți până la ActiveDocument.Bookmarks („\ Sel”) = ActiveDocument.Bookmarks („\ EndOfDoc”)
'Fă ceva
SubPentru fiecare document din DocumenteDim doc ca document
Pentru fiecare document în documente
'Fă ceva
Următorul documentBuclați prin paragrafeSub prin paragrafe
Dim i As Long, iParCount As Long
iParCount = ActiveDocument.Paragraphs.CountFori = 1 Pentru iParCount
ActiveDocument.Paragraphs (i) .Alignment = wdAlignParagraphLeft
Apoi eu

Reveniți în partea de sus

Paragraf

DescriereCodul VBAKeepLinesTogetherSelection.ParagraphFormat.KeepTogether = AdevăratKeepWithNextSelection.ParagraphFormat.KeepWithNext = AdevăratSpațiu dupăSelection.ParagraphFormat.SpaceAfter = 12Spațiu înainteSelection.ParagraphFormat.SpaceBefore = 0Aliniere la centruSelection.ParagraphFormat.Alignment = wdAlignParagraphCenterAliniați dreaptaSelection.ParagraphFormat.Alignment = wdAlignParagraphRightAlinia la stângaSelection.ParagraphFormat.Alignment = wdAlignParagraphLeftIndentare stângaSelection.ParagraphFormat.LeftIndent = InchesToPoints (3.75)Liniuța dreaptăSelection.ParagraphFormat.RightIndent = InchesToPoints (1)Spațiere între liniiCu Selection.ParagraphFormat
.LineSpacingRule = wdLineSpaceExactly
.LineSpacing = 12
Se termina cuBuclați prin toate paragrafeleSub prin paragrafe
Dim i As Long, iParCount As Long
iParCount = ActiveDocument.Paragraphs.CountFori = 1 Pentru iParCount
ActiveDocument.Paragraphs (i) .Alignment = wdAlignParagraphLeft
Apoi eu

Reveniți în partea de sus

Tutorial Word VBA Macro

Acesta este un tutorial pentru utilizarea VBA cu Microsoft Word. Acest tutorial vă va învăța cum să scrieți o macro simplă și să interacționați cu documente, game, selecții și paragrafe.

Notă: dacă sunteți nou în Macros / VBA, s-ar putea să vă fie util și acest articol: Cum să scrieți Macros VBA din Scratch.

VBA este limbajul de programare utilizat pentru automatizarea programelor Microsoft Office, inclusiv Word, Excel, Outlook, PowerPoint și Access.

Macrocomenzi sunt blocuri de cod VBA care efectuează sarcini specifice.

Cand tu Înregistrați o macro, Word va scrie codul VBA într-o macro, permițându-vă să repetați acțiunile. Puteți vedea o listă cu toate macro-urile disponibile de la Vizualizare> Macrocomenzi.

După înregistrarea unei macrocomenzi, veți putea edita macrocomanda din lista de macrocomenzi:

Când faceți clic Editați | ×, deschideți fișierul Editor VBA. Folosind Editorul VBA puteți edita Macro-urile înregistrate sau puteți scrie un Word Macro de la zero. Pentru a accesa Editorul VBA utilizați comanda rapidă ALT + F11 sau faceți clic Visual Basic de la Panglică pentru dezvoltatori.

Exemplu de macro simplu Word

Acesta este un exemplu simplu de macro VBA Word. Realizează următoarele sarcini:

  • Deschide un document Word
  • Scrie în document
  • Închide și salvează documentul Word.
123456789101112131415 Sub WordMacroExample ()'Deschideți Doc & Atribuiți la variabilăDim oDoc ca documentSetați oDoc = Documents.Open ("c: \ Users \ someone \ NewDocument.docx")'Scrieți către docSelection.TypeText "www.automateexcel.com"Selection.TypeParagraph„Salvați și închideți docoDoc.SaveoDoc.ÎnchideSfârșitul Sub

Noțiuni de bază despre cuvintele macro

Tot codul VBA trebuie să fie stocat în cadrul unor astfel de proceduri. Pentru a crea o procedură în VBA tastați „Sub WordMacroExample” (unde „WordMacroExample” este numele dvs. de macro dorit) și apăsați INTRODUCE. VBA va adăuga automat paranteza și End Sub.

Obiect Document Word

Când interacționați cu Microsoft Word în VBA, veți face referire frecvent la „Obiecte” Word. Cele mai frecvente obiecte sunt:

Obiectul aplicației - Microsoft Word în sine

Obiect document - Un document Word

Obiectul Range - O parte dintr-un document Word

Obiect de selecție - O zonă selectată sau o locație a cursorului.

Cerere

Aplicația este obiectul „de nivel superior”. Toate celelalte obiecte din Word pot fi atinse prin intermediul acestuia.

Pe lângă accesarea altor obiecte Word, există setări „la nivel de aplicație” care pot fi aplicate:

1 Application.Options.AllowDragAndDrop = Adevărat

Acesta este un exemplu de accesare la „Selecția” din „Windows (1)” cu aplicația:

1 Application.Windows (1) .Selectie.Caractere.Count

Cu toate acestea, cele mai comune obiecte Word pot fi accesate direct, fără a tasta ierarhia completă. Deci, în schimb, puteți (și ar trebui) să tastați:

1 Selecție.Personaje.Număr

Documente

ActiveDocument

Adesea, veți avea două sau mai multe documente deschise în Word și va trebui să specificați cu ce Document Word specific să interacționați. O modalitate de a specifica ce document trebuie utilizat ActiveDocument. De exemplu:

1 ActiveDocument.PrintOut

… ar imprima ActiveDocumentul. ActiveDocument este documentul din Word care „are accent”

Pentru a comuta ActiveDocument, utilizați comanda Activare:

1 Documente („Exemplu.docx”). Activați

Acest document

În loc să utilizați ActiveDocument pentru a face referire la documentul activ, puteți utiliza acest document pentru a face referire la documentul în care este stocată macrocomanda. Acest document nu se va schimba niciodată.

1 ThisDocument.PrintOut

Variabile de document

Cu toate acestea, pentru macro-urile mai complicate, poate fi greu să țineți evidența documentului activ. De asemenea, poate fi frustrant să comutați înainte și înapoi între documente.

În schimb, puteți utiliza variabile Document.

Această macrocomandă va atribui ActiveDocument unei variabile și apoi va imprima documentul utilizând variabila:

12345 Sub VarExample ()Dim oDoc ca documentSetați oDoc = ActiveDocumentoDoc.PrintOutSfârșitul Sub

Metode de documentare

Deschideți documentul

Pentru a deschide un document Word:

1 Documents.Open "c: \ Users \ SomeOne \ Desktop \ Test PM.docx"

Vă recomandăm să alocați întotdeauna un document unei variabile la deschiderea acestuia:

12 Dim oDoc ca documentSetați oDoc = Documents.Open ("c: \ Users \ SomeOne \ Desktop \ Test PM.docx")

Creați un document nou

Pentru a crea un document Word nou:

1 Documente.Adăugați

Putem instrui Word să creeze un document nou pe baza unui șablon:

1 Documents.Add Template: = "C: \ Program Files \ Microsoft Office \ Templates \ MyTemplate.dotx"

Ca întotdeauna, este util și mare economizor de probleme să atribuiți documentul variabilei la crearea sau deschiderea:

12 Dim oDoc ca documentSet oDoc = Documents.Add (Template: = "C: \ Program Files \ Microsoft Office \ Templates \ MyTemplate.dotx")

Salvați documentul

Pentru a salva un document:

1 ActiveDocument.Save

sau SaveAs:

1 ActiveDocument.SaveAs FileName: = c: \ Users \ SomeOne \ Desktop \ test2.docx ", FileFormat: = wdFormatDocument

Închideți documentul

Pentru a închide un document și a salva modificările:

1 ActiveDocument.Close wdSaveChanges

sau fără salvarea modificărilor:

1 ActiveDocument.Close wdDoNotSaveChanges

Imprimați documentul

Aceasta va imprima documentul activ:

1 ActiveDocument.PrintOut

Interval, selecție, paragrafe

Gamă și Selecţie sunt probabil cele mai importante obiecte din Word VBA, cu siguranță cele mai utilizate.

Gamă se referă la o parte din document, de obicei, dar nu neapărat, text.

Selecţie se referă la textul selectat (sau la un alt obiect cum ar fi imaginile) sau, dacă nu este selectat nimic, la un punct de inserare.

Paragrafele reprezintă paragrafe în document. Este mai puțin important decât pare, deoarece nu puteți accesa direct textul de paragraf (trebuie să accesați un anumit interval de paragrafe pentru a face modificări).

Gamă

Intervalul poate fi orice parte a documentului, inclusiv întregul document:

12 Dim oRange As RangeSetați oRange = ActiveDocument.Content

sau poate fi mic ca un singur personaj.

Un alt exemplu, acest interval se referă la primul cuvânt din document:

12 Dim oRange As RangeSetați oRange = ActiveDocument.Range.Words (1)

De obicei, ați dori să obțineți interval care se referă la o parte specifică a documentului și apoi să îl modificați.

În exemplul următor vom face primul cuvânt al celui de-al doilea paragraf aldin:

123 Dim oRange As RangeSetați oRange = ActiveDocument.Paragraphs (2) .Range.Words (1)oRange.Bold = Adevărat

Setați textul intervalului

Pentru a seta valoarea textului unui interval:

123 Dim oRange As RangeSetați oRange = ActiveDocument.Paragraphs (2) .Range.Words (1)oRange.Text = „Bună ziua”

(Sfat: Rețineți spațiul după „Bună ziua”. Deoarece obiectul cuvânt include spațiul după cuvânt, cu doar „salut” vom primi „cuvântul Hellonext”)

Există sute de lucruri pe care le puteți face cu intervale. Doar câteva exemple (acestea presupun că sunteți deja făcut obiect variabil portocale referindu-se la gama de interese):

Schimbați fontul

1 oRange.Font.Name = "Arial"

Afișați în caseta de mesaje numărul de caractere dintr-un anumit interval

1 MsgBox oRange.Characters.Count

Introduceți un text înainte de acesta

1 oRange.InsertBefore "acest text este inserat"

Adăugați o notă de subsol la interval

12 ActiveDocument.Footnotes.Add Range: = oRange, _Text: = "Citiți mai multe pe easyexcel.net."

Copiați-l în clipboard

1234 oRange.CopyAdesea trebuie să treceți la ceea ce se referă la anumită gamă. Deci, puteți începe și începe și se terminăoRange.Start = 5oRange.End = 50

După codul de mai sus, oRange se referă la textul care începe cu al cincilea și se termină cu al 50-lea caracter din document.

Selecţie

Selecţie este chiar mai utilizat pe scară largă decât Gamă, deoarece este mai ușor să lucrezi cu Selecții decât Gama, DACĂ macrocomanda dvs. interacționează DOAR cu ActiveDocument.

Mai întâi selectați partea dorită a documentului. De exemplu, selectați al doilea paragraf din documentul activ:

1 ActiveDocument.Paragraphs (2) .Range.Select

Apoi, puteți utiliza obiectul de selecție pentru a introduce text:

1 Selection.TypeText "Un text"

Putem tasta câteva paragrafe de mai jos „Un text”:

12 Selection.TypeText "Un text"Selection.TypeParagraph

Adesea, este necesar să știm dacă este selectat un anumit text sau dacă avem doar un punct de inserare:

12345 Dacă Selection.Type wdSelectionIP ApoiSelection.Font.Bold = AdevăratAltfelMsgBox "Trebuie să selectați un text."End If

Când lucrăm cu obiectul Selecție, dorim să plasăm punctul de inserare într-un anumit loc și să lansăm comenzi începând din acest punct.

Începutul documentului:

1 Selection.HomeKey Unit: = wdStory, Extend: = wdMove

Începutul liniei curente:

1 Selection.HomeKey Unit: = wdLine, Extend: = wdMove

Parametrul Extinde wdMove mută punctul de inserare. În schimb, puteți utiliza wdExtend care va selecta tot textul dintre punctul de inserare curent.

1 Selection.HomeKey Unit: = wdLine, Extend: = wdExtend

Mutați selecția

Cea mai utilă metodă pentru schimbarea poziției punctului de inserare este Mutare. Pentru a muta Selection două caractere înainte:

1 Selecție Mutați unitatea: = wdCharacter, Count: = 2

pentru a-l muta înapoi, utilizați numărul negativ pentru parametrul Count:

1 Selecție.Mutați unitatea: = wdCharacter, Count: = - 2

Parametrul unității poate fi wdCharacter, wdWord, wdLine sau mai multe (folosiți ajutorul Word VBA pentru a vedea pe alții).

Pentru a muta cuvinte în schimb:

1 Selecție Mutați unitatea: = wdWord, Count: = 2

Selecția este mai ușor de lucrat (în comparație cu intervalele), deoarece este ca un robot care folosește Word, imitând utilizatorul uman. Unde este punctul de inserare - ar avea loc unele acțiuni. Dar acest lucru înseamnă că trebuie să aveți grijă unde este punctul de inserare! Acest lucru nu este ușor după mulți pași în cod. În caz contrar, Word ar schimba textul în locul nedorit.

În cazul în care aveți nevoie de o anumită proprietate sau metodă care nu este disponibilă în obiectul Selecție, puteți obține cu ușurință intervalul asociat selecției:

1 Set oRange = Selection.Range

SFAT: Folosind Selecţie este adesea mai ușor decât utilizarea intervalelor, dar, de asemenea, este mult mai lent (important atunci când aveți de-a face cu documente mari)

Paragrafele

Nu puteți utiliza direct paragraful obiect pentru a modifica textul:

1 ActiveDocument.Paragraphs (1) .Text = "Nu, nu ar funcționa"

Mai sus nu ar funcționa (de fapt va genera o eroare). Mai întâi trebuie să obțineți intervalul asociat cu un anumit paragraf:

1 ActiveDocument.Paragraphs (1) .Range.Text = "Funcționează acum :)"

Dar îi puteți schimba direct stilul:

1 ActiveDocument.Paragraphs (1) .Style = "Normal"

sau modificați formatarea la nivel de paragraf:

1 ActiveDocument.Paragraphs (1) .LeftIndent = 10

sau poate doriți să păstrați acest paragraf pe aceeași linie cu paragraful următor:

1 ActiveDocument.Paragraphs (1) .KeepWithNext = Adevărat

Faceți paragraful centrat:

1 ActiveDocument.Paragraphs (1) .Alignment = wdAlignParagraphCenter

Este FOARTE util să atribuiți un anumit paragraf variabilei obiect. Dacă atribuim un anumit paragraf variabilei, nu trebuie să ne facem griji dacă primul paragraf devine al doilea, deoarece am inserat un paragraf înaintea acestuia:

12 dim oPara ca ParagrafulSetați oPara = Selection.Paragraphs (1) ‘aici atribuim variabilului primul paragraf al selecției curente

Iată un exemplu în care inserăm un paragraf deasupra primului paragraf, dar putem face referire la vechiul prim paragraf, deoarece a fost atribuit unei variabile:

1234567 Sub paragrafExemplu ()Dim oPara As paragraphSetați oPara = ActiveDocument.Paragraphs (1)MsgBox oPara.Range.TextoPara.Range.InsertParagraphBefore 'Insert paragraphMsgBox oPara.Range.TextSfârșitul Sub

Obiectul de paragraf este foarte frecvent utilizat în bucle:

123456789101112 Sub LoopThroughParagraphs ()Dim oPara As paragraphPentru fiecare oPara din ActiveDocument.Paragrafele'fă ceva cu el. Vom afișa doar'text de paragraf dacă stilul său este „Titlul 4”Dacă oPara.Style = "Heading 4" AtunciMsgBox oPara.Range.TextEnd IfUrmătoarea oParaSfârșitul Sub

Concluzie tutorial Word VBA

Acest tutorial a acoperit elementele de bază ale Word VBA. Dacă sunteți nou în VBA, ar trebui să consultați și Tutorialul nostru general VBA pentru a afla mai multe despre variabile, bucle, MessageBoxes, Setări, Logică condiționată și multe altele.

Exemple de cuvinte macro

Exemple de cuvinte macro
Șabloane
Adăugați documente noi
Numărați cuvinte în selecție
TextBoxes
Salvați ca PDF
Marcaje
Mese
Găsiți și găsiți și înlocuiți
Deschideți documentele

Întrebări frecvente despre Word VBA

Ce este un Macro Word?

O macro este un termen general care se referă la un set de instrucțiuni de programare care automatizează sarcinile. Word Macros automatizează sarcinile în Word utilizând limbajul de programare VBA.

Cuvântul are VBA?

Da, Microsoft Word are editorul VBA. Se poate accesa prin apăsarea ALT + F11 sau navigând la Developer> Visual Basic.

Cum folosesc VBA în Word?

1. Deschideți Editorul VBA (ALT + F11 sau Dezvoltator> Visual Basic)
2. Accesați Inserare> Modul pentru a crea un modul de cod
3. Tastați „Sub HelloWorld” și apăsați Enter
4. Între rândurile „Sub HelloWorld” și „End Sub”, tastați „MsgBox„ Hello World! ”
5. Ați creat un Macro!
6. Acum apăsați „F5” pentru a rula Macro

wave wave wave wave wave