環境
- Windows10 x64
- Microsoft 365(Office 2019 ダウンロード)
問題
ユーザーフォーム上のListBox、未選択の際のIndexに0が返ってきます
下記のコードの通りリストボックス内で選択状態のものを配列にしてAutoFilterに使用しています。
VBA
1 With ListBox1 2 If .ListIndex <> -1 Then 3 For i = 0 To .ListCount - 1 4 If .Selected(i) = True Then 5 key1_string = key1_string & .List(i) & vbCrLf 6 End If 7 Next i 8 key1 = Split(key1_string, vbCrLf) 9 ws.ListObjects(1).Range.AutoFilter 4, key1, xlFilterValues 10 End If 11 End With
未選択の際にフィルタ―部分でエラーが発生するので、「いやいやIfでここ回避してるやん」と思って、
With ListBox1
のすぐ後にMsgBox(/Debug.Print).ListIndex
を確認すると0が返っていました。
リストのトップアイテムを選択しても同じく0です。
これは何!?
ちなみに毎検索、Initializeの度に.ListBoxをクリアし、可視セルの中の選択肢(ユニークな値)でListBoxを埋めています。
この返り値はおかしくないでしょうか??何かやり方が悪いのでしょうか?プロパティの設定か何かでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/08/10 07:34