プロが教える店舗&オフィスのセキュリティ対策術

リストボックスに下記の値
1
2
3

シート1の行と列に下記の値
A B C D E
1 かさたな
2 たなはま
3 わらなや

教えて頂きたいマクロは下記になります。

リストボックスの2を選択
2に該当するシート1のB列の『た』をラベル1に表示
D列の『は』をラベル2に表示

よろしくお願いします。

質問者からの補足コメント

  • 回答ありがとうございます。
    コントロールは全てuserForm2になります。

    No.1の回答に寄せられた補足コメントです。 補足日時:2015/05/16 09:54
  • まさにやりたいのは添付画像の通りなのですが、「型が一致しません」とエラー表示になってしまいます。
    ※情報が少ない中、答えて頂き感謝です。

    自分なりに改良しましたが、うまくいきません。。。


    Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Index = no + 4
    With Worksheets("データ")
    Rows(Index).Select
    Dim 行番号 As Integer
    行番号 = ActiveCell.Row
    Label8.Caption = Cells(行番号, 2)
    Label11.Caption = Cells(行番号, 4)
    End With
    End Sub

    No.2の回答に寄せられた補足コメントです。 補足日時:2015/05/17 09:30
  • リストボックスへの反映は、
    ユーザーフォームでテキストボックスに入力 → 検索コマンドクリック → データシートからリストボックスへ抽出となっています

      補足日時:2015/05/17 09:33
  • なんども丁寧に返信をありがとうございます。
    Valueの型がセル(文字列)と一致していないなだと思います。
    例では数字でしたが、実際には数字以外も入力しています。
    なんとか調べてみます。

    No.3の回答に寄せられた補足コメントです。 補足日時:2015/05/18 08:12

A 回答 (4件)

たとえば


Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Me.Label1.Caption = Cells(Me.ListBox1.Value, 2)
Me.Label2.Caption = Cells(Me.ListBox1.Value, 4)
End Sub
ということ?
コントロールは全てシート上のActiveXコントロールと仮定。
「リストボックスの値を選択」の回答画像1
この回答への補足あり
    • good
    • 0

ほとんど変わりません。

前回同様にダブルクリック時にしてます。

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Me.Label1.Caption = Sheets(1).Cells(Me.ListBox1.Value, 2)
Me.Label2.Caption = Sheets(1).Cells(Me.ListBox1.Value, 4)
End Sub
「リストボックスの値を選択」の回答画像2
この回答への補足あり
    • good
    • 0

>「型が一致しません」とエラー表示


これ、実行時エラーになっているのでしょう?
止まったところの変数やオブジェクトを確認すれば問題解決できるハズです。

あと、気になったのは
>Index = no + 4
どこで変数の定義を行っているのでしょう。
http://www.accessclub.jp/vba/vba_016.htm
宣言しないで暗黙の型変換に頼ると問題発生時に解決しにくいです。
また、Index という名前はオブジェクトのプロパティ名でも使われていますし
no はBoolean型の定数名でも使われているので変数名としては適切ではないと思います。

回答#2 か あなたのうまく行っていた状態まで巻き戻して
徐々に改良を加え
上手く動作しなかったら、ステップ実行やイミディエイトウィンドウで確認してください。
この回答への補足あり
    • good
    • 0

では、こういうこと?


Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Me.Label1.Caption = Sheets(1).Cells(Me.ListBox1.ListIndex + 1, 2)
Me.Label2.Caption = Sheets(1).Cells(Me.ListBox1.ListIndex + 1, 4)
End Sub

Private Sub UserForm_Initialize()
ListBox1.AddItem "い", 0
ListBox1.AddItem "ろ", 1
ListBox1.AddItem "は", 1
End Sub

ヘルプで調べてみてください。
解決しないようなら、ここはいったん締め切ってしまって
あなたが実際に行いたいこと、実際の状況(回答者が再現できるものであれば本物でなくとも可)
を再度質問されては?
「リストボックスの値を選択」の回答画像4
    • good
    • 0
この回答へのお礼

何度も丁寧に教えて頂き感謝です。
かなり近いところまできました.

お礼日時:2015/05/18 21:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!