【ExcelVBA】フォーム上に設置されたListboxの項目をクリックして選択された値をテキストボックスに表示するには

この記事では、フォーム上に設置されたListboxの項目をクリックして選択された値をテキストボックスに表示する方法についてご説明します。

【動画】フォーム上に設置されたListboxの項目をクリックして選択された値をテキストボックスに表示する実際の動き

本題に入る前に、まずは次の動画をご覧ください。


Listboxのlistプロパティに行位置と列位置を指定することでListboxの値を取得することができます。

今回は選択している行位置の各値を取得したいので、行位置にはクリックした行位置を指定しています。

クリックした行が何行目かは、ListBoxのListIndexから取得することができます。

取得したListboxの値は、各テキストボックスに出力して表示しています。

STEP.1
Listboxのlistプロパティに、クリックした行位置と列位置を指定する
Listboxのlistプロパティに行位置と列位置を指定します。listプロパティからは、クリックした行位置の指定した列位置にある値を返します。
STEP.2
STEP.1で取得した値をセルに設定する
STEP.1で取得した値をテキストボックスに設定します。

フォームの例

今回は次のフォームを作成しました。

Listboxをクリックすると、下の画像のように選択した行の値が各テキストボックスに表示されます。

コードの例

Option Explicit

Private Sub ListBox1_Click()
    
    txb_no.Text = ListBox1.List(ListBox1.ListIndex, 0)
    txb_name.Text = ListBox1.List(ListBox1.ListIndex, 1)
    txb_empNo.Text = ListBox1.List(ListBox1.ListIndex, 2)
    txb_age.Text = ListBox1.List(ListBox1.ListIndex, 3)
    txb_hometown.Text = ListBox1.List(ListBox1.ListIndex, 4)
    txb_yearOfJoining.Text = ListBox1.List(ListBox1.ListIndex, 5)
    txb_department.Text = ListBox1.List(ListBox1.ListIndex, 6)
    txb_position.Text = ListBox1.List(ListBox1.ListIndex, 7)

End Sub

注目すべきコード

見て頂きたいのは5行目から12行目です。

コードの説明

以上のコードは、クリックした行の各値をテキストボックスに出力しているコードです。

コードの詳細

5行目のコードは、クリックしたListboxのデータ行にある1つ目の列の値をテキストボックス「txb_no」のTextプロパティに設定しています。

1つ目の列を指定するには、listプロパティの第2引数に0を指定します。

2列目なら1を、3列目なら2を、というように指定します。

また、クリックした行位置はListIndexプロパティから取得することができます。

このListIndexプロパティをListプロパティの第1引数に指定し、Listプロパティの第2引数に0を指定することでクリックした行の1列目の値を取得することができます。

6行目から12行目についても、Listプロパティの第1引数にListIndexプロパティを、第2引数にListboxの列位置に対応した1から7までのいずれかを指定することで選択した行の各値をテキストボックスに出力することができます。

動作確認

マクロ実行前

マクロ実行前はまだListboxの行はクリックされておらず、テキストボックスに値が出力されていません。

マクロ実行後

Listboxの1行目をクリックすると1行目の各値が各テキストボックスに出力されました。

最後に

本記事では、フォーム上に設置されたListboxの項目をクリックして選択された値をテキストボックスに表示する方法についてご説明しました。

フォーム上に設置されたListboxの項目をクリックしてその行の値をテキストボックスに表示させたい時は本記事を参考にしてみてくださいね。

プログラミングのスキルを習得するなら

プログラミングのスキルを習得したい、今のスキルをもっと高めたい、そう考えているなら「プログラミングスクール」がおすすめです。

プログラミングのスキルの基礎を身につけるなら「TechAcademy」で1週間の無料体験があるので、これで「プログラミングの基礎」を学ぶのにおすすめですよ。

→ TechAcademyの「1週間 無料体験」はこちら