
エクセルVBAを使ってリストボックス内の指定した行を選択状態にする方法

リストボックスが表示された時に選ぶ確率が高い項目(指定行)を選択状態にさせて、1クリック分の手間を省きたいと思ったことありませんか?
たった1行「ListBox1.listindex = 選択したい行番号」を付け加えるだけでお好みのリストを選択状態(初期設定)にすることができます。
目次
ListIndexプロパティを付け加える
リストボックスの中の特定のリスト(項目)、言い換えれば「指定した行」を選択状態にするには、ListIndexプロパティを使います。
使い方は簡単で、VBAコードの最後End Subの前に書き加えれば完成です。
指定した項目を選択状態にするVBA
Private Sub UserForm_Initialize()
With UserForm1.Controls(“ListBox1”)
.AddItem “釧路市湿原展望台”
.AddItem “北斗展望台”
.AddItem “温根内展望テラス”
End With
ListBox1.ListIndex = 2
End Sub
解説
- ユーザーフォームイニシャライズイベントを実行する
- ユーザーフォームのリストボックス1を設定
- リストは釧路市湿原展望台
- リストは北斗展望台
- リストは温根内展望テラス
- Withステートメント終了
- リストボックス1の選択状態を先頭から2つ目(上から3番目)にする
- マクロ記録終了
ちなみに選択したい行番号は、リストボックスの場合は最初の行は1行目ではなく「0」なので、気をつけてくださいね。
ここでは、説明通りにEnd Subの前にListBox1.ListIndex = 2を書きましたが、Withステートメント内のEnd With の前にも書くことができて、尚且つ.ListIndex = 2と、ListBox1を省略してVBAコードを書くことができますよ。
また、ユーザーフォームが表示されると同時にリストの選択状態にするために、コマンドボタンにVBAコードを書くのではなく、Initializeイベントを使用していますので、Initializeの詳細については下記と重複するのでここでは省略します。
あわせて読みたい


UserForm_Initializeでセル値を取得してから表示する方法
オリジナル入力フォームとして使えるエクセルVBAのユーザーフォーム。 ラベルやコマンドボタンを複数配置するのは当たりまえですが、顧客リストなどで名前や性別などを…