Dobrodošli v našem Mega-vodniku Word VBA / makri!
Ta stran vsebuje:
-
- Word VBA Tutorial PDF (brezplačen prenos)
- Word VBA "Cheat Sheet", ki vsebuje seznam najpogosteje uporabljenih delčkov kode Word VBA
- Celotna Word VBA / Makro vadnica.
- Seznam vseh naših makro vadnic Word VBA
Morda vas bo zanimala tudi naša interaktivna vadnica VBA za Excel. Čeprav so nekateri primeri / vaje specifični za Excel VBA, je večina vsebine splošna za vse VBA in morda se vam bo zdelo koristno, da se naučite konceptov, kot so If Statements, Loops, MessageBoxes itd.
VBA PDF (brezplačni prenosi)
Prenesite naš brezplačni vadnik Microsoft Word VBA! Ali VBA vaje za druge pisarniške programe!
Prenesi
Primeri Word VBA "CheatSheet"
Spodaj boste našli preproste primere kode VBA za delo z Microsoft Wordom.
Izberite / Pojdi na
OpisKoda VBABackspaceSelection.TypeBackspaceIzberite Celoten dokumentIzbira. Enota HomeKey: = wdStoryIzbor.RazširiKopiratiIzbor.KopirajIzbrišiIzbor.Izbriši enoto: = wdCharacter, Count: = 1Vstavi poSelection.InsertAfter “text”Začetek linijeIzbira. Enota HomeKey: = wdLineKonec vrsticeIzbira. Enota ključa: = wdLinePrilepiIzbor.PastaIzberi vseIzbor. Celotna zgodbaIzberite Celotna vrsticaSelection.EndKey Unit: = wdLine, Extend: = wdExtendPremakni odstavek navzgorIzbira. Enota premikanja: = wdParagraph, Število: = 1Premakni se za en znak v desnoSelection.MoveRight Enota: = wdCharacter, Count: = 1Premakni eno celico desno v tabeliIzbira.Enoteka premikanja: = wdCellPojdi na začetek DocIzbira. Enota HomeKey: = wdStoryPojdi na konec DocIzbira.Enota ključa: = wdStoryPojdi na stran 1Selection.GoTo What: = wdGoToPage, Kateri: = wdGoToNext, Name: = ”1 ″Pojdi na vrh straniSelection.GoTo What: = wdGoToBookmark, Ime: = ”\ Stran”
Selection.MoveLeft Unit: = wdCharacter, Count: = 1
Nazaj na vrh
Zaznamki
OpisKoda VBADodajZ zaznamki ActiveDocument.Dodaj obseg: = Izbor.Range, Name: = ”Ime”
.DefaultSorting = wdSortByName
.ShowHidden = Napačno
Končaj sPreštejZatemni n kot celo število
n = ActiveDocument.Zaznaki.ŠteviloIzbrišiActiveDocument.Bookmarks (“BookmarkName”). IzbrišiAli obstaja?Če je ActiveDocument.Bookmarks.Exists (“BookmarkName”) = True, potem
'Naredi kaj
Konec ČePojdi doSelection.GoTo What: = wdGoToBookmark, Name: = ”Ime zaznamka”IzberiteActiveDocument.Bookmarks (“BookmarkName”). IzberiteZamenjaj besediloSelection.GoTo What: = wdGoToBookmark, Name: = ”Ime zaznamka”
Izbor.Izbriši enoto: = wdCharacter, Count: = 1
Selection.InsertAfter “New Text”
ActiveDocument.Bookmarks.Add Range: = Selection.Range, _
Name: = ”Ime zaznamka”
Nazaj na vrh
Dokument
OpisKoda VBAAktivirajDokumenti (»Primer.doc«). AktivirajteDodaj spremenljivkiDim doc kot dokumentNastavi doc = Dokumenti.DodajDodajDokumentiDodaj (iz drugega dokumenta)Documents.Add Template: = ”C: \ Forms \ FormDoc.doc”, _
NewTemplate: = FalseZapriDokumenti (»Primer.doc«). ZapriteZapri - Shrani spremembeDokumenti (»Primer.doc«). Zaprite Shrani spremembe: = wdSaveChangesZapri - ne shraniDokumenti (»Primer.doc«). Zaprite Shrani spremembe: = wdDoNotSaveChangesZapri - Poziv za shranjevanjeDokumenti (»Primer.doc«). Zaprite Shrani spremembe: = wdPromptToSaveChanges
Nazaj na vrh
Stolpci
OpisKoda VBAShrani kotDokumenti (»Primer.doc«). SaveAs (»C: \ Primer \ Primer.doc«)ShraniDokumenti (»Primer.doc«). ShraniZaščititiDokumenti (»Primer.doc«). Zaščita gesla: = »geslo«Odstrani zaščitoDokumenti (»Primer.doc«). Odstrani zaščito gesla: = »geslo«Število straniZatemni varNumberPages kot variantovarNumberPages = _
ActiveDocument.Content.Information (wdActiveEndAdjustedPageNumber)NatisniDokumenti (»Primer.doc«). Natisni
Nazaj na vrh
Utrujen od iskanja primerov kode VBA? Preizkusite AutoMacro!Pisava
OpisKoda VBAVelikostSelection.Font.Size = 12KrepkoSelection.Font.Bold = TrueKurzivSelection.Font.Italic = TruePodčrtajSelection.Font.Underline = wdUnderlineSingleVse kapeSelection.Font.AllCaps = TrueBarvaSelection.Font.TextColor = vbRedImeSelection.Font.Name = “Abadi”PodnapisSelection.Font.Subscript = TrueSuperScriptSelection.Font.Superscript = TrueBarva osvetlitveSelection.Range.HighlightColorIndex = wdYellowSlogSelection.Style = ActiveDocument.Styles ("Običajno")Nazaj na vrh
Vstavi
OpisKoda VBAVstavite samodejno besediloSelection.TypeText Text: = ”a3 ″Selection.Range.InsertAutoTextVstavite kodo datumaVstavi datotekoSelection.InsertFile (“C: \ Docs \ Something.doc”)Vstavi prelom straniSelection.InsertBreak Vrsta: = wdPageBreakVstavite simbol odstavkaIzbor. Besedilo vrste besedila: = Chr $ (182)Vstavi zavihekBesedilo vrste besedila besedila: = vbTabVstavi besediloSelection.TypeText Text: = ”poljubno besedilo”Vstavi odstavek vrsteSelection.TypeParagraphVstavi odstavekSelection.InsertParagraph
Nazaj na vrh
Zanke
OpisKoda VBANaredi do konca DocDo Do ActiveDocument.Bookmarks (“\ Sel”) = ActiveDocument. Bookmarks (“\ EndOfDoc”)'Naredi kaj
PodZa vsak dokument v DokumentihDim doc kot dokument
ForEach doc V dokumentih
'Naredi kaj
Naslednji docPrečrtajte odstavkePododstavki
Dim i As Long, iParCount As Long
iParCount = ActiveDocument.Paragraphs.CountFori = 1 Za iParCount
ActiveDocument.Paragraphs (i) .Alignment = wdAlignParagraphLeft
Naprej i
Nazaj na vrh
Odstavek
OpisKoda VBAKeepLinesTogetherSelection.ParagraphFormat.KeepTogether = TrueKeepWithNextSelection.ParagraphFormat.KeepWithNext = TrueSpace AfterSelection.ParagraphFormat.SpaceAfter = 12Vesolje prejSelection.ParagraphFormat.SpaceBefore = 0Center za poravnavoSelection.ParagraphFormat.Alignment = wdAlignParagraphCenterPoravnaj desnoSelection.ParagraphFormat.Alignment = wdAlignParagraphRightPoravnaj levoSelection.ParagraphFormat.Alignment = wdAlignParagraphLeftLevi zamikSelection.ParagraphFormat.LeftIndent = InchesToPoints (3,75)Desni zamikSelection.ParagraphFormat.RightIndent = InchesToPoints (1)Razmik med vrsticamiS funkcijo Selection.ParagraphFormat.LineSpacingRule = wdLineSpaceExactly
.LineSpacing = 12
Končaj sPrelistajte vse odstavkePododstavki
Dim i As Long, iParCount As Long
iParCount = ActiveDocument.Paragraphs.CountFori = 1 Za iParCount
ActiveDocument.Paragraphs (i) .Alignment = wdAlignParagraphLeft
Naprej i
Nazaj na vrh
Word VBA makro vadnica
To je vadnica za uporabo VBA z Microsoft Wordom. Ta vadnica vas bo naučila, kako napisati preprost makro in komunicirati z dokumenti, obsegi, izbori in odstavki.
Opomba: Če ste novi v makrih / VBA, vam bo morda koristen tudi ta članek: Kako napisati makre VBA iz Scratcha.
VBA je programski jezik, ki se uporablja za avtomatizacijo programov Microsoft Office, vključno z Wordom, Excelom, Outlookom, PowerPointom in Accessom.
Makri so bloki kode VBA, ki opravljajo posebne naloge.
Ko ti Posnemite makro, Word bo kodo VBA zapisal v makro, kar vam bo omogočilo, da ponovite svoja dejanja. Ogledate si lahko seznam vseh razpoložljivih makrov iz Pogled> Makri.
Po snemanju makra boste lahko makro uredili s seznama makrov:
Ko kliknete Uredi, odprete Urednik VBA. Z urejevalnikom VBA lahko urejate posnete makre ali pišete Wordov makro iz nič. Za dostop do urejevalnika VBA uporabite bližnjico ALT + F11 ali kliknite Visual basic Iz Razvijalski trak.
Primer preprostega Wordovega makra
To je preprost primer makra Word VBA. Izvaja naslednje naloge:
- Odpre Wordov dokument
- Piše v dokument
- Zapre in shrani Wordov dokument.
123456789101112131415 | Sub WordMacroExample ()'Odpri Doc & Assign to VariableDim oDoc kot dokumentNastavite oDoc = Documents.Open ("c: \ Users \ someone \ NewDocument.docx")'Pišite docSelection.TypeText "www.automateexcel.com"Selection.TypeParagraph'Shrani in zapri DocoDoc.ShranioDoc.ZapriEnd Sub |
Osnove besednih makrov
Vso kodo VBA je treba shraniti v takih postopkih. Če želite ustvariti postopek v VBA, vnesite »Sub WordMacroExample« (kjer je »WordMacroExample« želeno ime makra) in pritisnite ENTER. VBA bo samodejno dodal oklepaje in End Sub.
Predmet Wordovega dokumenta
Pri interakciji z Microsoft Wordom v VBA se boste pogosto sklicevali na Wordove »predmete«. Najpogostejši predmeti so:
Objekt aplikacije - Microsoft Word sam
Predmet dokumenta - Wordov dokument
Objekt obsega - Del Wordovega dokumenta
Izbirni objekt - Izbran obseg ali lokacija kazalca.
Uporaba
Aplikacija je objekt "najvišje ravni". Skozi to je mogoče doseči vse druge predmete v Wordu.
Poleg dostopa do drugih predmetov Word lahko uporabite tudi nastavitve na ravni aplikacije:
1 | Application.Options.AllowDragAndDrop = Res |
To je primer dostopa do možnosti »Izbor« v sistemu »Windows (1)« v aplikaciji:
1 | Application.Windows (1) .Selection.Caracters.Count |
Do najpogostejših Wordovih objektov pa lahko dostopate neposredno, ne da bi vnesli celotno hierarhijo. Namesto tega lahko (in morate) samo vnesete:
1 | Izbor.Liki.Število |
Dokumenti
ActiveDocument
Pogosto boste imeli v Wordu odprta dva ali več dokumentov in morali boste določiti, s katerim posebnim Wordovim dokumentom želite komunicirati. Eden od načinov, kako določiti, kateri dokument naj se uporabi ActiveDocument. Na primer:
1 | ActiveDocument.PrintOut |
… bi natisnil ActiveDocument. ActiveDocument je dokument v Wordu, ki ima "fokus"
Če želite preklopiti ActiveDocument, uporabite ukaz Activate:
1 | Dokumenti ("Primer.docx"). Aktivirajte |
Ta dokument
Namesto da uporabite ActiveDocument za sklicevanje na aktivni dokument, lahko uporabite ThisDocument za sklicevanje na dokument, v katerem je shranjen makro. Ta dokument se ne bo nikoli spremenil.
1 | ThisDocument.PrintOut |
Spremenljivke dokumentov
Za bolj zapletene makre pa je težko slediti aktivnemu dokumentu. Prav tako je lahko frustrirajuče preklapljanje med dokumenti.
Namesto tega lahko uporabite spremenljivke dokumenta.
Ta makro bo ActiveDocument dodelil spremenljivki in nato natisnil dokument s spremenljivko:
12345 | Podvred VarExample ()Dim oDoc kot dokumentNastavite oDoc = ActiveDocumentoDoc.PrintOutEnd Sub |
Metode dokumentov
Odpri dokument
Odpiranje Wordovega dokumenta:
1 | Documents.Open "c: \ Users \ SomeOne \ Desktop \ Test PM.docx" |
Priporočamo, da dokumentu vedno odprete spremenljivko, ko jo odprete:
12 | Dim oDoc kot dokumentNastavite oDoc = Documents.Open ("c: \ Users \ SomeOne \ Desktop \ Test PM.docx") |
Ustvari nov dokument
Če želite ustvariti nov dokument Word:
1 | Dokumenti |
Wordu lahko naročimo, naj na podlagi neke predloge ustvari nov dokument:
1 | Documents.Add Template: = "C: \ Program Files \ Microsoft Office \ Templates \ MyTemplate.dotx" |
Kot vedno je koristno in ogromno rešiti težave, če dokument ustvarite ali odprete spremenljivki:
12 | Dim oDoc kot dokumentNastavite oDoc = Documents.Add (Template: = "C: \ Program Files \ Microsoft Office \ Templates \ MyTemplate.dotx") |
Shrani dokument
Če želite shraniti dokument:
1 | ActiveDocument.Save |
ali Shrani kot:
1 | ActiveDocument.SaveAs Ime datoteke: = c: \ Users \ SomeOne \ Desktop \ test2.docx ", FileFormat: = wdFormatDocument |
Zapri dokument
Če želite zapreti dokument in shraniti spremembe:
1 | ActiveDocument.Close wdSaveChanges |
ali brez shranjevanja sprememb:
1 | ActiveDocument.Close wdDoNotSaveChanges |
Natisni dokument
To bo natisnilo aktivni dokument:
1 | ActiveDocument.PrintOut |
Obseg, izbor, odstavki
Domet in Izbor so verjetno najpomembnejši predmeti v Wordu VBA, zagotovo najbolj uporabljeni.
Domet se nanaša na del dokumenta, običajno, vendar ne nujno, besedilo.
Izbor se nanaša na izbrano besedilo (ali drug predmet, na primer slike) ali, če nič ni izbrano, na vstavitveno točko.
Odstavki predstavljajo odstavke v dokumentu. Manj pomembno je, kot se sliši, ker ne morete neposredno dostopati do besedila odstavka (za spremembe morate dostopati do določenega obsega odstavkov).
Domet
Obseg je lahko kateri koli del dokumenta, vključno s celotnim dokumentom:
12 | Dim oRange As RangeNastavite oRange = ActiveDocument.Content |
ali pa je lahko majhen kot en znak.
Drug primer, to območje bi se nanašalo na prvo besedo v dokumentu:
12 | Dim oRange As RangeNastavi oRange = ActiveDocument.Range.Words (1) |
Običajno bi radi dobili obseg, ki se nanaša na določen del dokumenta, in ga nato spremenili.
V naslednjem primeru bomo prvo besedo drugega odstavka naredili krepko:
123 | Dim oRange As RangeNastavi oRange = ActiveDocument.Paragrafi (2) .Range.Words (1)oRange.Bold = Res |
Nastavi besedilo obsega
Če želite nastaviti besedilno vrednost obsega:
123 | Dim oRange As RangeNastavi oRange = ActiveDocument.Paragrafi (2) .Range.Words (1)oRange.Text = "Pozdravljeni" |
(Namig: upoštevajte presledek za "Hello". Ker besedni objekt vključuje presledek za besedo, bi s samo "hello" dobili "Hellonext word")
Obstaja več sto stvari, ki jih lahko naredite z razponi. Le nekaj primerov (ti predpostavljajo, da ste že postali spremenljivka objekta oRange glede na obseg zanimanja):
Spremeni pisavo
1 | oRange.Font.Name = "Arial" |
V polju za sporočila prikaže število znakov v določenem obsegu
1 | MsgBox oRange.Caracters.Count |
Pred njo vstavite nekaj besedila
1 | oRange.InsertPred "to je vstavljeno besedilo" |
V obseg dodajte opombo
12 | ActiveDocument.Footnotes.Add Range: = oRange, _Besedilo: = "Preberite več na easyexcel.net." |
Kopirajte ga v odložišče
1234 | oRange.CopyPogosto morate spremeniti tisto, kar se nanaša na določeno območje. Tako lahko začnete z začetkom in koncemoRange.Start = 5oRange.End = 50 |
Po zgornji kodi bi se oRange nanašalo na besedilo, ki se začne s petim in konča s 50. znakom v dokumentu.
Izbor
Izbor se še bolj uporablja kot Domet, ker je z njim lažje delati Izbire kot Dometi, ČE vaš makro deluje samo z ActiveDocumentom.
Najprej izberite želeni del dokumenta. V aktivnem dokumentu na primer izberite drugi odstavek:
1 | ActiveDocument.odstavki (2) .Range.Izberi |
Nato lahko z objektom za izbiro vnesete nekaj besedila:
1 | Selection.TypeText "Nekaj besedila" |
Nekaj odstavkov lahko vnesemo pod "Nekaj besedila":
12 | Selection.TypeText "Nekaj besedila"Selection.TypeParagraph |
Pogosto je treba vedeti, ali je izbrano nekaj besedila ali imamo samo vstavitveno točko:
12345 | Če izbira.Vnesite wdSelectionIP PotemSelection.Font.Bold = TrueSicer paMsgBox "Izbrati morate nekaj besedila."Konec Če |
Pri delu s predmetom Selection želimo postaviti vstavitveno točko na določeno mesto in izdati ukaze, ki se začnejo od te točke.
Začetek dokumenta:
1 | Enota HomeKey: = wdStory, Extend: = wdMove |
Začetek trenutne vrstice:
1 | Enota HomeKey: = wdLine, Extend: = wdMove |
Razširitveni parameter wdMove premakne točko vstavljanja. Namesto tega lahko uporabite wdExtend, ki izbere vse besedilo med trenutno točko vstavljanja.
1 | Enota HomeKey: = wdLine, Extend: = wdExtend |
Premakni izbor
Najbolj uporaben način za spreminjanje položaja vstavitvene točke je Premakni. Če želite premakniti izbor za dva znaka naprej:
1 | Izbira. Premik enote: = wdCharacter, Count: = 2 |
če ga želite premakniti nazaj, uporabite negativno število za parameter Count:
1 | Izbira. Premik enote: = wdCharacter, Count: =-2 |
Parameter enote je lahko wdCharacter, wdWord, wdLine ali več (za pomoč drugim uporabite Word VBA pomoč).
Namesto tega premikate besede:
1 | Izbira. Premakni enoto: = wdWord, Število: = 2 |
Z izbiro je lažje delati (v primerjavi z obsegi), ker je kot robot, ki uporablja Word in posnema človeškega uporabnika. Kjer je točka vstavljanja - bi se zgodilo nekaj dejanj. Toda to pomeni, da morate paziti, kje je točka vstavljanja! To po številnih korakih v kodi ni enostavno. V nasprotnem primeru bi Word spremenil besedilo na želenem mestu.
Če potrebujete neko lastnost ali metodo, ki ni na voljo v objektu Selection, lahko vedno preprosto pridobite obseg, povezan z izbiro:
1 | Nastavi oRange = Izbor.Range |
NASVET: Uporaba Izbor je pogosto lažje kot uporaba obsegov, vendar je tudi veliko počasnejša (pomembno, ko se ukvarjate z velikimi dokumenti)
Odstavki
Za spreminjanje besedila ne morete neposredno uporabiti predmeta Odstavki:
1 | ActiveDocument.Paragraphs (1) .Text = "Ne, ne bi delovalo" |
Zgoraj ne bi delovalo (dejansko bo povzročilo napako). Najprej morate pridobiti obseg, povezan s posebnim odstavkom:
1 | ActiveDocument.Paragraphs (1) .Range.Text = "Zdaj deluje :)" |
Lahko pa neposredno spremenite njegov slog:
1 | ActiveDocument.Paragraphs (1) .Style = "Normal" |
ali spremenite obliko zapisa na ravni odstavka:
1 | ActiveDocument.odstavki (1) .LeftIndent = 10 |
ali pa želite ta odstavek ohraniti v isti vrstici z naslednjim odstavkom:
1 | ActiveDocument.Paragraphs (1) .KeepWithNext = True |
Odstavek postavite na sredino:
1 | ActiveDocument.Paragraphs (1) .Alignment = wdAlignParagraphCenter |
ZELO je koristno dodeliti določen odstavek spremenljivki objekta. Če spremenljivki dodelimo določen odstavek, nam ni treba skrbeti, če prvi odstavek postane drugi, ker smo pred njim vstavili en odstavek:
12 | dim oPara kot odstavekNastavi oPara = Izbor. Odstavki (1) 'tukaj spremenljivki dodelimo prvi odstavek trenutne izbire |
Tu je primer, ko vstavimo odstavek nad prvim odstavkom, vendar se lahko še vedno sklicujemo na stari prvi odstavek, ker je bil dodeljen spremenljivki:
1234567 | Pododstavek Primer ()Dim oPara Kot odstavekNastavi oPara = ActiveDocument.Paragrafi (1)MsgBox oPara.Range.TextoPara.Range.InsertParagraphPred 'Vstavi odstavekMsgBox oPara.Range.TextEnd Sub |
Odstavek se zelo pogosto uporablja v zankah:
123456789101112 | Sub LoopThroughParagraphs ()Dim oPara Kot odstavekZa vsako oPara v ActiveDocument.Paragrafih'naredi nekaj s tem. Samo prikazali bomo"besedilo odstavka, če je njegov slog" naslov 4 "Če je oPara.Style = "Naslov 4" PotemMsgBox oPara.Range.TextKonec ČeNaslednja oParaEnd Sub |
Word VBA Vadnica Sklep
Ta vadnica je zajemala osnove Worda VBA. Če ste novi v VBA, si oglejte tudi naš splošni Voda VBA, če želite izvedeti več o spremenljivkah, zankah, okencih za sporočila, nastavitvah, pogojni logiki in še veliko več.
Primeri besednih makrov
Primeri besednih makrov |
---|
Predloge |
Dodajte nove dokumente |
Štej besede pri izbiri |
TextBoxes |
Shrani kot PDF |
Zaznamki |
Tabele |
Poišči in Najdi in Zamenjaj |
Odprite Dokumente |
Pogosta vprašanja o Word VBA
Kaj je Wordov makro?
Makro je splošen izraz, ki se nanaša na niz programskih navodil, ki avtomatizirajo naloge. Wordovi makri avtomatizirajo naloge v Wordu z uporabo programskega jezika VBA.
Ali ima beseda VBA?
Da, Microsoft Word ima urejevalnik VBA. Do njega lahko dostopate tako, da pritisnete ALT + F11 ali se pomaknete do Razvijalec> Visual Basic.
Kako uporabljam VBA v Wordu?
1. Odprite urejevalnik VBA (ALT + F11 ali Razvijalec> Visual Basic)
2. Pojdite na Vstavi> Modul, da ustvarite kodni modul
3. Vnesite „Sub HelloWorld“ in pritisnite Enter
4. V vrstici „Sub HelloWorld“ in „End Sub“ vnesite „MsgBox“ Hello World! ”
5. Ustvarili ste makro!
6. Zdaj pritisnite 'F5', da zaženete makro