Windows 10 Pro_x64 + Excel2013_x86 VBA で Frame + OptionButton を使う
Windows 10 Pro_x64 + Excel2013_x86 VBA で Frame + OptionButton を使う
Frame + OptionButton はペアで使うことが多いのだけど
・OptionButtonクリックイベントで モジュールプライベートの変数にステータスをセット
・CommandButtonクリックイベントでステータスを取得する
だと、前者を選ぶ気がするんだけどな・・
MSのドキュメントで Controls の説明見つからなかったんだけど
どこにあるんだろう??(あるのかな)
・UserFormを1個追加する
・Frameを1個追加する
・Frameの上にOptionButtonを4個追加する
・CommandButtonを1個追加する
Option Explicit Private Sub UserForm_Initialize() ' ' 初期値の設定 ' OptionButton1.Value = True End Sub Private Sub OptionButton1_Click() Debug.Print "OptionButton1:" & OptionButton1.Value Debug.Print "OptionButton2:" & OptionButton2.Value Debug.Print "OptionButton3:" & OptionButton3.Value Debug.Print "OptionButton4:" & OptionButton4.Value End Sub Private Sub OptionButton2_Click() Debug.Print "OptionButton1:" & OptionButton1.Value Debug.Print "OptionButton2:" & OptionButton2.Value Debug.Print "OptionButton3:" & OptionButton3.Value Debug.Print "OptionButton4:" & OptionButton4.Value End Sub Private Sub OptionButton3_Click() Debug.Print "OptionButton1:" & OptionButton1.Value Debug.Print "OptionButton2:" & OptionButton2.Value Debug.Print "OptionButton3:" & OptionButton3.Value Debug.Print "OptionButton4:" & OptionButton4.Value End Sub Private Sub OptionButton4_Click() Debug.Print "OptionButton1:" & OptionButton1.Value Debug.Print "OptionButton2:" & OptionButton2.Value Debug.Print "OptionButton3:" & OptionButton3.Value Debug.Print "OptionButton4:" & OptionButton4.Value End Sub Private Sub CommandButton1_Click() ' Dim varCtrl As Variant ' For Each varCtrl In Controls ' ' Like "OptionButton[1-4]" ' :OptionButton1~ OptionButton4 に一致 ' If varCtrl.Name Like "OptionButton[1-4]" Then 'Debug.Print varCtrl.Name, varCtrl.Value ' ' varCtrl.Name :OptionButton1~OptionButton4 に一致 ' varCtrl.Value :True/False ' Select Case varCtrl.Name Case "OptionButton1" If varCtrl.Value Then Debug.Print "Checked OptionButton1:" & OptionButton1.Value End If Case "OptionButton2" If varCtrl.Value Then Debug.Print "Checked OptionButton2:" & OptionButton2.Value End If Case "OptionButton3" If varCtrl.Value Then Debug.Print "Checked OptionButton3:" & OptionButton3.Value End If Case "OptionButton4" If varCtrl.Value Then Debug.Print "Checked OptionButton4:" & OptionButton4.Value End If End Select End If Next End Sub