本記事では「フォーム上のリストボックスで選択したデータをテキストボックスに表示する」という内容で書いていきます。
今回は下のようなユーザーフォームを使っていきます。
※上のテキストボックスのオブジェクト名は「ラベル名+”_TextBox”」にしています。
ちなみに本記事は下の「シート内のデータをリストに表示する」の続編なので、興味がある方は下も読んでみてください。
【VBA】フォーム上のリストボックスにシートのデータを表示する
本記事では「フォーム上のリストボックスにシートのデータを表示する」について解説していきます。
VBAでのツールでシート内のデータ出力やレコード編集などでデータ選択するときなどに使うことができたりします。
そして、今回は下...
では、さっそく解説していきます。
リストボックスで選択したデータをテキストボックスに表示する
フォーム上のリストボックスの値をテキストボックスに表示するコードは下の通りです。※あえて省略せずに書いています。
1 2 3 4 5 6 7 8 9 10 11 |
Private Sub ListBox1_Click() Dim i As Long Dim columnNames As Variant columnNames = Array("ID", "氏名", "年齢", "電話番号") For i = LBound(columnNames) To UBound(columnNames) Controls(columnNames(i) & "_TextBox") = ListBox1.List(ListBox1.ListIndex, i) Next End Sub |
5行目:配列に4つのラベル名を格納。
7行目:配列の最小値から最大値分のループを設定。
8行目:リストボックス内の選択されたデータをテキストボックスに入力。
今回はリストボックスの値をクリックしたときに処理を呼びだしたいのでリストボックスの「Clickイベント」を使います。
リストボックスは2次元配列形式(インデックスは最小値は”0”)でデータを持ちます。
そのリスト内の値は「Listプロパティ」で取得します。
ListBox.List(行数, 列数)
例えば、リストボックス3行目の「佐々木三郎」のレコードデータで「氏名」を取得する場合は「ListBox1.List(3, 1)」となります。
上のコードを実行し、リストボックス内のデータ(今回は「佐々木三郎レコード」)をクリックすると下のような結果が得られます。
ちなみに連続で他のデータを選択しても同じ結果が得られるようになっています。
〇おすすめのVBA参考書ランキング!
1位 | 2位 | 3位 |
---|---|---|
Excel VBA 脱初心者のための集中講座 | パーフェクトExcel VBA | ExcelVBA 実戦のための技術 |
初心者~中級者 | 中級者 | 初心者~中級者 |
【初心者が手に取るべき参考書】 ・「書籍+動画」で圧倒的に理解しやすい入門書になっている。 ・丁寧で詳しい解説でボリューム感がある。 | 【より深い理解をしたい方にお勧めな参考書】 ・テーマに対して丁寧な解説・適度な深さで解説されている。 ・幅広くテーマを扱っていることから、基礎知識をあらかた網羅できる。 | 【入門書と一緒に買うべき参考書】 ・1つ1つのテーマを経験豊富なエンジニア視点で解説してくれている。 ・実践的で効果的なコードの書き方が理解できる。 |
【読んでみた一言】 正直、入門書はコレ一冊でいいかも。あとは中級者用の参考書に進むべし。 | 【読んでみた一言】 深く書かれているが、少々専門的に書かれていることから、読む前に数冊の入門書を読破したほうが良い。 | 【読んでみた一言】 基礎知識を持っている人が次のレベルに達するきっかけを与えてくれる参考書である。 |
スポンサーリンク