|
▼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
|
|