Príklady makra programu Word a návod VBA

Vitajte v našom veľkom sprievodcovi Word VBA / makrá!

Táto stránka obsahuje:

    1. Výukový program Word VBA PDF (bezplatné stiahnutie)
    2. „Cheat Sheet“ programu Word VBA obsahujúci zoznam najčastejšie používaných úryvkov kódu Word VBA
    3. Úplný tutoriál Word VBA / Makro.
    4. Prehľadateľný zoznam všetkých našich makro návodov Word VBA

Tiež by vás mohlo zaujímať náš interaktívny návod VBA pre Excel. Aj keď sú niektoré príklady / cvičenia špecifické pre Excel VBA, veľká časť obsahu je všeobecná pre všetky VBA a môže byť pre vás užitočné osvojiť si koncepty ako If Statements, Loops, MessageBoxes a ďalšie.

VBA PDF (bezplatné sťahovanie)

Stiahnite si náš bezplatný návod Microsoft Word VBA! Alebo návody VBA pre iné programy balíka Office!

Stiahnuť ▼

Príklady programu Word VBA „CheatSheet“

Nasleduje jednoduché príklady kódu VBA pre prácu s programom Microsoft Word.

Vyberte / Prejsť na

PopisKód VBABackspaceSelection.TypeBackspaceVyberte položku Celý dokumentSelection.HomeKey Unit: = wdStory
Výber. PredĺžiťKopírovaťVýber. KopírovaťVymazaťSelection.Delete Unit: = wdCharacter, Count: = 1Vložiť poSelection.InsertAfter "text"Začiatok linkySelection.HomeKey Unit: = wdLineKoniec riadkuSelection.EndKey Unit: = wdLinePrilepiťVýber. PrilepiťVybrať všetkoVýber. Celá históriaVyberte položku Celý riadokSelection.EndKey Unit: = wdLine, Extend: = wdExtendPosunúť odsek vyššieJednotka Selection.MoveUp: = wdParagraf, počet: = 1Posunúť jednu postavu dopravaSelection.MoveRight Unit: = wdCharacter, Count: = 1Posunúť v tabuľke o jednu bunku dopravaSelection.MoveRight Unit: = wdCellPrejsť na začiatok DocSelection.HomeKey Unit: = wdStoryPrejsť na koniec dokumentu DocSelection.EndKey Unit: = wdStoryPrejdite na stránku 1Selection.GoTo What: = wdGoToPage, ktorý: = wdGoToNext, názov: = ”1 ″Prejdite na začiatok stránkySelection.GoTo What: = wdGoToBookmark, názov: = ”\ Page”
Selection.MoveLeft Unit: = wdCharacter, Count: = 1

Návrat hore

Záložky

PopisKód VBAPridaťS ActiveDocument.Bookmarks
.Pridať rozsah: = Výber.Rozsah, Názov: = "Názov"
.DefaultSorting = wdSortByName
.ShowHidden = False
Ukončiť sGrófDim n ako celé číslo
n = ActiveDocument.Bookmarks.CountVymazaťActiveDocument.Bookmarks („BookmarkName“). OdstrániťExistuje?Ak ActiveDocument.Bookmarks.Exists („BookmarkName“) = True then
'Urob niečo
Koniec AkÍsť doSelection.GoTo What: = wdGoToBookmark, Názov: = ”BookmarkName”VyberteActiveDocument.Bookmarks („BookmarkName“). VyberteNahradiť textSelection.GoTo What: = wdGoToBookmark, Názov: = ”BookmarkName”
Selection.Delete Unit: = wdCharacter, Count: = 1
Selection.InsertAfter "New Text"
ActiveDocument.Bookmarks.Add Range: = Selection.Range, _
Name: = ”BookmarkName”

Návrat hore

Dokument

