Office プロジェクト内のイベントEvents in Office projects

各 Office プロジェクト テンプレートは、自動的に複数のイベント ハンドラーを生成します。Each Office project template automatically generates several event handlers. ドキュメント レベルのカスタマイズに使用するイベント ハンドラーは、VSTO アドイン用のイベント ハンドラーとは若干異なります。The event handlers for document-level customizations are slightly different from event handlers for VSTO Add-ins.

適用対象: このトピックの情報は、ドキュメントに適用されます-レベルのプロジェクトおよび VSTO 追加-プロジェクト。Applies to: The information in this topic applies to document-level projects and VSTO Add-in projects. 参照してくださいOffice アプリケーションおよびプロジェクトの種類で使用できる機能します。See Features available by Office application and project type.

ドキュメント レベルのプロジェクトDocument-level projects

Visual Studio では、ドキュメント レベルのカスタマイズ内の新規または既存のドキュメントまたはワークシートの背後に生成されたコードを提供します。Visual Studio provides generated code behind new or existing documents or worksheets in document-level customizations. このコードは、2 つの異なるイベントを発生させます。スタートアップシャット ダウンします。This code raises two different events: Startup and Shutdown.

Startup イベントStartup event

Startup イベントは、ドキュメントが実行中になり、アセンブリ内の初期化コードがすべて実行された後で、ホスト項目 (ドキュメント、ブックまたはワークシート) ごとに発生します。The Startup event is raised for each of the host items (document, workbook or worksheet) after the document is running and all the initialization code in the assembly has been run. これは、コードが実行されているクラスのコンストラクターで最後に実行されるイベントです。It is the last thing to run in the constructor of the class that your code is running in. ホスト項目の詳細については、次を参照してください。ホスト項目とホスト コントロールの概要します。For more information about host items, see Host items and host controls overview.

ドキュメント レベルのプロジェクトを作成する場合、Visual Studio は生成されたコード ファイル内の Startup イベント用に次のイベント ハンドラーを作成します。When you create a document-level project, Visual Studio creates event handlers for the Startup event in the generated code files:

  • Microsoft Office Word プロジェクトの場合、イベント ハンドラーの名前は ThisDocument_Startupです。For Microsoft Office Word projects, the event handler is named ThisDocument_Startup.

  • Microsoft Office Excel プロジェクトの場合、イベント ハンドラーの名前は次のようになります。For Microsoft Office Excel projects, the event handlers have the following names:

    • Sheet1_Startup

    • Sheet2_Startup

    • Sheet3_Startup

    • ThisWorkbook_Startup

Shutdown イベントShutdown event

Shutdown イベントは、コードが読み込まれるアプリケーション ドメインがアンロードされるときに、ホスト項目 (ドキュメントまたはワークシート) ごとに発生します。The Shutdown event is raised for each of the host items (document or worksheet) when the application domain that your code is loaded in is about to unload. これは、アンロード時にクラス内で呼び出される最後のイベントです。It is the last thing to be called in the class as it unloads.

ドキュメント レベルのプロジェクトを作成する場合、Visual Studio は生成されたコード ファイル内の Shutdown イベント用に次のイベント ハンドラーを作成します。When you create a document-level project, Visual Studio creates event handlers for the Shutdown event in the generated code files:

  • Microsoft Office Word プロジェクトの場合、イベント ハンドラーの名前は ThisDocument_Shutdownです。For Microsoft Office Word projects, the event handler is named ThisDocument_Shutdown.

  • Microsoft Office Excel プロジェクトの場合、イベント ハンドラーの名前は次のようになります。For Microsoft Office Excel projects, the event handlers have the following names:

    • Sheet1_Shutdown

    • Sheet2_Shutdown

    • Sheet3_Shutdown

    • ThisWorkbook_Shutdown

Note

ドキュメントの Shutdown イベント ハンドラー中にプログラムによってコントロールを削除しないでください。Do not programmatically remove controls during the Shutdown event handler of the document. Shutdown イベントが発生すると、ドキュメントの UI 要素は利用できなくなります。The UI elements of the document are no longer available when the Shutdown event occurs. アプリケーションが終了する前にコントロールを削除する場合は、 BeforeCloseBeforeSaveなどの別のイベント ハンドラーにコードを追加します。If you want to remove controls before the application closes, add your code to another event handler, such as BeforeClose or BeforeSave.

イベント ハンドラー メソッドの宣言Event handler method declarations

イベント ハンドラー メソッドの宣言にはすべて次の同じ引数が渡されます。 sendereです。Every event handler method declaration has the same arguments passed to it: sender and e. Excel では、 sender 引数は Sheet1Sheet2などのシートを参照します。Word では、 sender 引数はドキュメントを参照します。In Excel, the sender argument refers to the sheet, such as Sheet1 or Sheet2; in Word, the sender argument refers to the document. e 引数は、ここでは使用されませんが、イベントの標準の引数を参照します。The e argument refers to the standard arguments for an event, which are not used in this case.

次のコード例は、Word のドキュメント レベルのプロジェクト内にある既定のイベント ハンドラーを示します。The following code example shows the default event handlers in document-level projects for 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 のドキュメント レベルのプロジェクト内にある既定のイベント ハンドラーを示します。The following code example shows the default event handlers in document-level projects for Excel.

Note

次のコード例は、 Sheet1 クラスのイベント ハンドラーを示します。The following code example shows the event handlers in the Sheet1 class. その他のホスト項目クラス内のイベント ハンドラーの名前は、クラス名に対応しています。The names of the event handlers in other host item classes correspond to the class name. たとえば、 Sheet2 クラスでは、 Startup イベント ハンドラーの名前は Sheet2_Startupです。For example, in the Sheet2 class, the Startup event handler is named Sheet2_Startup. ThisWorkbookクラス、スタートアップイベント ハンドラーの名前はThisWorkbook_Startupします。In the ThisWorkbook class, the Startup event handler is named ThisWorkbook_Startup.

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

