- ベストアンサー
VBA オプションボタンについてです
超初心者で申し訳ありません フォームにオプションボタン1,2,3があり op1を選ぶと"List"というシートのA列が反映され、op2を選ぶとB列が反映 op3を選ぶとC列が反映されるようにしたいのですがどのようにしたらよいのでしょうか? 誠に申し訳ありませんが、宜しくお願いします なお、条件として、コンボボックスが3つ有り、cb1,2,3がそれぞれ"List"というシートの A列、B列、C列がそれぞれ反映されるようになっております
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ようやく理解できました。 こんな感じでいかがでしょう。 該当が無い場合はTextBoxには空白を入れています。 Listシートに作業列としてD列を一列追加します。 D2に=A2&B2&C2と入れて下にコピーして置きます。 ユーザフォームのモジュールに以下のコードを追加します。 Sub Sample() Dim vData Dim sSearch As String Dim nSelect As Long vData = "" sSearch = ComboBox1.Text & ComboBox2.Text & ComboBox3.Text nSelect = -2 * OptionButton1 - 3 * OptionButton2 - 4 * OptionButton3 On Error Resume Next vData = WorksheetFunction.VLookup(sSearch, Worksheets("List").Range("D:G"), nSelect, False) TextBox1.Text = vData End Sub あとは、各ComboBoxのChangeイベントと、各OptionButtonのClickイベントで、上記のSampleをコールします。 例: Private Sub OptionButton1_Click() Call Sample End Sub
その他の回答 (2)
- mt2008
- ベストアンサー率52% (885/1701)
ANo.1です。 ちょっとまだピンと来ないので画面イメージを作って見ました。 こんな感じですか? こんな感じだとしたら、オプションボタンを選択する事でどうなって欲しいのでしょうか?
お礼
早速のお返事ありがとうございます 分かりにくくて、非常に申し訳ありません
補足
わざわざすいません たとえば 大項目 中項目 小項目 壁付け ラック付属 机上 テレビ 42インチ HDD内蔵 300,000 350,000 250,000 テレビ 42インチ HDDなし 250,000 300,000 200,000 テレビ 36インチ HDD内蔵 250,000 300,000 200,000 テレビ 36インチ HDDなし 200,000 250,000 150,000 ビデオ BR内蔵 HDD1TB 100,000 120,000 80,000 ビデオ BR内蔵 HDD500GB 80,000 100,000 60,000 ビデオ DVD内蔵 HDD1TB 120,000 140,000 100,000 ビデオ DVD内蔵 HDD500GB 100,000 120,000 80,000 と、言うリストがありまして、 テレビー36インチ-HDD内蔵と選び、opの2を選ぶと テキストボックス(記入漏れしておりました)に300,000と 反映したく思います 宜しくお願いします
- mt2008
- ベストアンサー率52% (885/1701)
補足願います。 どこに"List"というシートのA~C列が「反映」されるんでしょうか? 最後に書いてある条件がどう関係するのかも良く判らないです。
お礼
早速の回答ありがとうございます 分かりにくい質問でしたが、宜しくお願いします
補足
補足いたします シートが2枚有り、データというシートと、Listというシートがあります "データ"シートは、実際にフォームで選んでいったものをコマンドボタンで 実行すると、書き写すシートで、"List"シートは、名のとおり、A列には大項目が いくつかあり、コンボボックス1で選んだ項目が、B列の中項目のデータの中からコンボボックス2に反映し、リスト表示されます。 そして、C列の小項目のデータの中からコンボボックス3に反映し、リスト表示されています その上記コンボボックス1,2,3でそれぞれ選んだものを、オプションボタンの 1,2,3のいずれかを選ぶことによって、op1ならD列、2ならE列、3ならF列を選ぶというようにいしたいです。 すいません、上記質問の説明が間違っておりました 申し訳ありませんが、宜しくお願いします
お礼
ありがとうございます 早速試してみます ご無理を申しまして、申し訳ありません