VBA で正規表現を使う(RegExp オブジェクトのプロパティ)
2018/03/24
RegExp オブジェクトのプロパティ
RegExp オブジェクトの詳細に関しては、VBA で正規表現を使う(RegExp オブジェクト)、メソッドの詳細に関しては、RegExp オブジェクトのメソッド を参照してください。
Pattern プロパティ
検索される正規表現のパターンを設定します。値の取得も可能です。
object.Pattern = SearchString
引数・戻り値
- object ・・・ 対象となる RegExp オブジェクトを指定します。
- SearchString ・・・ 検索される文字列式を指定します。正規表現で使用できる文字等に関しては、VBA で正規表現を使う(RegExp オブジェクト) を参照してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
' 参照設定:Microsoft VBScript Regular Expressions 5.5 Dim re As RegExp Set re = New RegExp 'アルファベット(大文字・小文字)にマッチする正規表現 re.Pattern = "[a-zA-Z]+" '「山」または「川」で始まり「子」で終わる文字列にマッチする正規表現 re.Pattern = "^(山|川).*子$" '「bb」で始まり3文字目は「b」以外の文字列にマッチする正規表現 re.Pattern = "^b{2}[^b]." |
IgnoreCase プロパティ
パターン検索で大文字と小文字を区別するかどうかを設定します。
object.IgnoreCase = boolean
引数・戻り値
- object ・・・ 対象となる RegExp オブジェクトを指定します。
- boolean ・・・ パターン検索するときに、大文字・小文字を区別するかどうかを指定します。True に設定すると大文字・小文字を区別しなくなります。既定値は、False です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
Sub Sample_RegExp_IgnoreCase() ' 参照設定:Microsoft VBScript Regular Expressions 5.5 Dim re As RegExp Dim i As Long Dim myStr1 As String Dim myStr2 As String Dim str(1 To 3) As String Set re = New RegExp myStr1 = "IgnoreCase = False(大文字・小文字を区別する)" myStr2 = "IgnoreCase = True(大文字・小文字を区別しない)" str(1) = "abcdef" str(2) = "ABCDE" str(3) = "ABCdef" re.Pattern = "^[a-z]+$" re.IgnoreCase = False For i = 1 To 3 myStr1 = myStr1 & vbCrLf & _ str(i) & vbTab & re.Test(str(i)) Next i re.IgnoreCase = True For i = 1 To 3 myStr2 = myStr2 & vbCrLf & _ str(i) & vbTab & re.Test(str(i)) Next i MsgBox myStr1 & vbCrLf & vbCrLf & myStr2 End Sub |
実行結果
Global プロパティ
検索文字列全体についてのパターンとの一致を検索するかどうかを設定します。
object.Global = boolean
引数・戻り値
- object ・・・ 対象となる RegExp オブジェクトを指定します。
- boolean ・・・ ブール型(Boolean)の値を指定します。検索文字列全体についてのパターンとの一致を検索する場合は、True、最初の一致だけを検索する場合は、False(既定値)を指定します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
Sub Sample_RegExp_Global() ' 参照設定:Microsoft VBScript Regular Expressions 5.5 Dim re As RegExp Dim mc As MatchCollection Dim m As Match Dim myStr1 As String Dim myStr2 As String Dim orgStr As String Dim i As Long Set re = New RegExp myStr1 = "【Global = True の場合】" & vbCrLf myStr2 = "【Global = False の場合】" & vbCrLf orgStr = "AAA BBB ccc DDD eee" re.Pattern = "[A-Z]{3}" re.IgnoreCase = False re.Global = True Set mc = re.Execute(orgStr) For i = 0 To mc.Count - 1 Set m = mc.Item(i) myStr1 = myStr1 & m.Value & vbCrLf Next i re.Global = False Set mc = re.Execute(orgStr) For i = 0 To mc.Count - 1 Set m = mc.Item(i) myStr2 = myStr2 & m.Value & vbCrLf Next i MsgBox "検索された文字列" & vbCrLf & myStr1 & vbCrLf & myStr2 End Sub |
実行結果
MultiLine プロパティ
文字列を複数行として扱うかどうかを設定します。
object.MultiLine = boolean
引数・戻り値
- object ・・・ 対象となる RegExp オブジェクトを指定します。
- boolean ・・・ ブール型(Boolean)の値を指定します。文字列を複数行として扱う場合は、True を指定します。この場合、各行の先頭や末尾で、“^” や “$” がマッチするようになります。初期値は False に設定されています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
Sub Sample_RegExp_MultiLine() ' 参照設定:Microsoft VBScript Regular Expressions 5.5 Dim re As RegExp Dim myStr1 As String Dim myStr2 As String Dim orgStr As String Set re = New RegExp myStr1 = "【Global = True の場合】" & vbCrLf myStr2 = "【Global = False の場合】" & vbCrLf orgStr = "ABCDE" & vbCrLf orgStr = orgStr & "FGHIJ" & vbCrLf orgStr = orgStr & "KLMNO" re.Pattern = "^F" re.MultiLine = False myStr1 = "MultiLine = False の場合" & vbTab & re.Test(orgStr) re.MultiLine = True myStr2 = "MultiLine = True の場合" & vbTab & re.Test(orgStr) MsgBox myStr1 & vbCrLf & myStr2 End Sub |
実行結果
関連記事
-
-
データ型を調べてそのデータ型を示す文字列を返す(TypeName 関数)
TypeName 関数 の使い方 TypeName 関数は、引数に、データ型を調 …
-
-
乱数ジェネレータを初期化 (乱数系列を再設定) する(Randomize ステートメント)
Randomize ステートメントの使い方 Rnd 関数 を使用する前に使用しま …
-
-
データ型を調べて、そのデータ型を示す数値を返す(VarType 関数)
VarType 関数 の使い方 VarType 関数は、引数に、データ型を調べた …
-
-
ある数値が、複数の範囲のどの範囲に含まれるかを示す文字列を返す(Partition 関数)
Partition 関数 の使い方 Partition 関数は、ある数値が、区切 …
-
-
指定した数のスペースを挿入する(Spc 関数)
指定した数のスペースを挿入 指定した数のスペースを挿入するには、Spc 関数を使 …
-
-
式を評価し、結果(真・偽)に応じた式・値を返す(IIf 関数)
IIf 関数 の使い方 IIf(アイイフ)関数は、式を評価してその結果(真・偽) …
-
-
文字列:定数(改行・タブ)
改行・タブの定数 これらの定数は、使用前に定義する必要はありません。コード中のど …
-
-
配列の添字の最小値を「1」に設定する
Option Base ステートメントを使用する 【書式】 Option Bas …
-
-
取り消し線を設定する(Strikethrough プロパティ)
取り消し線を設定する(Strikethrough プロパティ) Striketh …
-
-
フォント 太字・斜体(Bold, Italic, FontStyle プロパティ)
太字の設定(Bold プロパティ) Bold プロパティは、フォントを太字にする …