Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


50004 / 76738 ←次へ | 前へ→

【31631】Re:文字の抽出からコピー
発言  ichinose  - 05/11/27(日) 15:06 -

引用なし
パスワード
   とまと さん、超ビギナー さん
こんにちは。

アルゴリズムを駆使すればできそうですけど
正規表現を使用するとあまり考えなくても
この手のことが実現出来ますよ!!

標準モジュールに
'=========================================
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列以降に記述します。

尚、検索対象の()は、半角です。

0 hits

【31620】文字の抽出からコピー 超ビギナー 05/11/27(日) 13:32 質問
【31623】Re:文字の抽出からコピー とまと 05/11/27(日) 13:46 回答
【31624】Re:文字の抽出からコピー とまと 05/11/27(日) 13:51 発言
【31625】Re:文字の抽出からコピー 超ビギナー 05/11/27(日) 14:02 質問
【31626】Re:文字の抽出からコピー とまと 05/11/27(日) 14:24 回答
【31627】Re:文字の抽出からコピー 超ビギナー 05/11/27(日) 14:45 質問
【31628】Re:文字の抽出からコピー とまと 05/11/27(日) 14:56 回答
【31630】Re:文字の抽出からコピー 超ビギナー 05/11/27(日) 15:03 お礼
【31631】Re:文字の抽出からコピー ichinose 05/11/27(日) 15:06 発言
【31632】Re:文字の抽出からコピー とまと 05/11/27(日) 15:20 発言
【31633】Re:文字の抽出からコピー kobasan 05/11/27(日) 15:32 発言
【31634】Re:文字の抽出からコピー 超ビギナー 05/11/27(日) 15:42 お礼

50004 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free