Příklady makra aplikace Word a výukový program VBA

Vítejte v našem velkém průvodci Word VBA / Macros!

Tato stránka obsahuje:

    1. Word VBA Tutorial PDF (bezplatné stažení)
    2. „Cheat Sheet“ aplikace Word VBA obsahující seznam nejčastěji používaných úryvků kódu aplikace Word VBA
    3. Úplný výukový program Word VBA / Makro.
    4. Prohledávatelný seznam všech našich výukových programů pro makra Word VBA

Také by vás mohlo zajímat náš interaktivní výukový program VBA pro Excel. Zatímco některé příklady / cvičení jsou specifické pro Excel VBA, velká část obsahu je obecná pro všechny VBA a může být užitečné naučit se pojmy jako If Statements, Loops, MessageBoxes a další.

VBA PDF (bezplatné stahování)

Stáhněte si zdarma výukový program Microsoft Word VBA! Nebo výukové programy VBA pro jiné programy Office!

Stažení

Příklady aplikace Word VBA „CheatSheet“

Níže najdete jednoduché příklady kódu VBA pro práci s aplikací Microsoft Word.

Vyberte / Přejít na

PopisKód VBABackspaceSelection.TypeBackspaceVyberte Celý dokumentSelection.HomeKey Unit: = wdStory
Výběr. ProdloužitkopírovatVýběr. KopírovatVymazatSelection.Delete Unit: = wdCharacter, Count: = 1Vložit zaSelection.InsertAfter „text“Začátek řádkuSelection.HomeKey Unit: = wdLineKonec čárySelection.EndKey Unit: = wdLineVložitVýběr. VložitVybrat všeVýběr. Celá zprávaVyberte Celý řádekSelection.EndKey Unit: = wdLine, Extend: = wdExtendPřesunout odstavec nahoruSelection.MoveUp Unit: = wdParagraph, Count: = 1Přesunout jednu postavu dopravaSelection.MoveRight Unit: = wdCharacter, Count: = 1Přesunout vpravo jednu buňku v tabulceSelection.MoveRight Unit: = wdCellPřejít na začátek DocSelection.HomeKey Unit: = wdStoryPřejít na konec DocSelection.EndKey Unit: = wdStoryPřejít na stránku 1Selection.GoTo What: = wdGoToPage, which: = wdGoToNext, Name: = ”1 ″Přejít na začátek stránkySelection.GoTo What: = wdGoToBookmark, Název: = ”\ Page”
Selection.MoveLeft Unit: = wdCharacter, Count: = 1

Návrat nahoru

Záložky

PopisKód VBAPřidatS ActiveDocument.Bookmarks
.Add Range: = Selection.Range, Name: = ”Name”
.DefaultSorting = wdSortByName
.ShowHidden = False
Konec sPočetDim n jako Integer
n = ActiveDocument.Bookmarks.CountVymazatActiveDocument.Bookmarks („BookmarkName“). OdstranitExistuje?Pokud ActiveDocument.Bookmarks.Exists („BookmarkName“) = True, pak
'Dělej něco
Konec IfJít doSelection.GoTo What: = wdGoToBookmark, Název: = ”BookmarkName”VybratActiveDocument.Bookmarks („BookmarkName“). VyberteNahradit textSelection.GoTo What: = wdGoToBookmark, Název: = ”BookmarkName”
Selection.Delete Unit: = wdCharacter, Count: = 1
Selection.InsertAfter "New Text"
ActiveDocument.Bookmarks.Add Range: = Selection.Range, _
Název: = ”BookmarkName”

Návrat nahoru

Dokument

PopisKód VBAaktivovatDokumenty („Example.doc“). AktivujtePřidat do proměnnéDim doc As Document
Nastavit doc = Documents.AddPřidatDocuments.AddPřidat (z jiného dokumentu)Documents.Add Template: = ”C: \ Forms \ FormDoc.doc”, _
NewTemplate: = FalseZavřítDokumenty („Example.doc“). ZavřeteZavřít - Uložit změnyDokumenty („Example.doc“). Zavřete SaveChanges: = wdSaveChangesZavřít - NeukládatDokumenty („Example.doc“). Zavřete SaveChanges: = wdDoNotSaveChangesZavřít - výzva k uloženíDokumenty („Example.doc“). Zavřete SaveChanges: = wdPromptToSaveChanges

Návrat nahoru

Sloupce

