Office プロジェクト内のオブジェクトへのグローバルアクセスGlobal access to objects in Office projects

Office プロジェクトを作成すると、Visual Studio は自動的に Globals という名前のクラスをプロジェクトに生成します。When you create an Office project, Visual Studio automatically generates a class named Globals in the project. Globals クラスを使用して、プロジェクト内の任意のコードから実行時に異なる複数のプロジェクト項目にアクセスすることができます。You can use the Globals class to access several different project items at run time from any code in the project.

適用対象: このトピックの情報は、ドキュメントに適用されます-レベルのプロジェクトおよび 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.

Globals クラスの使用方法How to use the Globals class

Globals はプロジェクト内の特定の項目への参照を保持する静的クラスです。Globals is a static class that keeps references to certain items in your project. Globals クラスを使用することで、実行時にプロジェクト内の任意のコードから次の項目へとアクセスすることができます。By using the Globals class, you can access the following items from any code in the project at run time:

  • Excel ブックまたはテンプレート プロジェクトの ThisWorkbook および Sheetn クラス。The ThisWorkbook and Sheetn classes in an Excel workbook or template project. これらのオブジェクトは、 Globals.ThisWorkbook および Sheetn プロパティを使用してアクセスすることができます。You can access these objects by using the Globals.ThisWorkbook and Sheetn properties.

  • Word 文書またはテンプレート プロジェクトの ThisDocument クラス。The ThisDocument class in a Word document or template project. このオブジェクトには、 Globals.ThisDocument プロパティを使用してアクセスすることができます。You can access this object by using the Globals.ThisDocument property.

  • VSTO アドインプロジェクトのクラス。ThisAddInThe ThisAddIn class in a VSTO Add-in project. このオブジェクトには、 Globals.ThisAddIn プロパティを使用してアクセスすることができます。You can access this object by using the Globals.ThisAddIn property.

  • リボン デザイナーを使用してカスタマイズした、プロジェクト内のすべてのリボン。All Ribbons in your project that you customized by using the Ribbon Designer. リボンには、 Globals.Ribbons プロパティを使用してアクセスすることができます。You can access the Ribbons by using the Globals.Ribbons property. 詳細については、「実行時のリボンへのアクセス」を参照してください。For more information, see Access the Ribbon at run time.

  • Outlook VSTO アドイン プロジェクトのすべての Outlook フォーム領域。All Outlook form regions in an Outlook VSTO Add-in project. フォーム領域には、 Globals.FormRegions プロパティを使用してアクセスすることができます。You can access the form regions by using the Globals.FormRegions property. 詳細については、「実行時のフォーム領域へのアクセス」を参照してください。For more information, see Access a form region at run time.

  • .NET Framework 4.NET Framework 4 または .NET Framework 4.5.NET Framework 4.5をターゲットとするプロジェクトで実行時にリボン コントロールおよびホスト項目を作成できるようにするファクトリ オブジェクト。A factory object that enables you to create Ribbon controls, and host items at run time in projects that target the .NET Framework 4.NET Framework 4 or the .NET Framework 4.5.NET Framework 4.5. このオブジェクトには、 Globals.Factory プロパティを使用してアクセスすることができます。You can access this object by using the Globals.Factory property. このオブジェクトは、次のいずれかのインターフェイスを実装するクラスのインスタンスです。This object is an instance of a class that implements one the following interfaces:

    たとえば、 Globals.Sheet1 プロパティを使用すると、Excel のドキュメントレベルのプロジェクトの操作ウィンドウでユーザーがボタンをクリックした場合に NamedRangeSheet1 コントロールにテキストを挿入することができます。For example, you can use the Globals.Sheet1 property to insert text into a NamedRange control on Sheet1 when a user clicks a button on the actions pane in a document-level project for Excel.

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles Button1.Click
        Globals.Sheet1.NamedRange1.Value2 = Me.TextBox1.Text
    End Sub
    private void button1_Click(object sender, EventArgs e)
        Globals.Sheet1.namedRange1.Value2 = this.textBox1.Text;

Globals クラスを初期化しますInitialize the Globals class

ドキュメントまたは VSTO アドインがGlobals初期化される前にクラスを使用しようとするコードは、実行時の例外をスローする可能性があります。Code that attempts to use the Globals class before the document or VSTO Add-in is initialized might throw a run time exception. たとえば、クラス レベルの変数の宣言が Globals を使用することで失敗する場合があります。これは、宣言されたオブジェクトがインスタンス化される前に、 Globals クラスがすべてのホスト項目への参照を使用して初期化されない可能性があるためです。For example, using Globals when declaring a class-level variable might fail because the Globals class might not be initialized with references to all of the host items before the declared object is instantiated.


Globals クラスは設計時に初期化されることはありませんが、コントロールのインスタンスがデザイナーによって作成されます。The Globals class is never initialized at design time, but control instances are created by the designer. これは、ユーザーコントロールクラス内からGlobalsクラスのプロパティを使用するユーザーコントロールを作成する場合、返されたオブジェクトを使用する前に、プロパティがnullを返すかどうかを確認する必要があることを意味します。This means that if you create a user control that uses a property of the Globals class from inside a user control class, you must check whether the property returns null before you try to use the returned object.

関連項目See also