對象都有屬性,可以把它當作對象的特征。例如Range(單元格區域)對象有諸如Column(列)、Row(行)、Width(列寬)和Value(值)之類的屬性。Chart(圖表)對象有Legend(圖例)和ChartTitle(圖標題)等屬性。ChartTitle也是一個對象,有諸如Font(字體),Orientation(方向)和Text(文本)等屬性。Excel有很多對象,每一個都擁有自己的屬性集。可編寫VBA代碼實現如下功能:
●檢查對象當前的屬性設置,并基于此做一些操作。
●改變對象的屬性設置。
通過在對象名稱之后插入句號和屬性名稱,可以在VBA代碼中引用該屬性。例如,下面的VBA語句將一個名為frequency的Range對象的Value屬性設為15(即該語句使數字15顯示在區域單元格中) 。
Range("frequency").Value=15
有些屬性是只讀的,這意味著可以檢查屬性,但不能改變屬性。對于單一單元格的Range對象來說,Row和Column 屬性都是只讀屬性:可以確定單元格的位置(即在哪行哪列),但不能通過改變這些屬性來改變單元格的位置。
Range對象還有一個Formula(公式)屬性,該屬性不是只讀的:即可以通過改變Formula屬性在單元格中插入一個公式。以下語句可以通過改變單元格的Formula屬性,在單元格A11中插入一個公式:
Range("All").Formula = "=SUM(A1:A10)"
在對象層的頂端是Application對象,實際就是Excel程序。Application對象有幾個有用的屬性:
●Application.ActiveWorkbook:返回Excel中的活動工作簿(Workbook對象)。
●Application.ActiveSheet:返回活動工作簿的活動工作表(Worksheet對象) 。
●Application.ActiveCell:返回活動窗口的活動單元格(Range對象)對象。
●Application.Selection:返回當前在Application對象的活動窗口中被選中的對象。這些對象可能是Range、Chart、Shape,或其他被選中的對象。
屬性可以返回對象。事實上這正是上面的例子所做的。例如,Application.ActiveCell的結果是一個Range對象。因此,可以使用以下語句訪問屬性:
Application.ActiveCell.Font.Size=15
此處,ActiveCell屬性返回一個Range對象。Font屬性返回一個Font對象,該對象包含在Range 對象中。Size是Font對象的一個屬性。上面的語句將Size屬性設為15——即使當前選中的單元格的字號大小為15。
很多情況下,可以使用多種不同方法引用相同的對象。假設有一個工作簿名為Sales.xlsx,它是唯一打開的工作簿。此外,假設該工作簿有一個叫做Summary的工作表。VBA代碼可以用下列任意一種方式引用Summary工作表:
Workbooks("Sales.xlsx").Worksheets("Summary")
Workbooks(1).Worksheets(1)
Workbooks(1).Sheets(1)
Application.ActiveWorkbook.ActiveSheet
ActiveWorkbook.ActiveSheet
ActiveSheet
對工作空間的了解程度決定使用的方法。例如,如果已打開多個工作簿,第二種和第三種方法就不適用。如果想使用活動工作表(不管它是什么),后面三種方法中的任意一種都可以。為絕對確保引用的是特定工作簿上的特定工作表,第一種方法是最好的選擇。