【VBA】ユーザーフォームのリストボックスに項目を追加(表示)する方法

目次

はじめに

VBAのユーザーフォームで、ユーザーに複数の選択肢の中から項目を選んでもらう際、「リストボックス」コントロールは非常に便利です。ドロップダウンリストとは異なり、常に複数の項目を一覧で表示できるため、選択肢の全体像が分かりやすいのが特徴です。

リストボックスに表示する項目を設定する方法はいくつかありますが、この記事では、VBAコード内で作成した**配列(Array)**を使って、リストボックスに項目を一度に設定する、最も基本的で簡単な方法を解説します。


配列からリストボックスに項目を設定するVBAサンプルコード

この設定は、ユーザーフォームが表示される直前の UserForm_Initialize イベント内で行うのが一般的です。フォームが表示されると同時に、リストボックスに項目がセットされた状態になります。

ユーザーフォームのコード

' フォームが初期化されるときに実行されるイベント
Private Sub UserForm_Initialize()
    
    ' リストボックスに表示する項目の配列を準備
    Dim itemOptions As Variant
    itemOptions = Array("北海道", "東京都", "愛知県", "大阪府", "福岡県")
    
    ' Withブロックで対象のリストボックスを明示
    With Me.LocationListBox
    
        ' .List プロパティに配列を代入して、リスト項目を一括で設定
        .List = itemOptions
        
    End With
    
End Sub

実行前の準備

  1. ユーザーフォームを作成します。
  2. フォーム上に「リストボックス」コントロールを配置します。
  3. リストボックスの (Name) プロパティを LocationListBox に変更します。
  4. フォームのコードモジュールに上記の UserForm_Initialize プロシージャを貼り付けます。
  5. フォームを表示すると、リストボックスに5つの都道府県が表示されます。

コードの解説

itemOptions = Array("北海道", "東京都", ...)

Array関数は、引数として渡された値を要素とする配列を簡単に作成するための関数です。ここでは、リストボックスに表示したい文字列のリストを配列として、変数 itemOptions に格納しています。

.List = itemOptions

この一行が、リストボックスに項目を設定する核心部分です。

  • .List: リストボックスに表示されている項目のリスト全体を管理するプロパティです。
  • この .List プロパティに、先ほど作成した配列 itemOptions直接代入することで、配列の各要素がリストボックスの各行として一括で設定されます。

この方法は、ワークシートのセル範囲から項目を読み込む .RowSource プロパティとは異なり、VBAコード内だけでリストの内容が完結するため、シンプルで手軽なリストを作成する場合に適しています。


まとめ

今回は、VBAの配列(Array)を使って、ユーザーフォームのリストボックスに項目を簡単に追加する方法を解説しました。

  • 表示したい項目を Array 関数で配列にする。
  • 作成した配列を、リストボックスの .List プロパティに代入する。
  • これらの処理は UserForm_Initialize イベントで行うのが基本。

固定の選択肢をユーザーに提示したい場合、この .List プロパティと Array 関数を組み合わせる方法が最も手軽で分かりやすいでしょう。ぜひ、ご自身のフォーム開発にご活用ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次