リストボックスが選択されたとき処理する
ListBoxの選択が変わるたびに、選択内容をラベルへ表示します。
実行前に確認
- Changeはコードによる選択変更でも発生します。マウスだけでなくキーボードでの選択変更にも対応する例です。
- コードと公式仕様を照合した学習用の例です。Excel実機での実行確認は行っていません。
1サンプルコード
'【貼付先:UserForm1 のコードモジュール】
Option Explicit
Private Sub UserForm_Initialize()
Me.Width = 360
Me.Label1.AutoSize = True
Me.ListBox1.MultiSelect = fmMultiSelectSingle
Me.ListBox1.AddItem "午前"
Me.ListBox1.AddItem "午後"
Me.Label1.Caption = "時間帯を選んでください。"
End Sub
Private Sub ListBox1_Change()
Dim i As Long
i = Me.ListBox1.ListIndex
If i < 0 Then
Me.Label1.Caption = "未選択です。"
Else
Me.Label1.Caption = "選択:" & CStr(Me.ListBox1.List(i, 0))
End If
End Sub図で見る選択変更で表示更新
イメージ図ListBoxの選択が変わるたびに、選択内容をラベルへ表示します。
操作
午前または午後を選ぶ
イベント
ListBox1_Change
反映
Label1に選択値を出す
各操作は、このガイドに指定されたフォームのコードで行います。
コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。
使い方・実行手順を確認する5つの手順で、コードの使い方を確認できます
- 1
Windows版デスクトップExcelの練習用ブックを.xlsmで保存し、Alt+F11→[挿入]→[ユーザーフォーム]で、名前がUserForm1の空のフォームを用意します。各例は別々に試します。
- 2
ツールボックスからListBox1とLabel1を各1個を置き、各コントロールの[(Name)]が記載どおりか確認します。
- 3
UserForm1を右クリック→[コードの表示]を開き、掲載コード全体をフォームのコードモジュールへ貼り付けます。標準モジュールには貼り付けません。
- 4
VBEでUserForm1を選び、F5でフォームを表示します。 「午前」、続けて「午後」を選択します。
- 5
ラベルが「選択:午前」から「選択:午後」に変わります。