VBA/ユーザーフォームの値を取得

参照:https://www.moug.net/tech/exvba/0090067.html(複数のコントロール操作)
実験対象バージョン:Excel2010

サンプル

オプションのサンプル
ボタンを押下することで実行した際にボタンの状態を取得する。
オプションのサンプル

回答を取得するメソッド

Answer
                            Sub Answer(ByRef ojForm As Object)
                                Dim cForm As Control        'コントロール
      
                                'コントロール分回す
                                For Each cForm In ojForm.Controls
      
                                    'それぞれのコントロールの内容を記入
                                    '-----------------------------------------
                                    '   テキストボックスなら
                                    '-----------------------------------------
                                    If InStr(cForm.Name, "TextBox") Then
                                        'テキストボックス内をあえてメッセージで表示
                                        MsgBox cForm.Name & " " & cForm.Value
                                    End If
                                    '-----------------------------------------
                                    '   オプションボタンなら
                                    '-----------------------------------------
                                    If InStr(cForm.Name, "OptionButton") Then
                                        'オプションボタンの状態をあえてメッセージで表示
                                        MsgBox cForm.Name & " " & cForm.Value
                                    End If
  
                                Next
                          End Sub
                        

メインで呼び出し方法

                            Private Sub CommandButton1_Click()
                                Call Answer(Me)
                            End Sub
                        
ユーザーフォームを参照値で渡すことがポイントです。