Excel 物件模型入門
本例旨在為初學者簡單介紹 Excel 物件模型。
- 開啟 Visual Basic 編輯器(VBE)
- 單擊檢視 - >立即視窗以開啟立即視窗(或 ctrl + G ):
- 你應該在 VBE 底部看到以下立即視窗:
此視窗允許你直接測試某些 VBA 程式碼。讓我們開始吧,輸入這個控制檯:
?Worksheets.
VBE 具有智慧感知,然後它應該開啟工具提示,如下圖所示:
在列表中選擇 .Count 或直接輸入 .Cout
以獲取:
?Worksheets.Count
- 然後按 Enter 鍵。計算表示式並返回 1.這表示工作簿中當前存在的 Worksheet 數。問號(
?
)是 Debug.Print 的別名。
工作表是一個物件,而 Count 是一個方法。Excel 有幾個 Object(Workbook
,Worksheet
,Range
,Chart
..),每個都包含特定的方法和屬性。你可以在 Excel VBA 參考中找到 Object 的完整列表。工作表物件在此處顯示 。
此 Excel VBA 引用應成為有關 Excel 物件模型的主要資訊源。
- 現在讓我們嘗試另一個表示式,鍵入(不帶
?
字元):
Worksheets.Add().Name = "StackOveflow"
- 按 Enter 鍵。這應該建立一個名為
StackOverflow.
的新工作表:
要理解此表示式,你需要閱讀上述 Excel 參考中的新增功能。你會發現以下內容:
Add: Creates a new worksheet, chart, or macro sheet.
The new worksheet becomes the active sheet.
Return Value: An Object value that represents the new worksheet, chart,
or macro sheet.
所以 Worksheets.Add()
建立一個新的工作表並將其返回。工作表( 沒有 s )本身就是一個可以在文件中找到的物件,而 Name
是它的一個屬性 (見這裡 )。它被定義為:
Worksheet.Name Property: Returns or sets a String value that
represents the object name.
因此,通過調查不同的物件定義,我們能夠理解這個程式碼 Worksheets.Add().Name = "StackOveflow"
。
Add()
建立並新增一個新工作表並返回對它的引用,然後我們將其 Name 屬性設定為 StackOverflow
現在讓我們更正式,Excel 包含幾個物件。這些物件可以由同一類的一個或多個 Excel 物件集合組成。WorkSheets
是 Worksheet
物件的集合。每個 Object 都有一些程式設計師可以與之互動的屬性和方法。
Excel 物件模型引用 Excel 物件層次結構
在所有物件的頂部是 Application
物件,它代表 Excel 例項本身。在 VBA 中程式設計需要很好地理解這個層次結構,因為我們總是需要對物件的引用才能呼叫 Method 或 Set / Get a property。
(非常簡化的)Excel 物件模型可以表示為,
Application
Workbooks
Workbook
Worksheets
Worksheet
Range
Worksheet 物件的更詳細版本(如 Excel 2007 中所示)如下所示,
可以在此處找到完整的 Excel 物件模型。
最後一些物件可能有 events
(例如:Workbook.WindowActivate
),它們也是 Excel 物件模型的一部分。