|
とまと さん、超ビギナー さん
こんにちは。
アルゴリズムを駆使すればできそうですけど
正規表現を使用するとあまり考えなくても
この手のことが実現出来ますよ!!
標準モジュールに
'=========================================
Dim regex As Object
Sub test()
Set regex = CreateObject("VBScript.RegExp")
' 正規表現を作成します。
For idx = 1 To Cells(Rows.Count, 1).End(xlUp).Row
jdx = 0
If Cells(idx, 1).Value <> "" Then
ans = spfind(Cells(idx, 1).Value, "\([^\(^\)]*\)")
Do Until ans = ""
Cells(idx, jdx + 2).Value = ans
jdx = jdx + 1
ans = spfind
Loop
End If
Next idx
Set regex = Nothing
End Sub
'=====================================================================
Function spfind(Optional chkstr = "", Optional fstr = "") As String
Static matches As Object
Static cnt As Long
spfind = ""
With regex
If chkstr <> "" Then
Set matches = Nothing
.Pattern = fstr
.IgnoreCase = True
.Global = True
Set matches = .Execute(chkstr)
cnt = 0
End If
If cnt < matches.Count Then
spfind = matches(cnt)
cnt = cnt + 1
End If
End With
End Function
これでアクティブシートのA列の()「()も含む」内を抜き出して
B列以降に記述します。
尚、検索対象の()は、半角です。
|
|