private void Sheet1_Shutdown(object sender, System.EventArgs e)
{
}
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

ドキュメント レベルの Excel プロジェクト内のイベントの順序Order of events in document-level Excel projects

Excel プロジェクト内の Startup イベント ハンドラーは、次の順序で呼び出されます。The Startup event handlers in Excel projects are called in this order:

  1. ThisWorkbook_StartupThisWorkbook_Startup.

  2. Sheet1_Startup.Sheet1_Startup.

  3. Sheet2_Startup.Sheet2_Startup.

  4. Sheet3_StartupSheet3_Startup.

  5. 順にその他のシート。Other sheets in order.

    ブック ソリューション内の Shutdown イベント ハンドラーは、次の順序で呼び出されます。The Shutdown event handlers in a workbook solution are called in this order:

  6. ThisWorkbook_ShutdownThisWorkbook_Shutdown.

  7. Sheet1_Shutdown.Sheet1_Shutdown.

  8. Sheet2_Shutdown.Sheet2_Shutdown.

  9. Sheet3_ShutdownSheet3_Shutdown.

  10. 順にその他のシート。Other sheets in order.

    順序は、プロジェクトがコンパイルされるときに決定されます。The order is determined when the project is compiled. 場合は、ユーザーは、実行時にシートを再配置し、そのイベントに、次回ブックが開かれたり閉じられたりが発生する順序は変わりません。If the user rearranges the sheets at runtime, it does not change the order that the events are raised the next time the workbook is opened or closed.

VSTO アドイン プロジェクトVSTO Add-in projects

Visual Studio は、VSTO アドインで生成されたコードを提供します。このコードは 2 つの異なるイベントを発生させます。 StartupShutdownです。Visual Studio provides generated code in VSTO Add-ins. This code raises two different events: Startup and Shutdown.

Startup イベントStartup event

Startup イベントは、VSTO アドインが読み込まれ、アセンブリ内のすべての初期化コードが実行された後に発生します。The Startup event is raised after the VSTO Add-in is loaded and all the initialization code in the assembly has been run. このイベントは、生成されたコード ファイル内の ThisAddIn_Startup メソッドによって処理されます。This event is handled by the ThisAddIn_Startup method in the generated code file.

ThisAddIn_Startup イベント ハンドラー内のコードは、VSTO アドインが RequestComAddInAutomationService メソッドをオーバーライドしない限り、最初に実行されるユーザー コードです。Code in the ThisAddIn_Startup event handler is the first user code to run, unless your VSTO Add-in overrides the RequestComAddInAutomationService method. この場合、 ThisAddIn_Startup イベント ハンドラーが、 RequestComAddInAutomationServiceの後に呼び出されます。In this case, the ThisAddIn_Startup event handler is called after RequestComAddInAutomationService.

内のコードを追加しないでください、ThisAdd-In_Startupイベント ハンドラーの場合は、コードがドキュメントを開く必要があります。Don't add code in the ThisAdd-In_Startup event handler if the code requires a document to be open. 代わりに、ユーザーがドキュメントを作成するとき、または開くときに Office アプリケーションが発生させるイベントにそのコードを追加します。Instead, add that code to an event that the Office application raises when a user creates or opens a document. 詳細については、次を参照してください。 Office アプリケーションの起動時にドキュメントにアクセスします。For more information, see Access a document when the Office application starts.

VSTO アドインの詳細については、スタートアップ シーケンスは、次を参照してください。 Architecture of VSTO アドインします。For more information about the startup sequence of VSTO Add-ins, see Architecture of VSTO Add-ins.

Shutdown イベントShutdown event

Shutdown イベントは、コードが読み込まれるアプリケーション ドメインがアンロードされるときに発生します。The Shutdown event is raised when the application domain that your code is loaded in is about to be unloaded. このイベントは、生成されたコード ファイル内の ThisAddIn_Shutdown メソッドによって処理されます。This event is handled by the ThisAddIn_Shutdown method in the generated code file. このイベント ハンドラーは、VSTO アドインがアンロードされるときに最後に実行されるユーザー コードです。This event handler is the last user code to run when the VSTO Add-in is unloaded.

Outlook VSTO アドインのシャット ダウン イベントShutdown event in Outlook VSTO Add-ins

Shutdown イベントは、ユーザーが Outlook の COM アドイン ダイアログ ボックスを使用して、VSTO アドインを無効にした場合にのみ発生します。The Shutdown event is raised only when the user disables the VSTO Add-in by using the COM Add-ins dialog box in Outlook. Outlook の終了時には発生しません。It is not raised when Outlook exits. Outlook の終了時に実行する必要のあるコードがある場合は、次のいずれかのイベントを処理します。If you have code that must run when Outlook exits, handle either of the following events:

Note

レジストリを変更して終了する場合、Outlook が Shutdown イベントを発生させるように強制することができます。You can force Outlook to raise the Shutdown event when it exits by modifying the registry. ただし、管理者がこの設定を元に戻す場合、 ThisAddIn_Shutdown メソッドに追加したコードは Outlook の終了時に実行されなくなります。However, if an administrator reverts this setting, any code that you add to the ThisAddIn_Shutdown method no longer runs when Outlook exits. 詳細については、次を参照してください。 Outlook 2010 でのシャット ダウンの変更します。For more information, see Shutdown changes for Outlook 2010.

関連項目See also