
ExcelVBA リストボックス(ListBox)は、複数の選択肢の中から1つまたは複数を選択できるコンポーネントです。選択肢を視覚的に表示して、ユーザー選択操作をしやすくします。使い方や注意点など、サンプルコードをもとに具体的に解説します。
2025年の目標は繰り返し作業に悩まされない年にしませんか? Excel VBAを活用した効率化がその第一歩
本サイト参考:Excel VBAで自動化するコードのベースを習得したい方におすすめの記事
以下のようなシーンで利用で表示します。
・選択肢のあるデータ入力フォーム(例: 製品リスト、顧客リスト)
・ユーザーが項目を選択してフィルタリングを行う検索機能
・複数のデータを一括操作するための選択ツール
1. リストボックスの設置: 開発タブでユーザーフォームを作成し、リストボックスを配置
2. 選択肢の設定: リストボックスに選択肢を追加(コードまたはプロパティで設定)
3. 標準モジュールまたはフォームモジュールにコードを記述します。
リストボックスに大量のデータを追加すると動作が重くなる可能性があります。
Excel VBAで効率化の準備をしてみませんか?2025年をよりスムーズに過ごすための資格
基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事
Option Explicit
Sub ShowUserForm()
UserForm1.Show
End Sub
フォームモジュール(リストボックスの操作と選択結果の処理)
Option Explicit
Private Sub UserForm_Initialize()
' リストボックスに選択肢を追加
With Me.ListBox1
.AddItem "選択肢1"
.AddItem "選択肢2"
.AddItem "選択肢3"
End With
End Sub
フォームモジュール(単一選択の結果を取得)
Private Sub CommandButton1_Click()
Dim selectedItem As String
' リストボックスの選択項目を取得
selectedItem = Me.ListBox1.Value
' 選択チェック
If selectedItem = "" Then
MsgBox "選択肢を選んでください。", vbExclamation
Exit Sub
End If
' 結果をシートに反映
ThisWorkbook.Sheets("Sheet1").Range("A1").Value = selectedItem
' フォームを閉じる
Unload Me
End Sub
フォームモジュール( 複数選択の結果を取得)
Private Sub CommandButton2_Click()
Dim i As Integer
Dim selectedItems As String
' 選択された項目を取得
With Me.ListBox1
For i = 0 To .ListCount ・1
If .Selected(i) Then
selectedItems = selectedItems & .List(i) & vbNewLine
End If
Next i
End With
' 結果を表示またはシートに書き込む
If selectedItems = "" Then
MsgBox "選択肢を選んでください。", vbExclamation
Else
MsgBox "選択された項目:" & vbNewLine & selectedItems, vbInformation
End If
End Sub
リストボックスは動的に選択肢を追加できるため、柔軟なフォーム作成が可能です。複数選択が必要な場合は、 MultiSelect プロパティを fmMultiSelectMulti に設定します。
サンプルコードをコピーして実行すれば、初心者でも簡単に動作確認ができます。
Excel VBAで自動化するコードのベースを習得したい方におすすめ!
VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。
ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。
ExcelVBAエキスパートスタンダード
ExcelVBAの開発を仕事にする人が対象の問題集です。
Excel VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。