VBAでの文字列検索の方法
InStr関数を使った検索
VBAで最も基本的な文字列検索には InStr
関数を使用します。
Dim pos As Integer
pos = InStr(1, "こんにちはVBA", "VBA") ' 結果は6
この例では、”VBA” が “こんにちはVBA” の6文字目にあるため、6が返ります。
InStrRev関数を使った検索
InStrRev
関数を使用すると、文字列の後ろから検索できます。
Dim pos As Integer
pos = InStrRev("VBA VBA VBA", "VBA") ' 結果は9
最後に現れる “VBA” の位置が返ります。
Like演算子を使ったパターンマッチング
特定のパターンに合致するかどうかを調べる場合、Like
演算子が便利です。
Dim result As Boolean
result = "VBA123" Like "VBA###" ' 結果はTrue
“#” は数字を表します。この場合、”VBA123″ は “VBA###” に一致します。
正規表現を使った高度な検索
VBAで正規表現を使うには、VBScript.RegExp
オブジェクトを使用します。
Dim regEx As Object
Set regEx = CreateObject("VBScript.RegExp")
regEx.Pattern = "\d+"
regEx.Global = True
Dim matches As Object
Set matches = regEx.Execute("VBA123 ABC456")
Dim match As Object
For Each match In matches
Debug.Print match.Value ' 123, 456
Next
このコードは文字列内の数字をすべて抽出します。