- ベストアンサー
Excel VBAでリストボックスの選択した値をセルに反映する方法
- Excelでは、リストボックスに表示された値をテキストボックスに表示させ、その値をセルに反映させることが可能です。
- リストボックスで選択した値をテキストボックスに表示させるためには、リストボックスのクリックイベントを使用します。
- しかし、リストボックスのクリックイベントは、リストボックスを無効にしても呼び出されてしまいます。そのため、別の方法を使う必要があります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Worksheet_SelectionChange Worksheet_Change このどちらかの中で呼び出していませんか。 あるいは呼び出していなくても、 rowsourceでデータを表示させていると このセル範囲の値が変わったときに上記のイベントが2回ずつ呼び出されます。 これが関係していないでしょうか。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
何を悩んでいるのかという感じ。 LISTBOXのアイテム選択クリックでシートのセルにセットする方法もあるが、テキストボックスにセットしたいなら (1)LISTBOXのアイテム選択クリックで (2)ボタンクリックでテキストボックスの値をシートのセルにセットする(回りくどい)方法をやるなら H1:H3で aaa bbb ccc をデータとして入れておく。 --- Listbox1のプロパティで ROWSORCEでH1:H3を指定。 フォームのコードで Private Sub CommandButton1_Click() Worksheets("Sheet1").Range("A1") = TextBox1.Text End Sub と Private Sub ListBox1_Click() TextBox1.Text = ListBox1.Text End Sub これでリストボックスを選択して、ボタンをクリックすると「A1セルに選択したアイテムがセットされる。 ーー ただし、質問文は、初心者であるため、やりたいことが十分表現できてなくて、さらに何かしたいのではないかと推測する。 いかにも練習問題で勉強といった内容で、実際に、実務などで使わないでしょう。 もともとエクセルには、入力規則で、リスト方式がありそちらを使うほうが手軽。 >クリックしてもいないのですが 以下は考える必要性がわからない。
お礼
DreamyCatさん ご回答ありがとうございます。 ご指摘のとおり、rowsourceでデータを表示しておりました。 rowsourceは止めて、Listプロパティにセットしてみたところ、解決できました。 ありがとうございました。