Access VBAについて教えてください。フォーム上にラジオボタンA、ラジオボタンB、ラジオボタンCがあります。各オプション値は1,2,3です。オプションボタンを選択して実行ボタンを押すと各処理が走るという仕組みにしたいです。そこで分岐処理を書きました。ちなみにオプションはグループ化されています。またオプショングループ1の中に実行ボタンが配置。オプショングループ1の中のオプショングループ2にラジオボタンを配置してます。


If optionvalue1.value=1 Then
処理
ElseIf optionvalue2.value=2 Then
処理
Else
処理
End If
という処理です。この式はあっているでしょうか?以前http://q.hatena.ne.jp/1234976417での回答では上手に分岐しませんでした。以前はオプションボタン2を選択しているとします。オプション値は2です。にもかかわらず、実行ボタンを押すと既定値1のオプションボタン1を方に分岐がいってしまいました。今回は”実行時エラー2427 指定した式には値がありません"というメッセージが表示されてしまい、動きません。オプション値は正しく設定されています。どこが間違っているでしょうか?

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2009/03/03 20:22:38
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:SALINGER No.1

回答回数3454ベストアンサー獲得回数969

ポイント150pt

ラジオボタンとフレームの関係なのですが、どのラジオボタンが選択されているかは1つ上のフレームのValueでわかります。

この場合、オプショングループ1がoptionvalue1で、オプショングループ2がoptionvalue2ならば、

optionvalue1は常にNullとなります。修正すると

If optionvalue2.value=1 Then
処理
ElseIf optionvalue2.value=2 Then
処理
Else
処理
End If

また、ラジオボタンがどれも押されていない状態だとNullを返すので、

Private Sub Form_Load()
    Me.optionvalue2.Value = 1
End Sub

などで、ロードと同時にデフォルトのラジオボタンが選択されているようにすればいいです。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません