エクセル VBA リストボックス 一覧処理
エクセル VBA リストボックス 一覧処理
シートから文字列を検索
↓
リストボックス表示
↓
表示結果をクリック
↓
空欄時入力
↓
更新
上記の流れをVBAで行いたいのですが、結果表示されたリストを選択
詳細を表示し、空欄においては都度入力した物を更新ボタンでセルへ
反映させるにはどの様にすればいいのでしょうか?
Public Sub 検索(ByVal Namae As String, ByRef MeNamae As Object)
Dim Nagasa As Integer
Dim i As Long
Dim MaxRows As Long
Dim SAGASU As Object
Dim KensakuChar As String
Dim ListNamae As String
Dim ListChar As String
Dim KBanme As Integer
Dim LBanme As Integer
Set SAGASU = Worksheets("2月")
MaxRows = SAGASU.UsedRange.Rows.Count
Nagasa = Len(Namae)
MeNamae.ListBox1.Clear
For i = 3 To MaxRows
ListNamae = SAGASU.Cells(i, 3)
KBanme = 0
LBanme = 0
Do
Do While Nagasa >= KBanme
KBanme = KBanme + 1
KensakuChar = Mid(Namae, KBanme, 1)
If KensakuChar <> " " Then
Exit Do
End If
Loop
Do While Nagasa >= LBanme
LBanme = LBanme + 1
ListChar = Mid(ListNamae, LBanme, 1)
If ListChar <> " " Then
Exit Do
End If
Loop
If KensakuChar = ListChar Then
If Nagasa = KBanme Then
With MeNamae
.ListBox1.AddItem (ListNamae)
End With
End If
Else
Exit Do
End If
Loop Until Nagasa <= KBanme
Next
End Sub
---------------
Private Sub UserForm_Initialize()
Set SAGASU = Worksheets("2月")
Maxl = SAGASU.UsedRange.Rows.Count
End Sub
---------------
Private Sub CommandButton1_Click()
Dim Namae As String
Dim MeNamae As Object
Namae = TextBox1.Text
Set MeNamae = KensakuForm
Call 検索(Namae, MeNamae)
End Sub
----------------
Private Sub CommandButton2_Click()
End
End Sub
----------------
Private Sub ListBox1_Click()
ListIdx = ListBox1.ListIndex
Namae = ListBox1.List(ListIdx)
End Sub
文字数制限の為、一部抜いていま
お礼
matsu_jun さん 検索ダイアログボックスで「すべて検索」は無理だとわかりました。ありがとうございます。