【Excel VBA】ユーザーフォームのリストで選択状態で表示する(MultiSelectがMultiの場合)

ユーザーフォームが表示された時、リストの項目を選択状態で表示させたいことがあるかと思います。

よく検索して出てくるものがListBox1.listindex = 選択したい行番号です。

これはListBoxのMultiSelectSingleの場合なら問題ないのですが、MultiSelectSingle以外を選択時には、リスト項目が選択状態にはなりません。

ListBoxのMultiSelectがMultiの場合

MultiSelectがMultiの場合、選択状態にはどうすればよいでしょうか?

Listbox1.Selected(選択したい行番号)=Trueにします。
この書き方であれば、MultiSelectSingleでもMultiでもどちらでも選択状態にすることが可能です。

Excel VBA
Private Sub UserForm_Initialize()
   
   Me.ListBox1.AddItem "Snoopy"
   Me.ListBox1.AddItem "Spike"
   Me.ListBox1.AddItem "Olaf"
   Me.ListBox1.AddItem "Marbles"
   Me.ListBox1.AddItem "Belle"
   Me.ListBox1.AddItem "Andy"
   
   '選択状態にする
   Me.ListBox1.Selected(0) = True
   Me.ListBox1.Selected(2) = True
   
End Sub

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA