即効テクニック |
ユーザーフォームのコマンドボタンがクリックされたら、呼び出し元のプロシージャに変数を返します。 まず、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」を実行すると、プロジェクトレベルで宣言した変数にコマンドボタンから値が返されて、元のプロシージャでその値を判断することができます。