wrote :: 2005.02.09
| Patternプロパティ | 正規表現で使用するパターンを設定します。 .*や[A-Z]、(田中|鈴木)などの文字列です |
| IgnoreCaseプロパティ | 大文字と小文字を区別しないときにTrueを設定します。 デフォルトはFalseです |
| Globalプロパティ | 検索対象の文字列内で、文字列全体を検索するにはTrueを設定します。 デフォルトではFalseです |
| Testメソッド | 正規表現によるマッチングを行います。 パターンと一致した場合はTrueを返します |
| Replaceメソッド | 検索文字列の中で正規表現によるマッチングを行い、 成功するとそのマッチした部分を置換文字列と置き換えます |
| Executeメソッド | Testメソッドはマッチングが成功したかどうかをTrue/Falseで返します。 Executeメソッドは、マッチングの結果をMatchesコレクションとして返します。 MatchesコレクションはMatchオブジェクトの集合です |
| Countプロパティ | Matchesコレクション内でMatchオブジェクトの個数を返します。 これを調べるとマッチングの成功/失敗がわかります |
| Itemプロパティ | いわゆる一般的なコレクションのItemプロパティです。 普通はMatches(1)のようにアクセスするので使うことはないでしょう |
| FirstIndexプロパティ | 最初にマッチングに成功した位置を返します。文字列の先頭は0から始まります |
| Lengthプロパティ | マッチした文字列の長さを返します |
| Valueプロパティ | マッチした文字列を返します |
| ^ | 文字列の先頭 |
| $ | 文字列の末尾 |
| \n | 改行 |
| . | 改行を除く任意の1文字 |
| * | 直前のパターンの0回以上の繰り返し |
| + | 直前のパターンの1回以上の繰り返し |
| ? | 直前のパターンが0回または1回現れる |
| \d | 任意の数値 |
| \D | 任意の数値以外の文字 |
| \s | 任意のスペース文字 |
| \S | 任意のスペース以外の文字 |
| () | パターンのグループ化 |
| | | パターンの論理和 |
| [] | キャラクタクラス |
Sub Sample1()
Dim RE, strPattern As String, r As Range
Set RE = CreateObject("VBScript.RegExp")
strPattern = "SUM\("
With RE
.Pattern = strPattern ''検索パターンを設定
.IgnoreCase = True ''大文字と小文字を区別しない
.Global = True ''文字列全体を検索
For Each r In ActiveSheet.UsedRange
If .Test(r.Formula) Then r.Interior.ColorIndex = 3
Next r
End With
Set RE = Nothing
End Sub
Sub Sample2()
Dim RE, strPattern As String, i As Long, msg As String, reMatch
Set RE = CreateObject("VBScript.RegExp")
strPattern = "^田(中|口).*(子|美)$"
With RE
.Pattern = strPattern
.IgnoreCase = True
.Global = True
For i = 1 To 10
Set reMatch = .Execute(Cells(i, 1))
If reMatch.Count > 0 Then
msg = msg & reMatch(0).Value & vbCrLf
End If
Next i
End With
MsgBox msg
Set reMatch = Nothing
Set RE = Nothing
End Sub