Tagプロパティを利用してユーザーフォームからの情報を受け取る
 ユーザーフォームとかActiveXコントロールには『Tagプロパティ』という
空っぽのプロパティがあります。
 もう、このプロパティの使い道は自由自在で、ユーザーフォームとかActiveX
コントロールには、値を格納するためのグローバル変数領域があらかじめ
用意されていると解釈すればわかりやすいと思います。
 サンプルマクロでは、ユーザーフォームのどのコマンドボタンがクリック
されたかを判断するためにTagプロパティを使っています。
 [OK]ボタンがクリックされると、「[OK]ボタンがクリックされました」、
[キャンセル]ボタンがクリックされると「[キャンセル]ボタンがクリック
されました」とメッセージボックスが表示されます。

 ユーザーフォームに2つのコマンドボタンを配置してください。
1つは[OK]ボタン(CommandButton1)、
もう1つは[キャンセル](CommandButton2)ボタンです。


標準モジュールに次のプロシージャを作成します。

Sub ShowUserForm()

    UserForm1.Show

    If UserForm1.Tag = vbOK Then
        MsgBox "[OK]ボタンがクリックされました"
    ElseIf UserForm1.Tag = vbCancel Then
        MsgBox "[キャンセル]ボタンがクリックされました"
    End If

    Unload UserForm1
    
End Sub

 ユーザーフォームの[OK]ボタン(CommandButton1)の
Clickイベントプロシージャを次のように作成します。

Private Sub CommandButton1_Click()

    Me.Tag = vbOK
    Me.Hide
    
End Sub

 ユーザーフォームの[キャンセル]ボタン(CommandButton2)の
Clickイベントプロシージャを次のように作成します。

Private Sub CommandButton2_Click()

    Me.Tag = vbCancel
    Me.Hide
    
End Sub


 「ShowUserForm」を実行して確認してください。
 Publicで宣言した変数を使う方法もありますが、
Tagプロパティは、ユーザーフォーム上の各コントロールに関する情報を
受け取るにはとても便利です。

Excel97/2000



戻る


Excel Word Access VBA! モーグ