次の方法で共有


Activate イベント、Deactivate イベント

Activate イベントは、オブジェクトがアクティブ ウィンドウになると発生します。 Deactivate イベントは、オブジェクトがアクティブ ウィンドウでなくなると発生します。

構文

プライベート サブオブジェクト_Activate( )
Private Subobject_Deactivate( )

object のプレースホルダーは、評価結果が [適用先] リストのオブジェクトとなるオブジェクトの式を表します。

解説

コードで Show メソッドを使用すると、オブジェクトをアクティブにできます。

Activate イベントは、オブジェクトが表示されている場合のみ発生します。 Load で読み込まれた UserForm は、Show メソッドを使用しない限り表示されません。

Activate イベントと Deactivate イベントは、アプリケーション内でフォーカスが移動された場合のみ発生します。 別のアプリケーションで、オブジェクトからまたはオブジェクトにフォーカスが移動されても、いずれのイベントもトリガーされません。

Deactivate イベントは、オブジェクトの読み込み解除では発生しません。

次のコードでは、UserForm1 と UserForm2 の 2 つの UserForm を使用しています。 これらのプロシージャを UserForm1 モジュールにコピーしてから、UserForm2 を追加します。 UserForm1 のキャプションが、その Activate イベント プロシージャに作成されます。 ユーザーが UserForm1 のクライアント領域をクリックすると、UserForm2 が読み込まれて表示され、UserForm1 の Deactive イベントがトリガーされ、キャプションが変更されます。

' Activate event for UserForm1
Private Sub UserForm_Activate()
    UserForm1.Caption = "Click my client area"
End Sub

' Click event for UserForm1
Private Sub UserForm_Click()
    Load UserForm2
    UserForm2.StartUpPosition = 3
    UserForm2.Show
End Sub

' Deactivate event for UserForm1
Private Sub UserForm_Deactivate()
    UserForm1.Caption = "I just lost the focus!"
    UserForm2.Caption = "Focus just left UserForm1 and came to me"
End Sub

関連項目

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。