← コード一覧へ戻る
基本UserForm

リストボックスにデータを登録する(3):RowSource

RowSourceにこのブックのセル範囲を指定し、シートに用意した候補をリストへ表示します。

実行前に確認

  • ThisWorkbookに「候補」というシートが必要です。用意したセルの値は手入力で変えます。
  • RowSourceを使う間はAddItem・RemoveItem・Clearと混在させません。自由に編集するリストには配列方式を使います。
  • 添付目次の番号に対応させた独自の実装例です。書籍本文の方法を再現・確認したものではありません。
  • コードと公式仕様を照合した学習用の例です。Excel実機での実行確認は行っていません。

1サンプルコード

'【貼付先:UserForm1 のコードモジュール】
Option Explicit

Private Sub UserForm_Initialize()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("候補")
    Me.ListBox1.RowSource = ws.Range("A1:A3").Address(External:=True)
End Sub

図で見るセルを候補にする

イメージ図

RowSourceにこのブックのセル範囲を指定し、シートに用意した候補をリストへ表示します。

  1. 準備

    候補!A1:A3に3件を入力

  2. 指定

    外部形式のアドレスをRowSourceへ

  3. 表示

    セルの候補をリスト表示

各操作は、このガイドに指定されたフォームのコードで行います。

コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。

使い方・実行手順を確認する6つの手順で、コードの使い方を確認できます
  1. 1

    Windows版デスクトップExcelの練習用ブックを.xlsmで保存し、Alt+F11→[挿入]→[ユーザーフォーム]で、名前がUserForm1の空のフォームを用意します。各例は別々に試します。

  2. 2

    ツールボックスからListBoxを1個(ListBox1)を置き、各コントロールの[(Name)]が記載どおりか確認します。

  3. 3

    UserForm1を右クリック→[コードの表示]を開き、掲載コード全体をフォームのコードモジュールへ貼り付けます。標準モジュールには貼り付けません。

  4. 4

    実行前に「候補」シートを作り、A1に「春」、A2に「夏」、A3に「秋」を手入力します。

  5. 5

    VBEでUserForm1を選び、F5でフォームを表示します。

  6. 6

    フォームを開くと「春」「夏」「秋」の3行が表示されます。コードはセルを書き換えません。

使っている機能の公式ドキュメント(Microsoft Learn)