PopisKód VBAUložit jakoDokumenty („Example.doc“). SaveAs („C: \ Example \ Example.doc“)UložitDokumenty („Example.doc“). UložitChránitDokumenty („Example.doc“). Chránit heslo: = „heslo“Zrušte ochranuDokumenty („Example.doc“). Heslo UnProtect: = ”heslo“Počet stranDim varNumberPages jako variantu
varNumberPages = _
ActiveDocument.Content.Information (wdActiveEndAdjustedPageNumber)TiskDokumenty („Example.doc“). Tisk

Návrat nahoru

Už vás nebaví hledat příklady kódu VBA? Zkuste AutoMacro!

Písmo

PopisKód VBAVelikostSelection.Font.Size = 12tučněSelection.Font.Bold = TrueKurzívaSelection.Font.Italic = TrueZdůraznitSelection.Font.Underline = wdUnderlineSingleVšechny čepiceSelection.Font.AllCaps = TrueBarvaSelection.Font.TextColor = vbRednázevSelection.Font.Name = „Abadi“Dolní indexSelection.Font.Subscript = TrueSuperScriptSelection.Font.Superscript = TrueZvýrazněte barvuSelection.Range.HighlightColorIndex = wdŽlutáStylSelection.Style = ActiveDocument.Styles („normální“)

Návrat nahoru

Vložit

PopisKód VBAVložte automatický textSelection.TypeText Text: = ”a3 ″
Selection.Range.InsertAutoTextVložte kód dataVložit souborSelection.InsertFile („C: \ Docs \ Something.doc“)Vložte konec stránkySelection.InsertBreak Typ: = wdPageBreakVložit symbol odstavceSelection.TypeText Text: = Chr $ (182)Vložit tabSelection.TypeText Text: = vbTabVložit textSelection.TypeText Text: = „Libovolný text“Vložte typový odstavecVýběr. TypParagrafVložit odstavecVýběr. VložitParagraf

Návrat nahoru

Smyčky

PopisKód VBADo Do konce DocDo Do ActiveDocument.Bookmarks („\ Sel“) = ActiveDocument.Bookmarks („\ EndOfDoc“)
'Dělej něco
SubPro každý dokument v dokumentechDim doc As Document
ForEach doc v dokumentech
'Dělej něco
Další docSmyčka přes odstavceDílčí odstavce
Dim i As Long, iParCount As Long
iParCount = ActiveDocument.Paragraphs.CountFori = 1 Do iParCount
ActiveDocument.Paragraphs (i) .Alignment = wdAlignParagraphLeft
Příště já

Návrat nahoru

Odstavec

PopisKód VBAKeepLinesSpolečněSelection.ParagraphFormat.KeepTogether = TrueKeepWithNextSelection.ParagraphFormat.KeepWithNext = TrueVesmír poSelection.ParagraphFormat.SpaceAfter = 12Vesmír předSelection.ParagraphFormat.SpaceBefore = 0Zarovnat centrumSelection.ParagraphFormat.Alignment = wdAlignParagraphCenterZarovnat dopravaSelection.ParagraphFormat.Alignment = wdAlignParagraphRightZarovnat dolevaSelection.ParagraphFormat.Alignment = wdAlignParagraphLeftOdsazení vlevoSelection.ParagraphFormat.LeftIndent = InchesToPoints (3,75)Pravá odrážkaSelection.ParagraphFormat.RightIndent = InchesToPoints (1)ŘádkováníS Selection.ParagraphFormat
.LineSpacingRule = wdLineSpaceExactly
.LineSpacing = 12
Konec sProjděte všechny odstavceDílčí odstavce
Dim i As Long, iParCount As Long
iParCount = ActiveDocument.Paragraphs.CountFori = 1 Do iParCount
ActiveDocument.Paragraphs (i) .Alignment = wdAlignParagraphLeft
Příště já

Návrat nahoru

Výukový program makra Word VBA

Toto je návod k použití jazyka VBA v aplikaci Microsoft Word. Tento tutoriál vás naučí psát jednoduché makro a pracovat s dokumenty, rozsahy, výběry a odstavci.

Poznámka: Pokud jste v makrech / VBA úplně noví, může se vám hodit také tento článek: Jak psát makra VBA od začátku.

VBA je programovací jazyk používaný k automatizaci programů Microsoft Office včetně Word, Excel, Outlook, PowerPoint a Access.

Makra jsou bloky kódu VBA, které provádějí konkrétní úkoly.

Když vás Zaznamenejte si makro, Word zapíše kód VBA do makra, což vám umožní opakovat vaše akce. Můžete zobrazit seznam všech dostupných maker z Zobrazit> Makra.

Po zaznamenání makra budete moci makro upravit ze seznamu maker:

