まず、
LabelコントロールにはValueプロパティがありませんから
「メソッドまたはメンバが見つかりません」のコンパイルエラーになります。
VBEditorで[F2]キー、[オブジェクトブラウザ]を開いて
<すべてのライブラリ>ではなく
[ MSForms ]ライブラリの中から
[ Label ]を検索してみてください。
Label のメンバにどんなものがあるか確認する事ができます。
また、ComboBox1にアイテムを追加する時、
コード内に直値を書き込んでしまうと変動時の修正が大変です。
シートに設定するなら、そこから読み込んだほうが良いです。
どうせ読み込むなら、「顧客種別」も同時に読み込めば、
VLookup関数を使う必要もなくなります。
Private Sub UserForm_Initialize()
Dim r As Range
With Worksheets(2)
'B列基準でデータ範囲を取得
Set r = .Range("C3", .Cells(.Rows.Count, 2).End(xlUp))
'データ範囲以下に無関係な何かが入力してあるなら
'Set r = .Range("C3", .Range("B3").End(xlDown))
End With
With Me.ComboBox1
'Comboを2列設定し2列目は非表示
.ColumnCount = 2
.ColumnWidths = ";0"
'データ範囲 r をまとめてセット
.List = r.Value
End With
Set r = Nothing
End Sub
Private Sub ComboBox1_Click()
Worksheets(2).Activate
With Me.ComboBox1
'ComboBoxのListの選択行、2列目の値。(Indexは0から始まる)
Me.Label4.Caption = .List(.ListIndex, 1)
End With
End Sub
お礼
ご丁寧なご回答ありがとうございます。 ご回答について補足質問がございます。 そちらについてもご確認いただければ 幸いです。
補足
コードの記述及び各コードのご説明ありがとうございます。 上記の通りコードを書き換えると、 顧客名と顧客種別を同時に選択することができました。 ただ Set r = Nothing というコードの存在が良く分かりません。 ネットなどで検索をかけて見ていると、 「フォームの解放処理が行われずに、 メモリ上に残ってしまう現象なのだと 想像できます」 と初心者には分かったようわからないような説明が 書いてあったりします。 end-u様のコードにあてはめて考えてみて、 もしこのコードがないとどんな不都合が生じるのでしょうか? たびたびの質問で恐縮ですが、 ご教示くだされば幸いです ちなみに私が検索したHPのアドレスは 以下の通りです。 http://www.gizcollabo.jp/vbtomo/log/archive/vbqanda_11269_1.html