VBAのIE(InternetExplorer)制御に便利なサブルーチンを紹介しています。
Function regValue(strValue As String, _
Optional Pattern As String = "url") As Variant()
'パターン設定
Const patURL As String = "http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?"
Const patMAIL As String = "[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}"
Const patZIPCODE As String = "[0-9]{3}-[0-9]{4}"
Const patTEL As String = "0[0-9]{1,4}[-(][0-9]{1,4}[-)][0-9]{4}"
Const patTWITTER As String = "@[0-9a-zA-Z_]{1,15}"
'正規表現オブジェクト作成
Set objReg = CreateObject("VBScript.RegExp")
With objReg
Select Case Pattern 'パターン選択
Case "url"
.Pattern = patURL
Case "mail"
.Pattern = patMAIL
Case "zipcode"
.Pattern = patZIPCODE
Case "tel"
.Pattern = patTEL
Case "twitter"
.Pattern = patTWITTER
End Select
.IgnoreCase = True '大文字と小文字を区別しない
.Global = True '文字列全体を検索
End With
Set objMatches = objReg.Execute(strValue)
'要素数セット
Dim exeValue() As Variant
ReDim exeValue(objMatches.Count)
For i = 0 To (objMatches.Count - 1)
exeValue(i) = objMatches(i).value
Next
'要素数再セット
If UBound(exeValue) > 0 Then
ReDim Preserve exeValue(UBound(exeValue) - 1)
End If
Set objReg = Nothing
regValue = exeValue()
End Function
引数名 | データ型 | 内容 | 値の事例 | 初期値 | 省略 |
---|---|---|---|---|---|
strValue | String | チェックする文字列 | "VBAのIE制御入門サイトは・・・" | × | |
Pattern | String | チェックするパターン文字列 | "url,"mail","zipcode","tel","twitter" | "url" | ○ |
「strValue」は必須項目です。
正規表現で抽出する対象の文字列を指定してください。
「Pattern」は正規表現のパターンを決定するパターン文字列を入力します。