リストボックスにデータを登録する(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にこのブックのセル範囲を指定し、シートに用意した候補をリストへ表示します。
準備
候補!A1:A3に3件を入力
指定
外部形式のアドレスをRowSourceへ
表示
セルの候補をリスト表示
各操作は、このガイドに指定されたフォームのコードで行います。
コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。
使い方・実行手順を確認する6つの手順で、コードの使い方を確認できます
- 1
Windows版デスクトップExcelの練習用ブックを.xlsmで保存し、Alt+F11→[挿入]→[ユーザーフォーム]で、名前がUserForm1の空のフォームを用意します。各例は別々に試します。
- 2
ツールボックスからListBoxを1個(ListBox1)を置き、各コントロールの[(Name)]が記載どおりか確認します。
- 3
UserForm1を右クリック→[コードの表示]を開き、掲載コード全体をフォームのコードモジュールへ貼り付けます。標準モジュールには貼り付けません。
- 4
実行前に「候補」シートを作り、A1に「春」、A2に「夏」、A3に「秋」を手入力します。
- 5
VBEでUserForm1を選び、F5でフォームを表示します。
- 6
フォームを開くと「春」「夏」「秋」の3行が表示されます。コードはセルを書き換えません。