Visual Studio Tools for Office プロジェクト内のオブジェクトへのグローバル アクセス

更新 : 2007 年 11 月

Globals クラスを使用すると、プロジェクト内の任意のコードから別のプロジェクト項目にアクセスできます。

Globals を使用する方法

Globals は、プロジェクト内の項目への参照を保持する静的クラスです。Globals クラスを使用すると、プロジェクト内の任意のコードから次の項目を参照できます。

  • Excel ブックまたはテンプレート プロジェクト内の、Workbook ホスト項目、または任意の Worksheet ホスト項目。これらのホスト項目にアクセスするには、プロジェクト内の各ホスト項目を参照する Globals クラスのプロパティを使用します。ホスト項目の名前は、既定で、ThisWorkbook、Sheet1、Sheet2、および Sheet3 に設定されます。

  • Word 文書またはテンプレート プロジェクト内の Document ホスト項目。このホスト項目プロパティの既定の名前は Globals.ThisDocument です。

  • アプリケーション レベルのプロジェクト内の AddIn ホスト項目。このホスト項目プロパティの既定の名前は Globals.ThisAddIn です。

  • リボン デザイナでカスタマイズした、プロジェクト内のすべてのリボン。リボンにアクセスするには、Globals.Ribbons プロパティを使用します。

  • Outlook アドイン プロジェクト内のすべての Outlook フォーム領域。フォーム領域にアクセスするには、Globals.FormRegions プロパティを使用します。

たとえば、次に示す例のようにコードを記述すると、ユーザーが操作ウィンドウのボタンをクリックしたときに Sheet1 の NamedRange コントロールにテキストが挿入されます。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles Button1.Click

    If Globals.Sheet1 IsNot Nothing Then
        Globals.Sheet1.NamedRange1.Value2 = Me.TextBox1.Text
    End If

End Sub
        private void button1_Click(object sender, EventArgs e)
        {
        if (Globals.Sheet1 != null)
            {
                Globals.Sheet1.namedRange1.Value2 = this.textBox1.Text;
            }
        }

Globals クラスの初期化

ドキュメントまたはアドインが完全に初期化される前に Globals クラスを使用するコードでは、ランタイム例外がスローされることがあります。たとえば、クラス レベルの変数を宣言している場合に Globals を使用すると、処理に失敗することがあります。これは、Globals クラスが初期化される時に一部のホスト項目への参照がなされず、その後、宣言されたオブジェクトがインスタンス化される可能性があるからです。

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

Globals クラスがデザイン時に初期化されることはありませんが、コントロール インスタンスはデザイナによって作成されます。つまり、Globals クラスのメソッドを呼び出すユーザー コントロールを作成する場合は、ユーザー コントロールへのアクセスが試行される前にメソッドによって null が返されるかどうかをチェックするコードを記述する必要があります。

参照

概念

実行時のリボンへのアクセス

実行時におけるフォーム領域へのアクセス

ホスト項目とホスト コントロールの概要

AddIn ホスト項目

Document ホスト項目

Workbook ホスト項目

Worksheet ホスト項目

Office ソリューションのコードの記述