全域存取 Office 專案中的物件

當您建立 Office 專案時,Visual Studio 會在專案中自動產生名為 Globals 的類別。 您可以使用 Globals 類別,在執行階段從專案的任何程式碼存取數個不同的專案項目。

適用對象:本主題資訊適用於文件層級的專案和 VSTO 增益集專案。 請參閱依 Office 應用程式和專案類型提供的功能

如何使用 Globals 類別

Globals 是靜態類別,會將某些項目的參考保留在專案中。 您可以使用 Globals 類別,在執行階段從專案的任何程式碼存取下列項目:

  • Excel 活頁簿或範本專案中的 ThisWorkbookSheetn 類別。 您可以使用 Globals.ThisWorkbookSheetn 屬性來存取這些物件。

  • Word 文件或範本專案中的 ThisDocument 類別。 您可以使用 Globals.ThisDocument 屬性來存取這個物件。

  • VSTO 增益集專案中的 ThisAddIn 類別。 您可以使用 Globals.ThisAddIn 屬性來存取這個物件。

  • 專案中使用 [功能區設計工具] 自訂的所有功能區。 您可以使用 Globals.Ribbons 屬性來存取功能區。 如需詳細資訊,請參閱在執行階段存取功能區

  • Outlook VSTO 增益集專案中的所有 Outlook 表單區域。 您可以使用 Globals.FormRegions 屬性來存取表單區域。 如需詳細資訊,請參閱在執行階段存取表單區域

  • Factory 物件,可讓您在執行階段於 .NET Framework 4 或 .NET Framework 4.5 目標專案中建立功能區控制項和主項目。 您可以使用 Globals.Factory 屬性來存取這個物件。 這個物件是可實作下列其中一個介面的類別執行個體:

    例如,您可以使用 Globals.Sheet1 屬性在使用者按一下 Excel 文件層級專案中執行窗格上的按鈕時,將文字插入 NamedRange 上的 Sheet1 控制項。

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

嘗試在文件或 VSTO 增益集初始化之前使用 Globals 類別的程式碼,可能會擲回執行階段例外狀況。 例如,在宣告類別層級變數時使用 Globals 可能會失敗,因為 Globals 類別可能不會在宣告的物件具現化之前,使用所有主項目的參考進行初始化。

注意

雖然 Globals 類別絕對不會在設計階段初始化,但是設計工具卻會建立控制項執行個體。 這表示如果您建立的使用者控制項會在使用者控制項類別中使用 Globals 類別的某個屬性,您必須先檢查該屬性是否傳回 null ,再嘗試使用傳回的物件。