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