Excel 物件模型概觀

更新:2007 年 11 月

適用於

本主題中的資訊僅適用於指定的 Visual Studio Tools for Office 專案和 Microsoft Office 版本。

專案類型

  • 文件層級專案

  • 應用程式層級專案

Microsoft Office 版本

  • Excel 2003

  • Excel 2007

如需詳細資訊,請參閱依應用程式和專案類型提供的功能

若要開發使用 Microsoft Office Excel 的方案,您可以與 Excel 物件模型提供的物件進行互動。此主題將介紹最重要的類別:

物件模型與使用者介面有密切的關聯。Application 物件代表整個應用程式,而每個 Workbook 物件都包含 Worksheet 物件的集合。在這其中,代表儲存格的主要抽象物件是 Range 物件,它可以讓您使用個別儲存格或儲存格群組。

Visual Studio Tools for Office 將許多原生物件擴充為可以在文件層級自訂中使用的主項目和主控制項。這些控制項擁有多種額外的功能,包括資料繫結功能和事件等。例如,原生的 Excel Microsoft.Office.Interop.Excel.Range 物件會擴充成 Microsoft.Office.Tools.Excel.NamedRange 控制項,而且可以繫結至資料並公開事件。如需主項目和主控制項的詳細資訊,請參閱文件層級專案中的擴充物件。

本主題提供 Excel 物件模型的簡短概觀。如需可以了解整個 Excel 物件模型的資源,請參閱使用 Excel 物件模型文件。

在 Excel 專案中存取物件

當您使用 Visual Studio Tools for Office 為 Excel 建立新的應用程式層級專案時,Visual Studio 會自動建立 ThisAddIn.vb 或 ThisAddIn.cs 程式碼檔案。您可以使用 Me.Application 或 this.Application 存取 Application 物件。

使用 Visual Studio Tools for Office 為 Excel 建立新的文件層級專案時,您可以選擇建立新的 Excel 活頁簿或 Excel 範本專案。Visual Studio Tools for Office 會自動在新的 Excel 專案中,為活頁簿和範本專案建立下列程式碼檔案。

Visual Basic

C#

ThisWorkbook.vb

ThisWorkbook.cs

Sheet1.vb

Sheet1.cs

Sheet2.vb

Sheet2.cs

Sheet3.vb

Sheet3.cs

您可以使用全域類別 Globals,從個別的類別之外存取 ThisWorkbook、Sheet1、Sheet2 或 Sheet3。如需詳細資訊,請參閱全域存取 Visual Studio Tools for Office 專案中的物件。不論程式碼是放在 Sheet 類別或 Workbook 類別,下列範例都會呼叫 Sheet1 的 PrintPreview 方法。

Globals.Sheet1.PrintPreview()
Globals.Sheet1.PrintPreview(missing);

由於 Excel 文件包含高度結構化的資料,因此物件模型不僅層級分明,而且非常明確。Excel 提供了數百個可以與您互動的物件,不過您不妨先從一個非常小的可用物件子集開始,逐步學習這個物件模型。這些物件包含下列四個項目:

  • 應用程式

  • 活頁簿

  • 工作表

  • 範圍

使用 Excel 執行的大部分工作都是以這四個類別及其成員為中心。

Application 物件

Excel Application 物件代表 Excel 應用程式本身。Application 物件會公開關於執行中的應用程式、套用至該執行個體的選項,以及目前在執行個體中開啟之使用者物件的大量資訊。

注意事項:

請勿在 Excel 中將 Application 物件的 EnableEvents 屬性設定為 false。將此屬性設定為 false,會導致 Excel 無法引發任何事件,包括主控制項的事件在內。

Workbook 物件

Microsoft.Office.Interop.Excel.Workbook 類別代表 Excel 應用程式中的單一活頁簿。

Visual Studio Tools for Office 會藉由提供 Microsoft.Office.Tools.Excel.Workbook 類別來擴充 Microsoft.Office.Interop.Excel.Workbook 類別,前者可讓您在資料繫結功能和其他事件以外,還能存取 Workbooks 集合的所有成員。

Worksheet 物件

Microsoft.Office.Interop.Excel.Worksheet 物件是 Worksheets 集合的成員之一。Microsoft.Office.Interop.Excel.Worksheet 的許多屬性、方法和事件都與 ApplicationMicrosoft.Office.Interop.Excel.Workbook 類別所提供的成員完全相同或類似。

Excel 提供 Sheets 集合做為 Microsoft.Office.Interop.Excel.Workbook 物件的屬性,但是 Excel 中沒有 Sheet 類別。而 Sheets 集合的每個成員都是 Microsoft.Office.Interop.Excel.WorksheetMicrosoft.Office.Interop.Excel.Chart 物件。

