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 |
実行結果
関連記事
-
変数がNull 値かどうかをチェックする( IsNull 関数 )
IsNull 関数の使い方 【書式】 result = IsNull ( exp …
-
データ型を調べてそのデータ型を示す文字列を返す(TypeName 関数)
TypeName 関数 の使い方 TypeName 関数は、引数に、データ型を調 …
-
列挙型変数(Enum ステートメント)
列挙型変数を使う 列挙型変数を使用するには、Enum ステートメントを使って、宣 …
-
日付時刻:日付時刻から情報取得( DatePart 関数 )
DatePart 関数(日付・時刻の値から情報を取得) 【書式】 result …
-
コレクション(Collection)オブジェクト「連想配列」
コレクション(Collection)オブジェクトの使い方 【書式】 Dim my …
-
配列(宣言・要素数の変更について)
配列の宣言 【書式】※ 配列の宣言 <Type 型の静的配列(固定長配列)の宣言 …
-
文字列:文字列の一部を別の文字列で置換(Replace 関数)
Replace 関数の使い方 【書式】 result = Replace ( s …
-
日付時刻:現在の日付・時刻を取得・設定(Now、Date、Time)
現在の日付・時刻を取得・設定 現在の日付・時刻を取得(Now 関数、Date 関 …
-
色の設定(ColorIndex プロパティ・Colors プロパティ)
ColorIndex プロパティ ColorIndex プロパティは、指定したオ …
-
日付時刻:日付時刻データを計算( DateAdd 関数 )
DateAdd 関数(日付・時刻の値を加算・減算結果を取得) 【書式】 resu …