Excel VBA質問箱 IV

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

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


64467 / 76732 ←次へ | 前へ→

【16845】Re:2つの文字列を検索
回答  ichinose  - 04/8/11(水) 18:24 -

引用なし
パスワード
   ▼Muro さん:
こんばんは。

>セルに書かれた文字列の中で、2つの文字列を検索しコンボボックスに表示したいのですが、どのようにすればよいのでしょうか?
>イメージとしては以下の通りです。
>  A  B  C  D 
>1 ABC GHI CIS OLW
>2 UHI TRZ KUM PQU
>3 BIS YNA GOW QRT
>4 MUA JHI TQP KIS
>
>と書かれていたら検索文字を"HI"と"IS"として
>"HI"と"IS"が含まれる文字列をコンボボックス上に表示させたいです。
>もし"HI"を含む文字列がない場合は"IS"を含む文字列だけを表示するということは
>できますか?
私は、あまりFindメソッドは使わないんですが・・・。
拝見したコードは、"HI"を含むセルの内容はコンボボックスにセットされいますよね?
"IS"でも検索するコードを追加してみては?

'===============================================================
Private Sub UserForm_Initialize()
  Dim target()
  target() = Array("HI", "IS")
  Call set_combobox(Worksheets(Worksheets.Count).UsedRange.Columns, target())
End Sub
'===============================================================
Sub set_combobox(f_rng As Range, f_str())
  Dim c As Range
  Dim FirstAddress As String
  Dim ctarget
  For Each ctarget In f_str()
   With f_rng
    Set c = .Find(what:=ctarget, LookIn:=xlValues, LookAt:=xlPart) '---cに検索結果を格納
    If Not c Is Nothing Then  '---条件に当てはまるセルがあれば
      FirstAddress = c.Address  '---最初のセルのアドレスを覚える
      Do           '---do...Loopステートメント
        ComboBox1.AddItem c '---情報のコピー
        Set c = .FindNext(c)  '---今見つけたセルから次のセルを検索
      Loop While c.Address <> FirstAddress '----条件に当てはまる全てを検索
     End If
    End With
   Next
End Sub
1 hits

【16840】2つの文字列を検索 Muro 04/8/11(水) 17:15 質問
【16845】Re:2つの文字列を検索 ichinose 04/8/11(水) 18:24 回答
【16857】Re:2つの文字列を検索 Muro 04/8/12(木) 9:33 お礼

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