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

Excel97/2000



戻る


Excel Word Access VBA! モーグ