end0tknr's kipple - 新web写経開発

http://d.hatena.ne.jp/end0tknr/ から移転しました

vbaの正規表現でキャプチャするには?

次のように書くと、よいみたい

Dim re as Object
Dim mc as Object
Dim m as Object
Dim i as long

'正規表現オブジェクト
Set re = CreateObject("VBScript.RegExp")

'パターン指定
'refer to:http://msdn.microsoft.com/ja-jp/library/ms974570.aspx
re.Pattern = "(も{2})" 

'複数マッチ有効(perlのgオプション)
re.Global = True      

Set mc = re.Execute("すももも ももも もものうち'")
For i = 0 To mc.Count - 1
    Set m = mc(i)
    'FirstIndex=マッチする文字のインデックス
    'Length=長さ
    'Value=マッチした文字
'    MsgBox "FirstIndex = " & m.FirstIndex & _
'           "Length = " & m.Length & _
'           "Value = " & m.Value
    ret = ret & " " & m.Value
Next

MsgBox ret

2014/2/13追記 小粋空間でも分かりやすく記載されています

Excel VBAで正規表現のグループ化を使ってマッチ文字列を取得する: 小粋空間