Primeri besednih makrov in vadnica VBA

Dobrodošli v našem Mega-vodniku Word VBA / makri!

Ta stran vsebuje:

    1. Word VBA Tutorial PDF (brezplačen prenos)
    2. Word VBA "Cheat Sheet", ki vsebuje seznam najpogosteje uporabljenih delčkov kode Word VBA
    3. Celotna Word VBA / Makro vadnica.
    4. 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: = wdStory
Izbor.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 dokument
Nastavi 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 varianto
varNumberPages = _
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

wave wave wave wave wave