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 |
実行結果
関連記事
-
-
変数が数値型かどうかをチェックする( IsNumeric 関数 )
IsNumeric 関数の使い方 【書式】 result = IsNumeric …
-
-
文字列:文字列の指定した位置から指定文字数取得(Mid 関数,MidB 関数)
Mid 関数・MidB 関数 の使い方 【書式】 result_mid = Mi …
-
-
日付時刻:日付から曜日を取得( Weekday 関数、WeekdayName 関数 )
Weekday 関数(日付から曜日を表す数値を返す)の使い方 【書式】 week …
-
-
ある数値が、複数の範囲のどの範囲に含まれるかを示す文字列を返す(Partition 関数)
Partition 関数 の使い方 Partition 関数は、ある数値が、区切 …
-
-
変数が日付型かどうかをチェックする( IsDate 関数 )
IsDate 関数の使い方 【書式】 result = IsDate( expr …
-
-
Join 関数(配列の要素を結合)
Join 関数 1次元配列の各要素を指定した区切り文字で連結します。 【書式】 …
-
-
フォント名(Name,ThemeFont,StandardFont)
フォント名を取得・設定する(Name プロパティ) Name プロパティは、オブ …
-
-
指定した数値に対応する選択肢の値・数式を返す(Choose 関数)
Choose 関数 の使い方 Choose 関数は、指定されたインデックス値(1 …
-
-
指定した値を8進数で表記した文字列に変換する(Oct 関数)
Oct 関数 の使い方 【書式】 result = Oct ( expressi …
-
-
四捨五入・切り上げ・切り捨て・丸め(Round 関数 他)
Round 関数(丸め)の使い方 【書式】 value = Round ( ex …


