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