Sub test() Dim re As New RegExp Dim ws As Worksheet Dim buff As Variant Dim i As Long 'initialize Set ws = ActiveSheet buff = ws.UsedRange ReDim Preserve buff(1 To ws.UsedRange.Rows.Count, 1 To 2) 'setting RegularExpression re.Pattern = ".*\((.*)\).*" re.IgnoreCase = True re.Global = True 'Get Information For i = LBound(buff, 1) To UBound(buff, 1) buff(i, 2) = re.Replace(buff(i, 1), "$1") buff(i, 2) = Replace(buff(i, 2), buff(i, 1), "") Next 'Paste ws.Range(Cells(1, 1), Cells(UBound(buff, 1), 2)) = buff End Sub
やや冗長かもしれないけど俺だったらこう書くなあ。(RegExpクラスを利用するための参照設定は忘れずに!)
ループでワークシートのセルにアクセスすると行数増えた時に使い物にならなくなるから、シートの値は必ず二次元配列に移して処理してるわ。
久々にプログラミングしたけどやっぱおもしれぇ!
ちくしょおおおおおおおお(若本規夫) ありがとうございます。Winshotで画像保存するクマ(・(ェ)・)