構文
構文は以下の通りです。
' フレーム内の選択されたオプションボタンを取得する
Function GetSelectedOptionButton(frame As Object) As Object
Dim optionButton As Object
' フレーム内のコントロールを順に確認
For Each optionButton In frame.Controls
If TypeName(optionButton) = "OptionButton" And optionButton.Value = True Then
' 選択されたオプションボタンを返す
Set GetSelectedOptionButton = optionButton
Exit Function
End If
Next optionButton
' 選択されたオプションボタンがない場合は Nothing を返す
Set GetSelectedOptionButton = Nothing
End Function
Function GetSelectedOptionButton(frame As Object) As Object
Dim optionButton As Object
' フレーム内のコントロールを順に確認
For Each optionButton In frame.Controls
If TypeName(optionButton) = "OptionButton" And optionButton.Value = True Then
' 選択されたオプションボタンを返す
Set GetSelectedOptionButton = optionButton
Exit Function
End If
Next optionButton
' 選択されたオプションボタンがない場合は Nothing を返す
Set GetSelectedOptionButton = Nothing
End Function
解説
この構文は、指定されたフレーム内で選択されたオプションボタンを取得する関数です。フレーム内の各コントロールを確認し、OptionButton型でかつValueプロパティがTrueであるものを見つけることで選択されたオプションボタンを特定します。
使い方
この構文を使用する際には、以下の手順を追うことが必要です。
1.フォームにフレーム(Frame1など)を配置します。
2.フレーム内にオプションボタン(OptionButton1, OptionButton2など)を配置します。
3.VBAエディタを開き、適切なモジュールに上記の構文を貼り付けます。
4.必要な処理で、GetSelectedOptionButton(Frame1)のように関数を呼び出します。
プログラミング例
以下は、上記の構文を使用した簡単なプログラミング例です。例として、選択されたオプションボタンに基づいてメッセージボックスに表示するメッセージを変えるプログラムを示します。
Sub ShowMessageBasedOnOptionButton()
Dim selectedOption As Object
Set selectedOption = GetSelectedOptionButton(Frame1)
If Not selectedOption Is Nothing Then
If selectedOption.Name = "OptionButton1" Then
MsgBox "OptionButton1が選択されました。"
ElseIf selectedOption.Name = "OptionButton2" Then
MsgBox "OptionButton2が選択されました。"
End If
Else
MsgBox "どのオプションボタンも選択されていません。"
End If
End Sub
Dim selectedOption As Object
Set selectedOption = GetSelectedOptionButton(Frame1)
If Not selectedOption Is Nothing Then
If selectedOption.Name = "OptionButton1" Then
MsgBox "OptionButton1が選択されました。"
ElseIf selectedOption.Name = "OptionButton2" Then
MsgBox "OptionButton2が選択されました。"
End If
Else
MsgBox "どのオプションボタンも選択されていません。"
End If
End Sub
このプログラムでは、GetSelectedOptionButton関数を使用して選択されたオプションボタンを取得し、それに応じて異なるメッセージを表示しています。
まとめ
フレーム内で選択されたオプションボタンを取得する方法は、コントロールのループと条件文を組み合わせることで実現されます。これを利用することで、ユーザーの選択に基づいて特定の処理を行うことが可能となります。是非活用してください。