Visual Basic for Applications:
Bruke regulære uttrykk
Hvordan:
For å bruke regulære uttrykk i VBA, må du først aktivere Microsoft VBScript Regular Expressions-biblioteket. I VBA-editoren, gå til Verktøy
-> Referanser
, og deretter kryss av for Microsoft VBScript Regular Expressions 5.5
.
Her er et grunnleggende eksempel for å finne ut om et mønster finnes i en streng:
Sub FinnMønster()
Dim regex As Object
Set regex = CreateObject("VBScript.RegExp")
With regex
.Global = True
.IgnoreCase = True
.Pattern = "\bis\b" ' Ser etter ordet "is"
End With
Dim testStreng As String
testStreng = "Dette er en teststreng."
If regex.Test(testStreng) Then
MsgBox "Mønster funnet."
Else
MsgBox "Mønster ikke funnet."
End If
End Sub
For å erstatte et mønster i en streng:
Sub ErstattMønster()
Dim regex As Object, erstattetStreng As String
Set regex = CreateObject("VBScript.RegExp")
With regex
.Global = True
.IgnoreCase = False
.Pattern = "\s" ' Matcher ethvert mellomromstegn
End With
erstattetStreng = regex.Replace("Dette er en teststreng.", "_")
MsgBox erstattetStreng ' Resultat: "Dette_er_en_teststreng."
End Sub
Dypdykk
Inkluderingen av regulære uttrykk i programmeringsspråk kan ofte spores tilbake til Unix-verktøy fra 1970-tallet. VBA integrerte regex gjennom VBScript Regular Expressions-biblioteket, noe som understreker dets betydning i teksthåndteringsoppgaver selv i applikasjoner ikke typisk assosiert med tung teksthåndtering som Excel eller Access.
Til tross for deres styrke, kan regex i VBA noen ganger være mindre intuitivt eller ytelsessterkt sammenlignet med mer moderne implementasjoner i språk som Python eller JavaScript. For eksempel, Pythons re
-modul tilbyr omfattende støtte for navngitte grupper og mer sofistikerte mønstersøkefunksjoner, som gir en renere og potensielt mer lesbar tilnærming. Imidlertid, når man arbeider innenfor VBA-økosystemet, forblir regulære uttrykk et uvurderlig verktøy for oppgaver som krever mønstersøk eller tekstmanipulasjon. Effektivitetsofferet er ofte ubetydelig i lys av bekvemmeligheten og mulighetene regex bringer til bordet når man håndterer strenger i Office-applikasjoner.