★リストボックスのコード記述!
 

 さてフォームのデザインも出来たので、いよいよその中身のコード記述に入ります。
今回のコードのポイントは、
 1.Rangeプロパティでいろいろなシートとセルを指定する方法

 2.ラベルのCaptionプロパティ(ラベルに書かれる文字のこと)に選択した人の
   データを表示すること

です。
 コードは次の通りです。

Private Sub リスト氏名_Change()
  ラベル住所1.Caption = Range("基本データ!D3").Offset(リスト氏名.ListIndex).Value
  ラベル電話1.Caption = Range("基本データ!E3").Offset(リスト氏名.ListIndex).Value
  ラベル生年月日1.Caption = Range("基本データ!F3")._
  Offset(リスト氏名.ListIndex).Value
  ラベル趣味1.Caption = Range("公開情報!C3").Offset(リスト氏名.ListIndex).Value
  ラベル好きなこと1.Caption = Range("公開情報!D3")._
  Offset(リスト氏名.ListIndex).Value
End Sub

 このコードは、コンボボックスで紹介したコードと同じですね。

えっ?何のことって方は、こちらをクリック

さてこのコードの中で、前回のコンボボックスの時に説明しました

Range("基準セル").Offset(行,列)

このRangeプロパティは、()の中にセルを指定するようにしていましたが、
今回は、複数のシートの内容をひとつのフォームに表示するようにしたいので、
Rangeプロパティでシートとセルを同時に指定するようにします。

Rnage("指定シート!指定セル")

このように記述します。
上のコードでは、
Range("基本コード!D3")とありますが、これはシート「基本コード」のセルD3を指定しています。
同じく
Range("公開情報!D3")となれば、シート「公開情報」のセルD3を指定ということになります。

続いて各ラベルのCaptionプロパティを使って、ラベルに住所や電話、生年月日、趣味、好きなことを表示できるようにします。

ラベル住所1.Caption=

これはラベル住所1に表示される文字は=

ってことですね。そして

Range("基本データ!D3").Offset(リスト氏名.ListIndex).Value

これはシート基本データのセルD3からリストボックス「リスト氏名」のインデックスの数だけ移動したところにある値ってところでしょうか。
インデックスの番号は0から始まりますので、ドラえもんならリストインデックス番号は0になりますので、D3から0だけ移動した値となってそのままD3が選択されます。

今回は、リストボックスの勉強でしたが、基本的にはコンボボックスとほとんど同じです。
コンボボックスとリストボックスの使い分けをうまくしていけば、どちらも役立つコントロールです。
頑張って自分のものにしましょうね。

[トップ][前へ][リストボックス][次へ]