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 |
実行結果
関連記事
-
日付時刻:日付時刻から情報取得( DatePart 関数 )
DatePart 関数(日付・時刻の値から情報を取得) 【書式】 result …
-
ユーザー定義定数(Const ステートメント)
定数を使う ユーザー定義の定数を使用するには、Const ステートメントを使って …
-
ユーザー定義関数:セルを取得する(ThisCell プロパティ)
入力されたセルを取得する ワークシート上で使用する Function プロシージ …
-
フォントサイズ(Size プロパティ・StandardFontSize プロパティ)
フォントサイズを取得・設定する(Size プロパティ) Size プロパティは、 …
-
文字列:指定した文字の文字コードを取得する(Asc 関数)
Asc 関数 【書式】 result = Asc ( string ) 引数・戻 …
-
IME の現在の状態を取得します(IMEStatus 関数)
IMEStatus 関数の使い方 【書式】 result = IMEStatus …
-
引数が省略されたかどうかをチェックする( IsMissing 関数 )
IsMissing 関数の使い方 【書式】 result = IsMissing …
-
データ型を調べて、そのデータ型を示す数値を返す(VarType 関数)
VarType 関数 の使い方 VarType 関数は、引数に、データ型を調べた …
-
データ型を調べてそのデータ型を示す文字列を返す(TypeName 関数)
TypeName 関数 の使い方 TypeName 関数は、引数に、データ型を調 …
-
変数が数値型かどうかをチェックする( IsNumeric 関数 )
IsNumeric 関数の使い方 【書式】 result = IsNumeric …