Office プロジェクト内のオブジェクトへのグローバル アクセス
更新 : 2010 年 5 月
Office プロジェクトを作成すると、Visual Studio によって Globals という名前のクラスがプロジェクトに自動的に生成されます。 Globals クラスを使用すると、実行時にプロジェクト内の任意のコードから別のプロジェクト項目にアクセスできます。
対象: このトピックの情報は、Microsoft Office 2010 および 2007 Microsoft Office system のドキュメント レベルのプロジェクトおよびアプリケーション レベルのプロジェクトに適用されます。 詳細については、「Office アプリケーションおよびプロジェクト タイプ別の使用可能な機能」を参照してください。
Globals クラスの使用方法
Globals は、プロジェクト内の特定の項目への参照を保持する静的クラスです。 Globals クラスを使用すると、実行時にプロジェクト内の任意のコードから次の項目にアクセスできます。
Excel ブックまたはテンプレート プロジェクト内の ThisWorkbook クラスおよび Sheetn クラス。 これらのオブジェクトにアクセスするには、Globals.ThisWorkbook プロパティおよび Sheetn プロパティを使用します。
Word 文書またはテンプレート プロジェクト内の ThisDocument クラス。 このオブジェクトにアクセスするには、Globals.ThisDocument プロパティを使用します。
アプリケーション レベルのプロジェクト内の ThisAddIn クラス。 このオブジェクトにアクセスするには、Globals.ThisAddIn プロパティを使用します。
リボン デザイナーでカスタマイズした、プロジェクト内のすべてのリボン。 リボンにアクセスするには、Globals.Ribbons プロパティを使用します。 詳細については、「実行時のリボンへのアクセス」を参照してください。
Outlook アドイン プロジェクト内のすべての Outlook フォーム領域。 フォーム領域にアクセスするには、Globals.FormRegions プロパティを使用します。 詳細については、「実行時におけるフォーム領域へのアクセス」を参照してください。
.NET Framework 4 を対象とするプロジェクトで、リボン コントロール、スマート タグ、およびホスト項目を実行時に作成できるようにするファクトリ オブジェクト。 このオブジェクトにアクセスするには、Globals.Factory プロパティを使用します。 このオブジェクトは、次のいずれかのインターフェイスを実装するクラスのインスタンスです。
注意
スマート タグは、Excel 2010 および Word 2010 では使用されていません。 詳細については、「スマート タグの概要」を参照してください。
注意
Factory プロパティは .NET Framework 4 を対象とするプロジェクトでのみ使用できます。 .NET Framework 3.5 を対象とするプロジェクトでは、他のメソッドを使用して、リボン コントロール、スマート タグ、およびホスト項目を実行時に作成します。
たとえば、Globals.Sheet1 プロパティを使用して、Excel のドキュメント レベルのプロジェクトでユーザーが操作ウィンドウのボタンをクリックしたときに Sheet1 の NamedRange コントロールにテキストを挿入できます。
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 クラスの初期化
ドキュメントまたはアドインが完全に初期化される前に Globals クラスを使用するコードでは、ランタイム例外がスローされることがあります。 たとえば、クラス レベルの変数を宣言している場合に Globals を使用すると、処理に失敗することがあります。これは、Globals クラスが初期化される時に一部のホスト項目への参照がなされず、その後、宣言されたオブジェクトがインスタンス化される可能性があるからです。
注意
Globals クラスがデザイン時に初期化されることはありませんが、コントロール インスタンスはデザイナーによって作成されます。 つまり、ユーザー コントロール クラス内から Globals クラスのプロパティを使用するユーザー コントロールを作成する場合は、返されるオブジェクトを使用する前に、プロパティによって null が返されるかどうかを確認する必要があります。
参照
概念
履歴の変更
日付 |
履歴 |
理由 |
---|---|---|
2010 年 5 月 |
特定の詳細情報を明記しました。 |
情報の拡充 |