PopisKód VBAAktivovaťDokumenty („Example.doc“). AktivujtePridať do premennejDim doc Ako dokument
Nastaviť doc = Documents.AddPridaťDokumenty. PridaťPridať (z iného dokumentu)Documents.Add Template: = ”C: \ Forms \ FormDoc.doc”, _
NewTemplate: = FalseZavrieťDokumenty („Example.doc“). ZatvorteZavrieť - Uložiť zmenyDokumenty („Example.doc“). Zatvorte SaveChanges: = wdSaveChangesZavrieť - NeukladaťDokumenty („Example.doc“). Zatvorte SaveChanges: = wdDoNotSaveChangesZavrieť - výzva na uloženieDokumenty („Example.doc“). Zatvorte SaveChanges: = wdPromptToSaveChanges

Návrat hore

Stĺpce

PopisKód VBAUložiť akoDokumenty („Example.doc“). SaveAs („C: \ Example \ Example.doc“)UložiťDokumenty („Example.doc“). UložteChrániťDokumenty („Example.doc“). Chráňte heslo: = „heslo“Zrušiť ochranuDokumenty („Example.doc“). Heslo bez ochrany: = „heslo“Počet stránDim varNumberPages ako variant
varNumberPages = _
ActiveDocument.Content.Information (wdActiveEndAdjustedPageNumber)VytlačiťDokumenty („Example.doc“)

Návrat hore

Ste unavení z hľadania príkladov kódu VBA? Skúste AutoMacro!

Písmo

PopisKód VBAVeľkosťSelection.Font.Size = 12OdvážneSelection.Font.Bold = TrueKurzívaSelection.Font.Italic = TrueZdôrazniťSelection.Font.Underline = wdUnderlineSingleVšetky čiapkySelection.Font.AllCaps = TrueFarbaSelection.Font.TextColor = vbRednázovSelection.Font.Name = „Abadi“Dolný indexSelection.Font.Subscript = TrueSuperScriptSelection.Font.Superscript = TrueZvýraznite farbuSelection.Range.HighlightColorIndex = wdŽltáŠtýlSelection.Style = ActiveDocument.Styles („normálne“)

Návrat hore

Vložiť

PopisKód VBAVložte automatický textSelection.TypeText Text: = ”a3 ″
Selection.Range.InsertAutoTextVložte kód dátumuVložiť súborSelection.InsertFile („C: \ Docs \ Something.doc“)Vložte zlom stranySelection.InsertBreak Typ: = wdPageBreakVložiť symbol odsekuSelection.TypeText Text: = Chr $ (182)Vložiť tabSelection.TypeText Text: = vbTabVložiť textSelection.TypeText Text: = „Akýkoľvek text“Vložiť typový odsekSelection.TypeParagraphVložiť odsekVýber. Vložiť odsek

Návrat hore

Slučky

PopisKód VBARobiť do konca DocDo Do ActiveDocument.Bookmarks (“\ Sel”) = ActiveDocument.Bookmarks (“\ EndOfDoc”)
'Urob niečo
SubPre každého dokument v dokumenteDim doc Ako dokument
Každý dokument v dokumentoch
'Urob niečo
Ďalej docOpakujte odsekySub prostredníctvom odsekov
Dim i As Long, iParCount tak dlho
iParCount = ActiveDocument.Paragraphs.CountFori = 1 Do iParCount
ActiveDocument.Paragraphs (i). Alignment = wdAlignParagraphLeft
Ďalej i

Návrat hore

Odstavec

PopisKód VBAKeepLinesTogetherSelection.ParagraphFormat.KeepTogether = TrueKeepWithNextSelection.ParagraphFormat.KeepWithNext = TrueVesmír poSelection.ParagraphFormat.SpaceAfter = 12Vesmír predtýmSelection.ParagraphFormat.SpaceBefore = 0Zarovnávacie centrumSelection.ParagraphFormat.Alignment = wdAlignParagraphCenterZarovnať dopravaSelection.ParagraphFormat.Alignment = wdAlignParagraphRightZarovnať doľavaSelection.ParagraphFormat.Alignment = wdAlignParagraphLeftĽavá zarážkaSelection.ParagraphFormat.LeftIndent = InchesToPoints (3,75)Správna zarážkaSelection.ParagraphFormat.RightIndent = InchesToPoints (1)RiadkovanieS Selection.ParagraphFormat
.LineSpacingRule = wdLineSpaceExactly
.LineSpacing = 12
Ukončiť sZopakujte všetky odsekySub prostredníctvom odsekov
Dim i As Long, iParCount tak dlho
iParCount = ActiveDocument.Paragraphs.CountFori = 1 Do iParCount
ActiveDocument.Paragraphs (i). Alignment = wdAlignParagraphLeft
Ďalej i

