- ベストアンサー
オプションボタンについて
2個のオプションボタンがあってどちらか1個を選んでコマンドボタンを押すと選んだほうのフォームが開くようにするにはどうしたらいのですか?。 初歩的なことで本当に申し訳ないのですがどこを探してもサンプルがなかったので質問させていただきました。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
Private Sub Option1_Click() Form2.Visible = False Form3.Visible = True Form3.Show End Sub Private Sub Option2_Click() Form3.Visible = False Form2.Visible = True Form2.Show End Sub これではだめでしょうか。
その他の回答 (5)
- TAGOSAKU7
- ベストアンサー率65% (276/422)
× Form2.Load ○ Load Form2 × Show.Form2 ○ Form2.Show がんばれ
お礼
おかげさまで解決しました! ありがとうございました。感動です^^
- TAGOSAKU7
- ベストアンサー率65% (276/422)
#1の回答への「補足」と「お礼」がどっちが先に書かれた物かがわからないので、VBかVBAかがわかりませんが、質問者のこれまでの質問履歴からVBと判断して書きます。 私の場合は、まずオプションボタンをコントロール配列にします。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=413867 クリックイベント時に、先頭のオプションボタンコントロールなどのTagか、あるいは共通変数にIndex値を記憶させて、コマンドボタンクリック時にIndex値を読み取ることで、処理を分岐させてあげたらよいと思います。 もし、どのオプションボタンが有効かをコマンドボタンクリック時に探しに行くとしたら、オプションボタンの数だけループするロジックが必要になります。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=395834 最悪なケースとしては、ループの一番最後がTrueの時、全てのコントロールの値をチェックしなければなりません。 チェックボックスなどの、複数選択が可能なコントロールに対して行うべき処理であって、確実に一個しか選択されないオプションボタンでは無用な処理となります。 ですので、オプションボタンクリック時に、Indexを保持することをおすすめします。 >2個のオプションボタンがあって 2個から増えないなら、どっちでもよい話ですが・・・・
お礼
ありがとうございます。INDEXをつかって挑戦してみます^^
- taknt
- ベストアンサー率19% (1556/7783)
VBの場合は、バージョンも明記したほうがいいですよ。 あと、今までの回答でわからないところは、あるのでしょうか? VBとVBAで似てる部分は、多いので 参考には なると思うのですが。
補足
使ってるのは VB6.0 windows developmentでした 自分なりにtakntさんのものをさんこうにして作ってみましたがデータまたはメソッドが見つかりませんとでましたがこれは何が原因でしょうか^^; なんどもすみませんm( _ _ )m Private Sub Command1_Click() If Option1.Value = True Then Form2.Load Show.Form2 Else Form3.Load Show.Form3 End If End Sub
- taknt
- ベストアンサー率19% (1556/7783)
>どちらが選択されたかという値を取得させてからつぎの 二つのオプションボタンを同じグループにしとけば 片方のみのチェックでいいですよ。 片方が Value=true ならば、もう片方は みなくても Value=false ですからね。
- taknt
- ベストアンサー率19% (1556/7783)
プロパティのGroupNameを同じにすればそのオプションボタンは、同じグループににります。 それで どちらかのFormが開くかというこですが、 片方のオプションボタンのプロパティのValueが Trueか そうでないかで 判断して Formを開いたらいいと思いますよ。 if OptionButton1.Value=true then Form1を開く処理 とかいうふうにすればいいでしょう。 ちなみに VBAでいいのかな?
お礼
はい!VBAでいいです!!たすかりました^^ありがとうございます m( _ _ )m
補足
ごめんなさい>< VBでした・・ほんとうにごめんなさい。
補足
それでもよいといえばよいのですが^^; コマンドボタンを使いたかったのですがコマンドボタンにどちらが選択されたかという値を取得させてからつぎのフォームを表示させることは可能でしょうか?