HOME > 即効テクニック > Excel VBA > ユーザーフォーム関連のテクニック > Tagプロパティを使ってフォームを表示したプロシージャへ値を返す

即効テクニック

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

Tagプロパティを使ってフォームを表示したプロシージャへ値を返す

(Excel 97)
ユーザーフォームやActiveXコントロールにはTagプロパティという空っぽのプロパティがあります。このプロパティに、フォームに配置された2つのコマンドボックスのどちらがクリックされたかを判断する値を格納します。
フォームに2つのコマンドボタン「CommandButton1」「CommandButton2」を配置します。
フォームを表示するプロシージャでは、Tagプロパティの値を参照して、どちらのコマンドボタンがクリックされたかをメッセージボックスに表示します。
Sub ShowUserForm()
    UserForm1.Show

    If UserForm1.Tag = vbOK Then
        MsgBox "CommandButton1がクリックされました"
    ElseIf UserForm1.Tag = vbCancel Then
        MsgBox "CommandButton2がクリックされました"
    End If

    Unload UserForm1
End Sub
コマンドボタンがクリックされた時に発生するイベントには、次のように記述します。
Private Sub CommandButton1_Click()
    Me.Tag = vbOK
    Me.Hide
End Sub

Private Sub CommandButton2_Click()
    Me.Tag = vbCancel
    Me.Hide
End Sub