Návrat hore

Výukový program makra Word VBA

Toto je návod na používanie jazyka VBA v programe Microsoft Word. Tento tutoriál vás naučí písať jednoduché makro a pracovať s dokumentmi, rozsahmi, výbermi a odsekmi.

Poznámka: Ak ste v makrách / VBA úplným nováčikom, môže sa vám hodiť aj tento článok: Ako písať makrá VBA od začiatku.

VBA je programovací jazyk používaný na automatizáciu programov balíka Microsoft Office vrátane programov Word, Excel, Outlook, PowerPoint a Access.

Makrá sú bloky kódu VBA, ktoré vykonávajú konkrétne úlohy.

Keď ty Nahrajte makro, Word zapíše kód VBA do makra, čo vám umožní zopakovať svoje akcie. Môžete si zobraziť zoznam všetkých dostupných makier z Zobraziť> Makrá.

Po zaznamenaní makra budete môcť makro upravovať zo zoznamu makier:

Keď kliknete Upraviť, otvoríte Editor VBA. Pomocou editora VBA môžete upravovať zaznamenané makrá alebo písať makrá programu Word od začiatku. K editoru VBA sa dostanete pomocou skratky ALT + F11 alebo klikni Visual Basic z Vývojárska stuha.

Jednoduché makro makra programu Word

Toto je jednoduchý príklad makra Word VBA. Vykonáva nasledujúce úlohy:

  • Otvára dokument programu Word
  • Zapisuje sa do dokumentu
  • Zatvorí a uloží dokument programu Word.
123456789101112131415 Sub WordMacroPriklad ()„Otvoriť dokument a priradiť ho k premennejDim oDoc ako dokumentNastaviť oDoc = Documents.Open ("c: \ Users \ someone \ NewDocument.docx")'Napíšte pánovi DocSelection.TypeText "www.automateexcel.com"Selection.TypeParagraph'Uložiť a zavrieť DocoDoc.SaveoDoc.ZavrieťKoniec pod

Základy makra programu Word

Všetok kód VBA musí byť uložený v rámci týchto procedúr. Ak chcete vytvoriť postup vo VBA, zadajte „Sub WordMacroExample“ (kde „WordMacroExample“ je požadovaný názov makra) a stlačte VSTÚPIŤ. VBA automaticky pridá zátvorky a End Sub.

Objekt dokumentu programu Word

Pri interakcii s programom Microsoft Word vo VBA budete často odkazovať na „objekty“ programu Word. Najbežnejšími predmetmi sú:

Objekt aplikácie - Microsoft Word sám

Objekt dokumentu - Dokument programu Word

Objekt dosahu - Časť dokumentu programu Word

Objekt výberu - Vybratý rozsah alebo umiestnenie kurzora.

Aplikácia

Aplikácia je objektom „najvyššej úrovne“. Prostredníctvom neho je možné dosiahnuť všetky ostatné objekty v programe Word.

Okrem prístupu k iným objektom programu Word je možné použiť aj nastavenia na úrovni „aplikácie“:

1 Application.Options.AllowDragAndDrop = True

Toto je príklad prístupu k „výberu“ systému „Windows (1)“ pomocou aplikácie:

1 Aplikácia. Windows (1). Výber. Znaky. Počet

K najbežnejším objektom programu Word je však možné pristupovať priamo bez zadávania úplnej hierarchie. Namiesto toho teda môžete (a mali by ste) napísať:

1 Výber. Postavy. Počet

Dokumenty

ActiveDocument

