- ベストアンサー
3つのオプションボタンの場所によって分岐させるselect文
3つのうち一つしか選べないオプションボタンのチェックした場所によってテキストボックスに数字を表示させる文を書きたいのですがどのようにselect case 文を書いていけばよいのでしょうか? ・3つともボタンのオブジェクト名(opt)は同じです。indexプロパティは1,2,3にしています。 select case index case 1 label.caption = 1 case 2 label.caption = 2 case 3 label.caption = 3 End select 上記ではうまくいきませんでした。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
質問のcaseによる分岐ですが、、、、 ※1.optのクリックイベントで処理を行っているのですか? ※2.それとも、別のボタンなどのタイミングで、処理を行おうとしているのですか? ※1ならそのままできるような気がするのですが、、、 もしそうなら、もう少し前後のソースの公開が必要です。 ※2なら、opt_clickイベントで opt(1).Tag=Index としておいて、必要なタイミングで label.caption = opt(1).Tag としてあげたら、すべてのオプションボタンをチェックする必要がなくなります。
その他の回答 (1)
- piyo2000
- ベストアンサー率49% (144/293)
どこでもOKな書き方だと select case true case opt(1).value label.caption = 1 case opt(2).value label.caption = 2 ・・・ のようになりますね。 #1さんが書かれておられるように、オプションボタンのClickイベントだとIndexが渡されてくるので、 質問コードそのままで動作するはずなんですが。 あとは Dim i As long For i=1 to 3'For i=opt.Lbound to opt.Ubound とすべきですが if opt(i).value then exit for next i Select case i case 1 ・・・ なんかでしょうか。 もっといえば、この場合Select~Caseで分岐する必要は全く無く Dim i As long For i=1 to 3'For i=opt.Lbound to opt.Ubound とすべきですが if opt(i).value then label.caption = cstr(i) exit for end if next i のようにしても同じ動作になります。
お礼
オプションボタンでは処理を行わずにできました。selectはいりませんでした。ありがとうございました。
お礼
if 文でできました。ありがとうございました。