Regularni vyrazy v klasickych VBA (tedy v makrech) nejdou (nebo aspon ne jednoduse), da se to ale obejit pomoci VBScript objektu. Ten take podporuje regularni vyrazy.
http://msdn.microsoft.com/en-us/library/ms974570.aspxhttp://msdn.microsoft.com/en-us/library ... 85%29.aspxV excelu muzes v Makru pouzit objekt VB Script napr. pomoci Late Bindingu:
http://msdn.microsoft.com/en-us/library ... 10%29.aspxmakro by pak vypadalo nejak takto.
Kód: Vybrat vše
''vytvori objekt, ktery je zdedeny z VBScriptu - regularni vyraz
Set objReg=CreateObject("vbscript.regexp")
'' nastaveni vzoru pro emailovou adresu. vyznam jednotlivych vyrazu najdes na odkazech vyse
objReg.Pattern="[a-zA-Z0-9]+@[a-zA-Z0-9]+"
kontrolu pak provadis pomoci metody Test:
http://msdn.microsoft.com/en-us/library ... 85%29.aspxtakze napr bys mel emailovou adresu v bunce A1
Kód: Vybrat vše
Dim emailaddr As String
Dim hResult As Boolean
emailaddr = A1.Text()
hResult = objReg.Test(emailaddr)
Pokud se objReg.Pattern (tedy regularnim vyrazem popsany "spravny tvar emailu") shoduje s textem v bunce A1, vysledkem *hResult je TRUE. Jestlize je obsah bunky jiny (tedy v tomto pripade emailova adresa obsahuje mezery, nebo jine nepovolene znaky, nebo chybi zavinace apod, pak je FALSE.