Často budete mať v programe Word otvorený dva alebo viac dokumentov a budete musieť zadať, s ktorým konkrétnym dokumentom Word máte pracovať. Jeden zo spôsobov, ako určiť, ktorý dokument sa má použiť ActiveDocument. Napríklad:

1 ActiveDocument.PrintOut

… Vytlačí ActiveDocument. ActiveDocument je dokument vo Worde, ktorý „má zameranie“

Ak chcete prepnúť ActiveDocument, použite príkaz Aktivovať:

1 Dokumenty ("Example.docx"). Aktivujte

Tento dokument

Namiesto použitia ActiveDocument na odkazovanie na aktívny dokument môžete použiť ThisDocument na odkaz na dokument, kde je uložené makro. Tento dokument sa nikdy nezmení.

1 ThisDocument.PrintOut

Premenné dokumentu

V prípade komplikovanejších makier však môže byť ťažké sledovať aktívny dokument. Tiež môže byť frustrujúce prepínať tam a späť medzi dokumentmi.

Namiesto toho môžete použiť premenné dokumentu.

Toto makro priradí ActiveDocument k premennej a potom vytlačí dokument pomocou premennej:

12345 Subvzorka ()Dim oDoc ako dokumentNastaviť oDoc = ActiveDocumentoDoc.PrintOutKoniec pod

Metódy dokumentu

Otvorte dokument

Otvorenie dokumentu programu Word:

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

Odporúčame vždy priradiť dokument k premennej pri jeho otvorení:

12 Dim oDoc ako dokumentNastaviť oDoc = Documents.Open ("c: \ Users \ SomeOne \ Desktop \ Test PM.docx")

Vytvoriť nový dokument

Vytvorenie nového dokumentu programu Word:

1 Dokumenty. Pridať

Môžeme inštruovať Word, aby vytvoril nový dokument na základe nejakej šablóny:

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

Ako vždy, je to užitočný a veľký pomocník pri riešení problémov, keď pri vytváraní alebo otváraní priradíte dokument k premennej:

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

Uložiť dokument

Uloženie dokumentu:

1 ActiveDocument.Save

alebo Uložiť ako:

1 ActiveDocument.SaveAs Názov súboru: = c: \ Users \ SomeOne \ Desktop \ test2.docx ", FileFormat: = wdFormatDocument

Zavrieť dokument

Zatvorenie dokumentu a uloženie zmien:

1 ActiveDocument.Close wdSaveChanges

alebo bez uloženia zmien:

1 ActiveDocument.Close wdDoNotSaveChanges

Vytlačiť dokument

Týmto sa aktívny dokument vytlačí:

1 ActiveDocument.PrintOut

Rozsah, výber, odseky

Rozsah a Výber sú pravdepodobne najdôležitejšie objekty v programe Word VBA, určite najpoužívanejšie.

Rozsah odkazuje na určitú časť dokumentu, zvyčajne, ale nie nevyhnutne, text.

Výber odkazuje na vybratý text (alebo iný objekt ako obrázky) alebo, ak nie je nič vybraté, bod vloženia.

Odseky predstavujú odseky v dokumente. Je to menej dôležité, ako to znie, pretože nemôžete pristupovať priamo k odstavcovému textu (na vykonanie úprav potrebujete prístup k určitému rozsahu odsekov).

Rozsah

Rozsah môže byť akákoľvek časť dokumentu vrátane celého dokumentu:

12 Dim oRange As RangeNastaviť oRange = ActiveDocument.Content

alebo môže byť malý ako jeden znak.

Ďalší príklad, tento rozsah by sa vzťahoval na prvé slovo v dokumente:

12 Dim oRange As RangeNastaviť oRange = ActiveDocument.Range.Words (1)

Obvykle by ste chceli získať rozsah, ktorý odkazuje na konkrétnu časť dokumentu, a potom ho upraviť.

V nasledujúcom príklade urobíme prvé slovo druhého odseku tučným písmom:

123 Dim oRange As RangeNastaviť oRange = ActiveDocument.Paragraphs (2) .Range.Words (1)oRange.Bold = Pravda

Nastaviť text rozsahu

