VBA Tutorial for Word

Visual Basic for Applications (VBA) er et programmeringsspråk som brukes til å automatisere oppgaver i Microsoft Word. Med Visual Basic kan du gjøre noen operasjon som du kan gjøre i Word uten Visual Basic, men raskere. Dette gjelder spesielt for operasjoner som inkluderer mange deloppgaver, som for eksempel et søk etter et ord, etterfulgt av ordet valg, etterfulgt av formatering.

Følgende eksempelkode viser hvordan du kan begynne å bruke VBA til å gi praktiske løsninger for vanlige tekstbehandlings problemer.

Skriv inn eksempelkode i IDE

Åpne opp MS Word og gå til Visual Basic IDE (integrert utviklingsmiljø) ved å trykke alt-F11.

I koden vinduet, skriv inn følgende programkode.

Public Sub mac ()
Dim r As Range
Dim w As Range
Dim i As Integer
Dim t As String

Options.DefaultHighlightColorIndex

Still r = Selection.Range

r.StartOf (wdParagraph)

r.Expand wdParagraph

r.Find.ClearFormatting
r.Find.Replacement.ClearFormatting
r.Find.Replacement.Highlight = True
With r.Find
.Text = "is"
.Replacement.Text = "is"
.Forward = True
.Wrap = wdFindStop
.Format = True
.MatchCase = False
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
r.Find.Execute Replace:=wdReplaceAll

End Sub

Du kan få en følelse av hva dette programmet vil gjøre ved å merke visse søkeord i det: punkt, finne og utvalg, for eksempel. Programmet finner og fremhever alle forekomster av et ord du angir, innenfor gjeldende avsnitt.

Legg merke til disse to linjer i kode:
.text = "Er"
.Replacement.Text = "Er"

Disse linjene forteller Word hva du skal se etter. I stedet for de "er" s, skriv hva ordet eller teksten du ønsker å søke etter og høydepunkt.

Kjøre Program

Return to ord (alt-F11), og skriv inn et par avsnitt verdt av tekst. Disse punktene bør inneholde minst et par forekomster av de nevnte søkeordet du har valgt.

Når du er ferdig med å skrive inn tekst, plasserer du markøren i noen av avsnittene. Kjør programmet: velg alt-F8 for å få opp makro replay vinduet. Velg "mac" makro, og trykk på Kjør. Hvis Word finner alle forekomster av søkeordet du har angitt, i avsnittet inneholder markøren, vil det markere ordet.

Forstå det å tilpasse den

Skriver i et enkelt script kan forbedre arbeidsflyten litt. Men hvis du forstår hvordan det fungerer manuset, begynner du å forbedre arbeidsflyten i stor grad, og på en evigvarende basis.

Gå tilbake til Visual Basic IDE og se på programkoden inne i mac-funksjonen. Legg merke til hvordan mac-funksjonen får til det gjeldende avsnittet for å gjøre sitt erstatte operasjon: det ser ut på Selection objektet, som representerer den markerte teksten eller innsettingspunktet. Deretter bruker Word interne representasjon av dokumentet, script "leapfrogs" fra dagens innsettingspunktet til begynnelsen av avsnittet som inneholder innsettingspunktet.

Denne typen bevegelse er gjort mulig ved et nettverk av tilkoblinger inne VBA for Word. Den nåværende utvalget er knyttet til det aktuelle ordet, gjeldende setning og gjeldende avsnitt. Spesielt mac linker eller leapfrogs fra gjeldende valg til begynnelsen av det gjeldende avsnittet (Still r = Selection.Range og r.StartOf (wdParagraph)). På dette tidspunktet er r bare et innsettingspunkt, men vi vil at den skal gjelde for hele avsnittet, så vi utvider det med r.Expand wdParagraph. Hvis du ønsker å søke bare gjeldende setning i stedet for det gjeldende avsnittet, erstatte alle forekomster av wdParagraph i programkoden med wdSentence.