在文件層級的自訂中,Visual Studio Tools for Office 會提供一個 Microsoft.Office.Tools.Excel.Worksheet 主項目並在新專案中建立下列三個執行個體:Sheet1、Sheet2 和 Sheet3。存取上述任何工作表可以透過 Globals 參考進行。Visual Studio Tools for Office 會擴充 Microsoft.Office.Interop.Excel.Worksheet 物件,以提供 Microsoft.Office.Tools.Excel.Worksheet 主項目。

Range 物件

Microsoft.Office.Interop.Excel.Range 物件將是您在 Excel 應用程式中最常使用的物件。如果要操作 Excel 之中的任何區域,必須先將它表示為 Range 物件,然後再使用該範圍的方法和屬性。Range 物件可以代表儲存格、資料列、資料行、含有一個或多個儲存格區塊 (可以相連也可以不相連) 的儲存格選取範圍,甚至可以代表多個工作表上的儲存格群組。

Visual Studio Tools for Office 針對文件層級的自訂引進了兩個範圍主控制項:Microsoft.Office.Tools.Excel.NamedRange 控制項和 Microsoft.Office.Tools.Excel.XmlMappedRange 控制項。如需主控制項的詳細資訊,請參閱主項目和主控制項概觀

文件層級專案中的擴充物件

了解 Excel 物件模型所提供的原生物件與 Visual Studio Tools for Office 所提供的擴充物件 (Extended Object) (主項目和主控制項) 有何差異非常重要。這兩種類型的物件都適用於文件層級專案。

這些差異可以分為下列四個方面:

  • 設計階段。在設計階段加入任何擴充的 Excel 物件時,會自動建立為主項目和主控制項。例如,在設計工具中加入清單至工作表中,就會自動產生程式碼,將清單擴充成 Microsoft.Office.Tools.Excel.ListObject 控制項。

  • 執行階段。在執行階段不會自動建立主項目。如果在執行階段加入活頁簿、工作表或圖表,它們都是原生的 Excel 物件,並不具備主項目提供的其他功能。您可以程式設計方式加入許多主控制項。如需詳細資訊,請參閱主項目和主控制項概觀

  • 資料繫結和事件。主項目和主控制項都有資料繫結功能和事件,原生物件則沒有。

  • 型別。原生 Excel 物件使用 Microsoft.Office.Interop.Excel 命名空間中定義的型別,而主項目和主控制項則使用 Microsoft.Office.Tools.Excel 命名空間中定義的彙總型別。

使用 Excel 物件模型文件

如需您可以在 Excel 物件模型中使用之類別的詳細資訊,請參閱下列文件:

第一個連結提供 Excel 主要 Interop 組件中之類別和介面的詳細資訊。其他連結則提供 Excel 物件模型公開給 Visual Basic for Application (VBA) 程式碼時的詳細資訊。對於使用 Visual Studio Tools for Office 的開發人員來說,每組文件都各有優缺點。

主要 Interop 組件參考

這份文件說明 Excel 主要 Interop 組件中所有可用在 Visual Studio Tools for Office 專案中的型別。但是,這份文件有下列缺點:

  • 它只說明 Excel 2003 主要 Interop 組件中的型別。如需 Excel 2007 主要 Interop 組件中之新型別和成員的說明,您必須參照 Excel 2007 的 VBA 參考。

  • 目前不提供任何程式碼範例。

VBA 參考

VBA 參考中的所有物件和成員都對應至主要 Interop 組件中供您用在 Visual Studio Tools for Office 專案中的類別和成員。例如,Excel VBA 文件中的 Worksheet 物件會對應至主要 Interop 組件中的 Microsoft.Office.Interop.Excel.Worksheet 類別。

VBA 參考有下列優點:

  • 它同時記錄 Excel 2007 和 Excel 2003 的物件模型。

  • 提供大多數成員的程式碼範例。

VBA 參考有下列缺點:

  • 只提供 VBA 的語法和程式碼範例。若要在 Visual Studio Tools for Office 專案中使用程式碼範例,您必須將 VBA 程式碼轉譯為 Visual Basic 或 Visual C#。

主要 Interop 組件中的其他型別

主要 Interop 組件包含許多不適用於 VBA 的類型。這些額外型別的目的在協助將 Excel 的 COM 架構物件模型轉譯為 Managed 程式碼,不適合直接在程式碼中使用。

如需詳細資訊,請參閱 Overview of Classes and Interfaces in the Office Primary Interop Assemblies

請參閱

概念

Excel 方案

Excel 應用程式層級增益集開發

使用儲存格

使用範圍

使用工作表

使用活頁簿

Excel 文件層級自訂開發

Word 物件模型概觀

主項目和主控制項概觀

主項目和主控制項的程式設計限制

了解 Office 方案中的選擇性參數

其他資源

Excel 主控制項