Ak chcete nastaviť textovú hodnotu rozsahu:

123 Dim oRange As RangeNastaviť oRange = ActiveDocument.Paragraphs (2) .Range.Words (1)oRange.Text = „Dobrý deň“

(Tip: Všimnite si medzeru za „ahoj“. Pretože objekt Word obsahuje medzeru za slovom, iba „ahoj“ dostaneme „slovo hellonext“)

Existujú stovky vecí, ktoré môžete s rozsahmi robiť. Len niekoľko príkladov (tieto predpokladajú, že ste už urobili premennú objektu oRange podľa rozsahu záujmu):

Zmeniť písmo

1 oRange.Font.Name = "Arial"

V poli so správou sa zobrazí počet znakov v konkrétnom rozsahu

1 MsgBox oRange.Character.Count

Pred neho vložte nejaký text

1 oRange.InsertBefore "toto je vložený text"

Pridajte poznámku pod čiarou k rozsahu

12 ActiveDocument.Footnotes.Add Rozsah: = oRange, _Text: = "Prečítajte si viac na easyexcel.net."

Skopírujte ho do schránky

1234 oRange.CopyČasto je potrebné prejsť na konkrétny rozsah, ktorý odkazuje. Takže môžete začať, začať a skončiťoRange.Start = 5oRange.End = 50

Za vyššie uvedeným kódom by oRange odkazoval na text začínajúci piatym a končiacim 50. znakom v dokumente.

Výber

Výber je ešte širšie používaný ako Rozsah, pretože s tým sa pracuje jednoduchšie Výbery než Rozsahy, AK LEN vaše makro interaguje s dokumentom ActiveDocument.

Najprv vyberte požadovanú časť dokumentu. Vyberte napríklad druhý odsek v aktívnom dokumente:

1 ActiveDocument. Odseky (2). Rozsah. Vyberte

Potom môžete pomocou Objektu výberu napísať nejaký text:

1 Selection.TypeText "Nejaký text"

Nasledujúce odseky môžeme napísať pod „Niektorý text“:

12 Selection.TypeText "Nejaký text"Selection.TypeParagraph

Často je potrebné vedieť, či je vybratý nejaký text alebo máme iba kurzor:

12345 If Selection.Type wdSelectionIP ThenSelection.Font.Bold = TrueInakMsgBox „Musíte vybrať nejaký text.“Koniec Ak

Pri práci s objektom Selection chceme umiestniť kurzor na konkrétne miesto a vydávať príkazy začínajúce od tohto bodu.

Začiatok dokumentu:

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

Začiatok aktuálneho riadku:

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

Parameter rozšírenia wdMove presunie kurzor. Namiesto toho môžete použiť wdExtend, ktorý vyberie všetok text medzi aktuálnym kurzorom.

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

Presunúť výber

Najužitočnejšou metódou na zmenu polohy bodu vloženia je Move. Ak chcete posunúť výber o dva znaky dopredu:

1 Selection.Move Unit: = wdCharacter, Count: = 2

Ak ho chcete posunúť dozadu, použite záporné číslo pre parameter Počet:

1 Jednotka výberu. Pohyb: = wdCharacter, Count: =-2

Parametrom jednotky môže byť wdCharacter, wdWord, wdLine alebo ďalšie (na zobrazenie ostatných použite pomocníka programu Word VBA).

Ak chcete namiesto toho presunúť slová:

1 Selection.Move unit: = wdWord, Count: = 2

S výberom sa pracuje jednoduchšie (v porovnaní s rozsahmi), pretože je to ako robot s programom Word, ktorý napodobňuje ľudského používateľa. Kde je bod vloženia - vykonala by sa nejaká akcia. To však znamená, že musíte dávať pozor, kde je bod vloženia! Po mnohých krokoch v kóde to nie je jednoduché. V opačnom prípade program Word zmení text na požadovanom mieste.

V prípade, že potrebujete nejakú vlastnosť alebo metódu, ktorá nie je k dispozícii v objekte Výber, môžete vždy ľahko získať rozsah spojený s výberom:

1 Nastaviť oRange = Selection.Range

TIP: Použitie Výber je často jednoduchšie ako používať rozsahy, ale je aj oveľa pomalšie (dôležité pri práci s veľkými dokumentmi)

Odseky

Na zmenu textu nemôžete priamo použiť objekt Odseky:

1 ActiveDocument.Paragraphs (1) .Text = "Nie, to by nefungovalo"

Hore by to nefungovalo (v skutočnosti to spôsobí chybu). Najprv musíte získať rozsah spojený s konkrétnym odsekom:

1 ActiveDocument.Paragraphs (1) .Range.Text = "Teraz to funguje :)"

Môžete však priamo zmeniť jeho štýl:

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

alebo zmeniť formátovanie na úrovni odseku:

1 ActiveDocument.Paragraphs (1). LeftIndent = 10

alebo možno chcete, aby bol tento odsek na rovnakom riadku ako nasledujúci odsek:

1 ActiveDocument.Paragraphs (1) .KeepWithNext = True

Upraviť odsek na stred:

1 ActiveDocument.Paragraphs (1). Alignment = wdAlignParagraphCenter

Je VEĽMI užitočné priradiť konkrétny odsek objektovej premennej. Ak priradíme konkrétny odsek k premennej, nemusíme si robiť starosti, ak sa prvý odsek stane druhým, pretože sme pred neho vložili jeden odsek:

12 dim oPara ako odsekNastavte oPara = Selection.Paragrafy (1) „tu priradíme premennej prvý odsek aktuálneho výberu

Tu je príklad, kde vložíme odsek nad prvý odsek, ale stále môžeme odkazovať na starý prvý odsek, pretože bol priradený k premennej:

1234567 Pododsek Príklad ()Dim oPara ako odsekNastaviť oPara = ActiveDocument. Odseky (1)MsgBox oPara.Range.TextoPara.Range.InsertParagraphBefore 'Vložiť odsekMsgBox oPara.Range.TextKoniec pod

Objekt odseku sa veľmi často používa v slučkách:

123456789101112 Sub LoopThroughParagrafy ()Dim oPara ako odsekZa každú oParu v ActiveDocument.Paragrafy'urob s tým niečo. Budeme iba zobrazovať'odsek text, ak má štýl „Nadpis 4“Ak oPara.Style = "Nadpis 4" PotomMsgBox oPara.Range.TextKoniec AkNabudúce oParaKoniec pod

Záver z výukového programu Word VBA

Tento tutoriál sa zaoberal základmi programu Word VBA. Ak ste vo VBA nový, mali by ste si tiež prečítať náš všeobecný návod VBA, aby ste sa dozvedeli viac o premenných, slučkách, schránkach správ, nastaveniach, podmienenej logike a oveľa viac.

Príklady makra programu Word

Príklady makra programu Word
Šablóny
Pridajte nové dokumenty
Počítajte slová pri výbere
Textové boxy
Uložiť ako PDF
Záložky
Tabuľky
Nájsť a nájsť a nahradiť
Otvorené dokumenty

Časté otázky o programe Word VBA

Čo je to Word makro?

Makro je všeobecný termín, ktorý označuje súbor programovacích pokynov, ktoré automatizujú úlohy. Word Macros automatizuje úlohy vo Worde pomocou programovacieho jazyka VBA.

Má slovo VBA?

Áno, Microsoft Word má editor VBA. Prístup k nemu získate stlačením klávesov ALT + F11 alebo prechodom na položku Vývojár> Visual Basic.

Ako môžem používať VBA v programe Word?

1. Otvorte editor VBA (ALT + F11 alebo Developer> Visual Basic)
2. Prejdite na položku Vložiť> Modul a vytvorte modul kódu
3. Napíšte „Sub HelloWorld“ a stlačte kláves Enter
4. Medzi riadky „Sub HelloWorld“ a „End Sub“ zadajte „MsgBox“ Hello World! “
5. Vytvorili ste makro!
6. Teraz stlačením „F5“ spustíte makro

wave wave wave wave wave