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 クラスが初期化される時に一部のホスト項目への参照がなされず、その後、宣言されたオブジェクトがインスタンス化される可能性があるからです。
メモ : |
---|
Globals クラスがデザイン時に初期化されることはありませんが、コントロール インスタンスはデザイナによって作成されます。つまり、Globals クラスのメソッドを呼び出すユーザー コントロールを作成する場合は、ユーザー コントロールへのアクセスが試行される前にメソッドによって null が返されるかどうかをチェックするコードを記述する必要があります。 |