Vitajte v našom veľkom sprievodcovi Word VBA / makrá!
Táto stránka obsahuje:
-
- Výukový program Word VBA PDF (bezplatné stiahnutie)
- „Cheat Sheet“ programu Word VBA obsahujúci zoznam najčastejšie používaných úryvkov kódu Word VBA
- Úplný tutoriál Word VBA / Makro.
- 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: = wdStoryVý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 dokumentNastaviť 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 variantvarNumberPages = _
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