次の方法で共有


Visual Studio Tools for Office プロジェクトのイベント

更新 : 2007 年 11 月

各 Visual Studio Tools for Office プロジェクト テンプレートは、自動的に複数のイベント ハンドラを生成します。ドキュメント レベルのカスタマイズとアプリケーション レベルのアドインでは、イベント ハンドラが少し異なります。

カスタマイズとアドインの詳細については、「Office ソリューションの開発の概要」を参照してください。

ドキュメント レベルのカスタマイズ

Visual Studio Tools for Office は、ドキュメント レベルのカスタマイズで、新規または既存のドキュメントまたはワークシートのコードを生成します。このコードにより、2 つの 異なるイベントが発生します。それは、Startup と Shutdown です。

スタートアップ イベント

Startup イベントは、ドキュメントが実行され、アセンブリ内のすべての初期化コードが実行された後に、各ホスト項目 (ドキュメントまたはワークシート) に対して発生します。これは、コードが実行されるクラスのコンストラクタで最後に実行される要素です。ホスト項目の詳細については、「ホスト項目とホスト コントロールの概要」を参照してください。

ドキュメント レベルのプロジェクトを作成すると、生成されたコード ファイル内に、Visual Studio Tools for Office によって Startup イベントのイベント ハンドラが作成されます。

  • Microsoft Office Word プロジェクトでは、イベント ハンドラの名前は ThisDocument_Startup です。

  • Microsoft Office Excel プロジェクトでは、イベント ハンドラの名前は次のようになります。

    • Sheet1_Startup

    • Sheet2_Startup

    • Sheet3_Startup

    • ThisWorkbook_Startup

シャットダウン イベント

Shutdown イベントは、コードが読み込まれているアプリケーション ドメインがアンロードされるときに、各ホスト項目 (ドキュメントまたはワークシート) に対して発生します。これは、アンロード時にクラス内で最後に呼び出されます。

ドキュメント レベルのプロジェクトを作成すると、生成されたコード ファイル内に、Visual Studio Tools for Office によって Shutdown イベントのイベント ハンドラが作成されます。

  • Microsoft Office Word プロジェクトでは、イベント ハンドラの名前は ThisDocument_Shutdown です。

  • Microsoft Office Excel プロジェクトでは、イベント ハンドラの名前は次のようになります。

    • Sheet1_Shutdown

    • Sheet2_Shutdown

    • Sheet3_Shutdown

    • ThisWorkbook_Shutdown

7xy91eax.alert_note(ja-jp,VS.90).gifメモ :

ドキュメントの Shutdown イベント ハンドラでは、コントロールをプログラムで削除しないでください。Shutdown イベントが発生すると、ドキュメントの UI 要素は使用できなくなります。アプリケーションが終了する前にコントロールを削除する場合は、BeforeClose や BeforeSave などの別のイベント ハンドラにコードを追加してください。

イベント ハンドラのメソッド宣言

各イベント ハンドラのメソッド宣言には、sender および e の同じ引数が渡されます。Excel では、sender 引数は Sheet1 または Sheet2 などのシートを参照します。Word では、sender 引数は、ドキュメントを参照します。e 引数はイベントの標準引数を参照しますが、この場合は使用されていません。

次のコード例は、Word のドキュメント レベルのプロジェクトに含まれる既定のイベント ハンドラを示しています。

Private Sub ThisDocument_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles Me.Startup

End Sub

Private Sub ThisDocument_Shutdown(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles Me.Shutdown

End Sub
private void ThisDocument_Startup(object sender, System.EventArgs e)
{
}

private void ThisDocument_Shutdown(object sender, System.EventArgs e)
{
}

次のコード例は、Excel のドキュメント レベルのプロジェクトに含まれる既定のイベント ハンドラを示しています。

7xy91eax.alert_note(ja-jp,VS.90).gifメモ :

次のコード例は、Sheet1 クラスのイベント ハンドラを示しています。他のホスト項目クラスでは、イベント ハンドラの名前はクラス名に対応します。たとえば、Sheet2 クラスでは、Startup イベント ハンドラの名前は Sheet2_Startup です。ThisWorkbook クラスでは、Startup イベント ハンドラの名前は ThisWorkbook_Startup となります。

Private Sub Sheet1_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles Me.Startup

End Sub

Private Sub Sheet1_Shutdown(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles Me.Shutdown

End Sub
private void Sheet1_Startup(object sender, System.EventArgs e)
{
}

private void Sheet1_Shutdown(object sender, System.EventArgs e)
{
}

アプリケーション レベルのアドイン

Visual Studio Tools for Office によって、アプリケーション レベルのアドインのコードが生成されます。このコードにより、2 つの 異なるイベントが発生します。それは、StartupShutdown です。

スタートアップ イベント

アドインが読み込まれ、アセンブリ内のすべての初期化コードが実行された後に、Startup イベントが発生します。このイベントは、生成されたコード ファイル内の ThisAddIn_Startup メソッドによって処理されます。

ThisAddIn_Startup イベント ハンドラのコードは、アドインが RequestComAddInAutomationService メソッドをオーバーライドしていない限り、最初に実行されるユーザー コードです。その場合、ThisAddIn_Startup イベント ハンドラは RequestComAddInAutomationService の後に呼び出されます。2007 Microsoft Office system 用のアドインでは、アドインが RequestService メソッドをオーバーライドする場合、このメソッドの後にも ThisAddIn_Startup イベント ハンドラのコードが呼び出されることがあります。

アドインの起動処理の詳細については、「アプリケーション レベルのアドインのアーキテクチャ」を参照してください。

シャットダウン イベント

Shutdown イベントは、コードが読み込まれているアプリケーション ドメインをアンロードするときに発生します。このイベントは、生成されたコード ファイル内の ThisAddIn_Shutdown メソッドによって処理されます。このイベント ハンドラは、アドインがアンロードされるときに最後に実行されるユーザー コードです。

参照

処理手順

方法 : Visual Studio Tools for Office プロジェクトを作成する

概念

Office ソリューションの開発

ドキュメント レベルのカスタマイズのプログラミング

アプリケーション レベルのアドインのプログラミング

Visual Studio Tools for Office のプロジェクト テンプレートの概要