HOME > 即効テクニック > Excel VBA > ユーザーフォーム関連のテクニック > ユーザーフォームから変数を受け取る(変数をPublicで宣言する)

即効テクニック

ユーザーフォーム関連のテクニック

ユーザーフォームから変数を受け取る(変数をPublicで宣言する)

(Excel 97/2000/2013/2016)
ユーザーフォームのコマンドボタンがクリックされたら、呼び出し元のプロシージャに変数を返します。
まず、2つのコマンドボタンを配置したユーザーフォームを用意します。
1つは[OK]ボタン、もう1つは[キャンセル]ボタンとします。
標準モジュールに次のプロシージャを作成します。
  Public Bol_Return As Boolean
呼出し元のプロシージャ
Sub Test
    Bol_Return = False
    UserForm1.Show
    If Bol_Return Then
        MsgBox "OK が押されました"
    Else
        MsgBox "Cancel が押されました"
    Endif
End Sub
ユーザーフォームの[OK]ボタンのClick時のイベントプロシージャを次のように作成します。
Private Sub CommandButton1_Click()
      Bol_Return = True
      Unload Me
End Sub
ユーザーフォームの[キャンセル]ボタンのClick時のイベントプロシージャを次のように作成します。
Private Sub CommandButton2_Click()
      Bol_Return = False
      Unload Me
End Sub
マクロ「Test」を実行すると、プロジェクトレベルで宣言した変数にコマンドボタンから値が返されて、元のプロシージャでその値を判断することができます。