Accessのフォームに「オプショングループ」コントロールを配置し、その中に「オプションボタン」コントロールをいくつか挿入していくと、その『オプション値』プロパティには自動的に1、2、3、・・・・というように連番が振られます。

このとき、あとからそのプロパティ値を変更することもできますが、それでも指定できるのはあくまでも”数値のみ”です。”文字列”を設定することはできません。
そこで、選択されたオプションボタンに応じて、それに対応した文字列を返す方法、しかもその文字列をプログラム上で設定するのではなく、各コントロールのプロパティ値(ここではプロパティシートで設定できる値という意味)を参照して返す方法を紹介します。
■オプションボタンに関連付けられたラベルの標題を利用した例
ここでは次のように複数のオプションボタンとそれぞれに関連付けられたラベルコントロールが配置されているとします。

オプショングループの名前:「オプション選択」
オプションボタンの名前:左から「opt1」、「opt2」、「opt3」
そして[実行]ボタンのクリック時のイベントプロシージャを次のように記述します。オプショングループの値から選択されたオプションボタンを取得、さらにそれに関連付けられたラベルコントロール「Controls(0)」の標題「Caption」を取得して表示しています。
Private Sub 実行_Click()
'[実行]ボタンのクリック時
Dim intSelect As Integer
Dim opt As OptionButton
Dim strCaption As String
'選択されたオプションボタンの値
intSelect = Me!オプション選択
'そのオプションボタンのコントロール
Set opt = Me("opt" & intSelect)
'そのオプションボタンに関連付けられたラベルの標題
strCaption = opt.Controls(0).Caption
'ラベルの標題をメッセージ表示
MsgBox strCaption
MsgBox Me("opt" & Me!オプション選択).Controls(0).Caption
End Sub
実行例:

■オプションボタンのタグプロパティを利用した例
ここでは複数のオプションボタンそれぞれについて、「タグ」プロパティに任意の文字列を設定しておくものとします。

そして[実行]ボタンのクリック時のイベントプロシージャを次のように記述します。
Private Sub 実行_Click()
'[実行]ボタンのクリック時
'タグプロパティ値をメッセージ表示
MsgBox Me("opt" & Me!オプション選択).Tag
End Sub
実行例:
|