Když kliknete Upravit, otevřete Editor VBA. Pomocí editoru VBA můžete upravovat zaznamenaná makra nebo psát makra aplikace Word od začátku. K editoru VBA se dostanete pomocí zástupce ALT + F11 nebo klikněte Visual Basic z Vývojářská stuha.

Jednoduchý příklad makra Word

Toto je jednoduchý příklad makra Word VBA. Provádí následující úkoly:

  • Otevře dokument aplikace Word
  • Zapisuje do dokumentu
  • Zavře a uloží dokument aplikace Word.
123456789101112131415 Sub WordMacroExample ()'Otevřít Doc & Přiřadit proměnnéDim oDoc jako dokumentNastavit oDoc = Documents.Open ("c: \ Users \ someone \ NewDocument.docx")'Napište DocSelection.TypeText "www.automateexcel.com"Výběr. TypParagraf'Uložit a zavřít DocoDoc.SaveoDoc.ZavřítEnd Sub

Základy makra aplikace Word

Veškerý kód VBA musí být uložen v rámci procedur, jako je tento. Chcete -li vytvořit postup ve VBA, zadejte „Sub WordMacroExample“ (kde „WordMacroExample“ je název požadovaného makra) a stiskněte VSTUP. VBA automaticky přidá závorku a End Sub.

Objekt dokumentu aplikace Word

Při interakci s aplikací Microsoft Word ve VBA budete často odkazovat na „objekty“ aplikace Word. Nejběžnějšími objekty jsou:

Objekt aplikace - Microsoft Word sám

Objekt dokumentu - Dokument aplikace Word

Objekt rozsahu - Část dokumentu aplikace Word

Objekt výběru - Vybraný rozsah nebo umístění kurzoru.

aplikace

Aplikace je objekt „nejvyšší úrovně“. Prostřednictvím něj lze dosáhnout na všechny ostatní objekty ve Wordu.

Kromě přístupu k dalším objektům aplikace Word lze použít také nastavení „na úrovni aplikace“:

1 Application.Options.AllowDragAndDrop = True

Toto je příklad přístupu k „výběru“ systému „Windows (1)“ pomocí aplikace:

1 Application.Windows (1) .Selection.Characters.Count

K nejběžnějším objektům aplikace Word je však možné přistupovat přímo, aniž byste museli psát celou hierarchii. Místo toho tedy můžete (a měli byste) napsat:

1 Výběr. Znaky. Počet

Dokumenty

ActiveDocument

Často budete mít ve Wordu otevřeny dva nebo více dokumentů a budete muset určit, se kterým konkrétním dokumentem Word máte komunikovat. Jedním ze způsobů, jak určit, který dokument je použít ActiveDocument. Například:

1 ActiveDocument.PrintOut

… Vytiskne ActiveDocument. ActiveDocument je dokument ve Wordu, který „má fokus“

Chcete -li přepnout ActiveDocument, použijte příkaz Aktivovat:

1 Dokumenty („Example.docx“). Aktivujte

Tento dokument

Místo použití ActiveDocument k odkazu na aktivní dokument můžete použít ThisDocument k odkazu na dokument, kde je uloženo makro. Tento dokument se nikdy nezmění.

1 ThisDocument.PrintOut

Proměnné dokumentu

U složitějších maker však může být obtížné sledovat aktivní dokument. Také může být frustrující přepínat tam a zpět mezi dokumenty.

Místo toho můžete použít proměnné dokumentu.

Toto makro přiřadí ActiveDocument proměnné a poté vytiskne dokument pomocí proměnné:

12345 Podřízený příklad ()Dim oDoc jako dokumentNastavit oDoc = ActiveDocumentoDoc.PrintOutEnd Sub

Metody dokumentu

Otevřít dokument

Otevření dokumentu aplikace Word:

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

Při otevírání doporučujeme vždy přiřadit dokument proměnné:

12 Dim oDoc jako dokumentNastavit oDoc = Documents.Open ("c: \ Users \ SomeOne \ Desktop \ Test PM.docx")

Vytvořit nový dokument

Chcete -li vytvořit nový dokument aplikace Word:

1 Documents.Add

Můžeme dát Wordu pokyn, aby vytvořil nový dokument na základě nějaké šablony:

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

Jako vždy je užitečné a obrovské spořič problémů přiřadit dokument proměnné při vytváření nebo otevírání:

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

Uložit dokument

Uložení dokumentu:

1 ActiveDocument.Save

nebo SaveAs:

1 ActiveDocument.SaveAs Název souboru: = c: \ Users \ SomeOne \ Desktop \ test2.docx ", FileFormat: = wdFormatDocument

Zavřít dokument

Zavření dokumentu a uložení změn:

1 ActiveDocument.Close wdSaveChanges

nebo bez uložení změn:

1 ActiveDocument.Close wdDoNotSaveChanges

Tisk dokumentu

Tím se vytiskne aktivní dokument:

1 ActiveDocument.PrintOut

Rozsah, výběr, odstavce

Rozsah a Výběr jsou pravděpodobně nejdůležitějšími objekty ve Wordu VBA, určitě nejpoužívanějšími.

Rozsah odkazuje na určitou část dokumentu, obvykle, ale ne nutně, text.

Výběr odkazuje na vybraný text (nebo jiný objekt jako obrázky) nebo, pokud není nic vybráno, bod vložení.

Odstavce představují odstavce v dokumentu. Je to méně důležité, než to zní, protože nemůžete přistupovat přímo k odstavcovému textu (k provedení úprav potřebujete přístup k určitému rozsahu odstavců).

Rozsah

Rozsah může být jakákoli část dokumentu, včetně celého dokumentu:

12 Dim oRange As RangeNastavte oRange = ActiveDocument.Content

nebo může být malý jako jeden znak.

Další příklad, tento rozsah by odkazoval na první slovo v dokumentu:

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

Obvykle byste chtěli získat rozsah, který odkazuje na konkrétní část dokumentu, a poté jej upravit.

V následujícím příkladu označíme první slovo druhého odstavce tučně:

123 Dim oRange As RangeNastavit oRange = ActiveDocument.Paragraphs (2) .Range.Words (1)oRange.Bold = True

Nastavit text rozsahu

Chcete -li nastavit textovou hodnotu rozsahu:

123 Dim oRange As RangeNastavit oRange = ActiveDocument.Paragraphs (2) .Range.Words (1)oRange.Text = „Dobrý den“

(Tip: Všimněte si mezery za „ahoj“. Protože objekt Word obsahuje mezeru za slovem, při pouhém „ahoj“ bychom dostali „slovo Hellonext“)

Existují stovky věcí, které můžete s rozsahy dělat. Jen několik příkladů (tyto předpokládají, že jste již vytvořili objektovou proměnnou oranžový podle rozsahu zájmu):

Změnit písmo

1 oRange.Font.Name = "Arial"

Zobrazí v poli zprávy počet znaků v konkrétním rozsahu

1 MsgBox oRange.Character.Count

Před něj vložte nějaký text

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

Přidejte do poznámky poznámku pod čarou

12 ActiveDocument.Footnotes.Add Rozsah: = oRange, _Text: = "Přečtěte si více na easyexcel.net."

Zkopírujte jej do schránky

1234 oRange.CopyČasto je třeba přejít na konkrétní rozsah, který odkazuje. Takže můžete začít, začít a skončitoRange.Start = 5oRange.End = 50

Po výše uvedeném kódu by oRange odkazoval na text začínající pátým a končícím 50. znakem v dokumentu.

Výběr

Výběr je ještě rozšířenější než Rozsah, protože se s ním snáze pracuje Výběry než Rozsahy, POKUD vaše makro POUZE interaguje s ActiveDocumentem.

Nejprve vyberte požadovanou část dokumentu. Vyberte například druhý odstavec v aktivním dokumentu:

1 ActiveDocument.Paragraphs (2) .Range.Select

Potom můžete použít Selekční objekt k napsání nějakého textu:

1 Selection.TypeText "Nějaký text"

Můžeme napsat několik odstavců pod „Nějaký text“:

12 Selection.TypeText "Nějaký text"Výběr. TypParagraf

Často je nutné vědět, zda je vybrán nějaký text nebo máme pouze kurzor:

12345 If Selection.Type wdSelectionIP ThenSelection.Font.Bold = TrueJinýMsgBox "Musíte vybrat nějaký text."Konec If

Při práci s objektem Selection chceme umístit kurzor na konkrétní místo a vydávat příkazy začínající od tohoto bodu.

Začátek dokumentu:

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

Začátek aktuálního řádku:

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

Parametr Rozšířit wdMove přesune kurzor. Místo toho můžete použít wdExtend, který vybere veškerý text mezi aktuálním kurzorem.

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

Přesunout výběr

Nejužitečnější metodou pro změnu polohy vkládacího bodu je Move. Chcete -li přesunout výběr o dvě postavy dopředu:

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

Chcete -li jej přesunout zpět, použijte záporné číslo pro parametr Count:

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

