• ベストアンサー

オプションボタンについて

2個のオプションボタンがあってどちらか1個を選んでコマンドボタンを押すと選んだほうのフォームが開くようにするにはどうしたらいのですか?。 初歩的なことで本当に申し訳ないのですがどこを探してもサンプルがなかったので質問させていただきました。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

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 これではだめでしょうか。

1kou
質問者

補足

それでもよいといえばよいのですが^^; コマンドボタンを使いたかったのですがコマンドボタンにどちらが選択されたかという値を取得させてからつぎのフォームを表示させることは可能でしょうか?

その他の回答 (5)

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.6

× Form2.Load ○ Load Form2 × Show.Form2 ○ Form2.Show がんばれ

1kou
質問者

お礼

おかげさまで解決しました! ありがとうございました。感動です^^

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.5

#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個から増えないなら、どっちでもよい話ですが・・・・

1kou
質問者

お礼

ありがとうございます。INDEXをつかって挑戦してみます^^

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.4

VBの場合は、バージョンも明記したほうがいいですよ。 あと、今までの回答でわからないところは、あるのでしょうか? VBとVBAで似てる部分は、多いので 参考には なると思うのですが。

1kou
質問者

補足

使ってるのは 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)
回答No.3

>どちらが選択されたかという値を取得させてからつぎの 二つのオプションボタンを同じグループにしとけば 片方のみのチェックでいいですよ。 片方が Value=true ならば、もう片方は みなくても Value=false ですからね。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

プロパティのGroupNameを同じにすればそのオプションボタンは、同じグループににります。 それで どちらかのFormが開くかというこですが、 片方のオプションボタンのプロパティのValueが Trueか そうでないかで 判断して Formを開いたらいいと思いますよ。 if OptionButton1.Value=true then Form1を開く処理 とかいうふうにすればいいでしょう。 ちなみに VBAでいいのかな?

1kou
質問者

お礼

はい!VBAでいいです!!たすかりました^^ありがとうございます m( _ _ )m

1kou
質問者

補足

ごめんなさい>< VBでした・・ほんとうにごめんなさい。

関連するQ&A