vbaのclassモジュールを呼び出し
現在フォームに書いてるcode
ーーー
’シート1のB列250件くらい有る(名前)→コンボボックスに漢字1−2文字入れて表示件数を絞り込み→comboboxにリスト表示している。
ーーー
ーーーーー
Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim i As Integer
'押されたキーが、Enterキー以外は終了
If KeyCode <> vbKeyReturn Then Exit Sub
'テキスト部分が選択されている場合
If ComboBox1.ListIndex = -1 Then
ComboBox1.Visible = False 'コンボボックスを非表示
ComboBox1.Visible = True 'コンボボックスを表示
ComboBox1.List = Array() 'コンボボックスのリストをクリア
'値を部分一致で抽出
For i = 2 To Sheets("Sheet1").Cells(Rows.Count, "B").End(xlUp).Row
If InStr(Sheets("Sheet1").Cells(i, "B"), ComboBox1.Text) > 0 Then
'コンボボックスのリストに追加
ComboBox1.AddItem Sheets("Sheet1").Cells(i, "B")
End If
Next
End If
KeyCode = 0 'コンボボックスをフォーカス
ComboBox1.DropDown 'リストを表示
End Sub
ーーーーー
ーーー
’上記Combobox1で表示された内容の同行&別列で対応するセル内容をLabelに表示させたい、が「行 = 行 + 1」でエラー吐く。
ーーー
ーーーーー
Private Sub ComboBox1_Change()
Dim 行 As Integer
行 = 1
Do
行 = 行 + 1
Loop Until ComboBox1.Text = Worksheets("Sheet1").Cells(行, 2) 'ComboBox1に表示されてる文字列が、B列の何行目に記載されてるか取得
FormMain.Label1.Caption = Worksheets("Sheet1").Cells(行, 1) 'B列に記載されてる文字列と同じ行にある、A列の文字を取得してTextBox1に表示
FormMain.Label2.Caption = Worksheets("Sheet1").Cells(行, 4) 'B列に記載されてる文字列と同じ行にある、D列の文字を取得してTextBox1に表示
End Sub
ーーーーー
検索絞り込み・Labelに表示・最終行の取得(これはエラーなく動かせてる)は、Sheet2でも使うのでclassモジュールに書きたい+formでの呼び出しがうまく行かない。
インターネットで調べながら組み合わせたが自力解決出来なかったのでよろしくお願いします(Vbaの知識は無し)。
元データーは現在Accessで動いてますが、B列(名前250件くらい)ComboBoxで全件読み込みから目当ての名前1つを探し出す宝探し状態。
元データー制作は10年くらい前に業者発注した物(当時は250件を想定してなかったのだろう)→現在は連絡取れない方なのです。
Vba(ComboBox絞り込み)での作り直しを希望してます。