Parametrem jednotky může být wdCharacter, wdWord, wdLine nebo více (pro zobrazení ostatních použijte nápovědu Word VBA).

Chcete -li místo toho přesunout slova:

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

Se selekcí se pracuje snáze (ve srovnání s rozsahy), protože je to jako robot využívající Word, napodobující lidského uživatele. Kde je bod vložení - proběhne nějaká akce. Ale to znamená, že musíte dávat pozor, kde je bod vložení! Po mnoha krocích v kódu to není snadné. Jinak by Word změnil text na požadovaném místě.

V případě, že potřebujete nějakou vlastnost nebo metodu, která není k dispozici v objektu Selection, můžete vždy snadno získat rozsah spojený s výběrem:

1 Nastavit oRange = Selection.Range

TIP: Používání Výběr je často jednodušší než používání rozsahů, ale také je mnohem pomalejší (důležité při práci s velkými dokumenty)

Odstavce

Objekt odstavců nemůžete přímo použít ke změně textu:

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

Výše by nefungovalo (ve skutečnosti to způsobí chybu). Nejprve musíte získat rozsah spojený s konkrétním odstavcem:

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

Ale můžete přímo změnit jeho styl:

1 ActiveDocument.Paragraphs (1) .Style = "Normální"

nebo změňte formátování na úrovni odstavce:

1 ActiveDocument.Paragraphs (1). LeftIndent = 10

nebo možná budete chtít ponechat tento odstavec na stejném řádku s následujícím odstavcem:

1 ActiveDocument.Paragraphs (1) .KeepWithNext = True

Nastavit odstavec na střed:

1 ActiveDocument.Paragraphs (1). Alignment = wdAlignParagraphCenter

Je VELMI užitečné přiřadit konkrétní odstavec proměnné objektu. Pokud proměnné přiřadíme konkrétní odstavec, nemusíme si dělat starosti, pokud se první odstavec stane druhým, protože jsme před něj vložili jeden odstavec:

12 dim oPara jako odstavecNastavte oPara = Selection.Paragraphs (1) ‘zde přiřadíme proměnné první odstavec aktuálního výběru

Zde je příklad, kdy vložíme odstavec nad první odstavec, ale stále můžeme odkazovat na starý první odstavec, protože byl přiřazen proměnné:

1234567 Dílčí odstavec Příklad ()Dim oPara jako odstavecNastavit oPara = ActiveDocument.Paragraphs (1)MsgBox oPara.Range.TextoPara.Range.InsertParagraphBefore 'Vložte odstavecMsgBox oPara.Range.TextEnd Sub

Objekt odstavce je velmi často používán ve smyčkách:

123456789101112 Sub LoopThroughParagraphs ()Dim oPara jako odstavecPro každou oParu v ActiveDocument.Paragraphs'udělej s tím něco. Pouze zobrazíme'odstavcový text, pokud má styl „Nadpis 4“Pokud oPara.Style = "Nadpis 4" PotomMsgBox oPara.Range.TextKonec IfDalší oParaEnd Sub

Závěr z výukového programu Word VBA

Tento tutoriál pokrýval základy aplikace Word VBA. Pokud jste ve VBA noví, měli byste si také přečíst náš obecný výukový program pro VBA, abyste se dozvěděli více o proměnných, smyčkách, blocích zpráv, nastaveních, podmíněné logice a mnoha dalších.

Příklady makra aplikace Word

Příklady makra aplikace Word
Šablony
Přidat nové dokumenty
Počítejte slova ve výběru
Textové boxy
Uložit jako PDF
Záložky
Tabulky
Najít a najít a vyměnit
Otevřete dokumenty

Word VBA Časté dotazy

Co je to Word Macro?

Makro je obecný termín, který odkazuje na sadu programovacích pokynů, které automatizují úkoly. Wordová makra automatizují úkoly ve Wordu pomocí programovacího jazyka VBA.

Má slovo VBA?

Ano, Microsoft Word má editor VBA. Lze k němu přistupovat stisknutím ALT + F11 nebo přechodem na Vývojář> Visual Basic.

Jak mohu použít VBA ve Wordu?

1. Otevřete editor VBA (ALT + F11 nebo Developer> Visual Basic)
2. Přejděte na Vložit> Modul a vytvořte modul kódu
3. Zadejte „Sub HelloWorld“ a stiskněte Enter
4. Mezi řádky „Sub HelloWorld“ a „End Sub“ zadejte „MsgBox“ Hello World!
5. Vytvořili jste makro!
6. Nyní stiskněte „F5“ pro spuštění makra

wave wave wave wave wave