参考サイト
Sub macro1()
'RegExpオブジェクトの作成
Dim reg As Object
Set reg = CreateObject("VBScript.RegExp")
'正規表現の指定
With reg
.Pattern = "[0-9]" 'パターンを指定
.IgnoreCase = False '大文字と小文字を区別するか(False)、しないか(True)
.Global = True '文字列全体を検索するか(True)、しないか(False)
End With
Dim str1 As String, str2 As String
str1 = "東京1大阪2名古屋3"
str2 = reg.Replace(str1, ",") '指定した正規表現を第2引数の区切り文字に置換
MsgBox str2
End Sub 参考サイト
Sub Sample2()
Dim Re As Object
Dim Mc As Object
Dim msg As String
Dim i As Long
Set Re = CreateObject("VBScript.RegExp")
With Re
.Pattern = "[A-Z,a-z,0-9]+[.][o][m]"
.Global = True
Set Mc = .Execute(Cells(1, 1).Value)
End With
With Mc
If .Count > 0 Then
For i = 0 To .Count - 1
msg = msg & i + 1 & "番目の文字列:" & _
.Item(i).Value & vbLf
Next
Else
msg = "該当なし"
End If
End With
If msg = "該当なし" Then
MsgBox msg, vbCritical
Else
MsgBox msg, vbInformation
End If
End Sub
参考サイト
RegExpオブジェクトのプロパティとメソッド
| Patternプロパティ | 正規表現で使用するパターンを設定します。.*や[A-Z]、(田中|鈴木)などの文字列です。 |
| IgnoreCaseプロパティ | 大文字と小文字を区別しないときにTrueを設定します。デフォルトはFalseです。 |
| Globalプロパティ | 検索対象の文字列内で、文字列全体を検索するにはTrueを設定します。デフォルトではFalseです。 |
| Testメソッド | 正規表現によるマッチングを行います。パターンと一致した場合はTrueを返します。 |
| Replaceメソッド | 検索文字列の中で正規表現によるマッチングを行い、成功するとそのマッチした部分を置換文字列と置き換えます。 |
| Executeメソッド | Testメソッドはマッチングが成功したかどうかをTrue/Falseで返します。Executeメソッドは、マッチングの結果をMatchesコレクションとして返します。MatchesコレクションはMatchオブジェクトの集合です。 |
MatchesコレクションはExecuteメソッドによって返されるコレクションです。Matchesコレクションには0個以上のMatchオブジェクトが含まれます。つまり、Executeメソッドの結果返ってきたMatchesコレクションにMatchオブジェクトが存在しなかったら、マッチングは失敗したということです。
Matchesコレクションのプロパティとメソッド
| Countプロパティ | Matchesコレクション内でMatchオブジェクトの個数を返します。これを調べるとマッチングの成功/失敗がわかります。 |
| Itemプロパティ | いわゆる一般的なコレクションのItemプロパティです。普通はMatches(1)のようにアクセスするので使うことはないでしょう。 |
Matchオブジェクトのプロパティとメソッド
| FirstIndexプロパティ | 最初にマッチングに成功した位置を返します。文字列の先頭は0から始まります。 |
| Lengthプロパティ | マッチした文字列の長さを返します。 |
| Valueプロパティ | マッチした文字列を返します。 |
主なメタ文字とエスケープシーケンス
| title | title |
|---|
| ^ | 文字列の先頭 |
| $ | 文字列の末尾 |
| \n | 改行 |
| . | 改行を除く任意の1文字 |
| * | 直前のパターンの0回以上の繰り返し |
| + | 直前のパターンの1回以上の繰り返し |
| ? | 直前のパターンが0回または1回現れる |
| \d | 任意の数値 |
| \D | 任意の数値以外の文字 |
| \s | 任意のスペース文字 |
| \S | 任意のスペース以外の文字 |
| () | パターンのグループ化 |
| | | パターンの論理和 |
| [] | キャラクタクラス |