リストボックスで選択した内容をテキストボックスに表示する方法



The following two tabs change content below.
アバター

taka

あることがキッカケでVBAを独学で勉強しました、今ではブログを通してVBAでできることを解説しつつ、VBAや他の言語の勉強、ブログ運営の勉強をしています(^^♪

Listbox(リストボックス)で選択した内容をテキストボックスに表示する方法

どうも、taka(@takabou63)です(^^♪

最近雨が多く急に寒くなったりする日が増えてきて秋の陽気になってきました(;^ω^)風邪をひかないように気を付けないといけませんね(;´・ω・)

さて話は変わりますが、普段リストボックスを使用している場合下記の画像のようにデータの一覧が並んでいるのが普通だと思いますが、ぶっちゃけこの状態見づらくないですか?(;^ω^)まぁ青ラインがあるので問題ないかもしれませんが

このようにすると選択している人の項目がTextboxに表示されて見やすくなったと思いませんか?私が作成しているプログラムのList形式のデータはほぼすべてこのように表示するようにしています(見やすいのが一番(笑)

ということで今回は【Listbox(リストボックス)で選択した内容をテキストボックスに表示する方法】についてご紹介していきます(^^♪

用意するコントロール

今回用意するコントロールは

  1. Textboxコントロール・・・3つ
  2. Listboxコントロール・・・1つ

です。Textboxは表示したい項目数分用意してください

今回使用するデータ

今回使用するデータはこちらです。これをもとにコードを作成しています。

リストボックスで選択した内容をテキストボックスに表示するコード

今回はクリックしたリストボックスの内容をListIndexで取得してその内容をTextboxに表示させるわけですが・・・このように書きます

TextBox1.Text = ListBox1.List(ListBox1.ListIndex, 0)
TextBox2.Text = ListBox1.List(ListBox1.ListIndex, 1)
TextBox3.Text = ListBox1.List(ListBox1.ListIndex, 2)

2つ3つの項目ならこのように書いてもいいですが、10、20項目あると少し手間です。そこで使うのが前にご紹介した【Textboxを変数で操作】です(^^♪

これを使えば20項目以上あったとしても数行で済ませることができます( ^ω^ )

下記のサンプルコードには両方の方法を記述してありますのでご自由にお試しください(^^♪

Private Sub UserForm_Initialize()
'フォーム読み込み時にリストボックスの内容を読み込むコード
 Dim LastRow As Long
 Dim MyVal
 With ListBox1
  LastRow = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
  MyVal = Worksheets("Sheet1").Range("A1:C" & LastRow)
 .List() = MyVal
 End With
End Sub
Private Sub ListBox1_Click()
'↑Listboxクリックイベントを使用

'↓普通にコードを記述していくとこのような形、少数のコントロールならこれで十分。
TextBox1.Text = ListBox1.List(ListBox1.ListIndex, 0)
TextBox2.Text = ListBox1.List(ListBox1.ListIndex, 1)
TextBox3.Text = ListBox1.List(ListBox1.ListIndex, 2)
'---------------------------------------------------------------------------

'↓変数処理で記述した場合、コントロールが10や20ある場合はこの方が手っ取り早いかもしれません。
'Dim i As Long
'For i = 1 To 3 '←表示させたい数分
''↓ControlsでTextboxを変数で処理
'Controls("TextBox" & i).Text = ListBox1.List(ListBox1.ListIndex, i - 1)
'                                                    '↑ListIndexで現在選択している位置を取得、インデックスは0から始まるので
'                                                    '【1】から始まる変数iから1をマイナスして調整
' Next
'----------------------------------------------------------------------------

End Sub

 

フォロー・チャンネル登録お願いします

VBA以外についてのブログはこちら↓

https://yb-log.com/

■Twitterフォロー

■YouTubeチャンネル登録

ファイルやコードの利用、WEBサイトの利用について

サンプルコードなどは当サイトの免責事項をよくお読みになってからお使いください。

Sponsored Link

 

WordPressでブログを始めるなら

WordPress簡単インストール&安心の安定性

レンタルサーバー Xserver

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です