對(duì)象是應(yīng)用程序中的元素,如工作表、單元格、圖表、窗體等。Excel應(yīng)用程序提供的對(duì)象按照層次關(guān)系排列在一起構(gòu)成了Excel對(duì)象模型。Excel應(yīng)用程序中的頂級(jí)對(duì)象是Application對(duì)象,它表示Excel應(yīng)用程序本身。Application對(duì)象包含一些其他對(duì)象,如Window對(duì)象和Workbook對(duì)象等,這些對(duì)象均被稱為Application對(duì)象的子對(duì)象。反之,Application對(duì)象是上述這些對(duì)象的父對(duì)象。
比賽安排
僅當(dāng)Application對(duì)象存在(應(yīng)用程序本身的一個(gè)實(shí)例正在運(yùn)行)時(shí),才可以在代碼中訪問(wèn)這些對(duì)象。
多數(shù)子對(duì)象都仍然包含各自的子對(duì)象。例如,Workbook對(duì)象包含Worksheet對(duì)象,也可以表述為:
Workbook對(duì)象是Worksheet對(duì)象的父對(duì)象。
集合是一種特殊的對(duì)象,它是一個(gè)包含多個(gè)同類對(duì)象的對(duì)象容器。例如,Worksheets集合包含工
作簿中的所有Worksheet對(duì)象。
集合中的對(duì)象可以通過(guò)序號(hào)或名稱兩種不同的方式來(lái)引用。例如,當(dāng)前工作簿中有兩個(gè)工作表,名
稱依次為“Sheet1”“Sheet2”。如下兩行代碼都是引用名稱為“Sheet2”的工作表。
屬性
屬性是指對(duì)象的特征,如大小、顏色或屏幕位置,或者是某一方面的行為,如對(duì)象是否被激活或是否可見(jiàn)。通過(guò)修改對(duì)象的屬性值可以改變對(duì)象的特性。對(duì)象屬性賦值代碼中使用等號(hào)連接對(duì)象原有屬性和新的屬性值。如下代碼設(shè)置活動(dòng)工作表的名稱為“ExcelHome”。
注意
對(duì)象的某些屬性是只讀的,代碼中可以查詢只讀屬性,但是無(wú)法修改只讀屬性的值。
方法
方法指對(duì)象能執(zhí)行的動(dòng)作。例如,使用Worksheets對(duì)象的Add方法可以添加一個(gè)新的工作表,代碼如下。
注意
在代碼中,屬性和方法都是通過(guò)連接符“.”(半角的句號(hào))和對(duì)象連接在一起的。
事件
事件是一個(gè)對(duì)象可以辨認(rèn)的動(dòng)作,如單擊鼠標(biāo)或按下某個(gè)鍵盤(pán)按鍵等,可以指定代碼針對(duì)此動(dòng)作來(lái)做出響應(yīng)。用戶操作、程序代碼的執(zhí)行和操作系統(tǒng)本身都可以觸發(fā)相關(guān)的事件。
下面的示例為工作簿的Open事件代碼,每次打開(kāi)代碼所在的工作簿時(shí),將顯示如圖3-1所示的歡迎信息提示框。
工作簿Open事件
圖3-1 歡迎信息提示框
數(shù)組
數(shù)組是一組具有相同數(shù)據(jù)類型的變量的集合,其中的變量通常被稱為數(shù)組元素,每個(gè)數(shù)組元素都有一個(gè)非重復(fù)的唯一編號(hào),這個(gè)編號(hào)叫作下標(biāo)。在VBA代碼中可以通過(guò)下標(biāo)來(lái)識(shí)別和訪問(wèn)數(shù)組元素。數(shù)組元素的個(gè)數(shù)被稱為該數(shù)組的長(zhǎng)度,數(shù)組元素的下標(biāo)的個(gè)數(shù)被稱為該數(shù)組的維度。VBA中經(jīng)常用到二維數(shù)組,可以使用arrData(x,y)的形式訪問(wèn)數(shù)組元素,其中x和y分別是兩個(gè)維度的下標(biāo)。
注意
一般情況下,數(shù)組元素的數(shù)據(jù)類型必須是相同的,但是如果數(shù)組類型被指定為Variant變體型,那么數(shù)組元素就可以保存不同類型的數(shù)據(jù)。
數(shù)組的聲明方式和變量是完全相同的,可以使用Dim、Static、Private或Public語(yǔ)句來(lái)聲明數(shù)組。
在程序運(yùn)行期間,數(shù)組被臨時(shí)保存在計(jì)算機(jī)內(nèi)存中。相較于Excel文件中單元格數(shù)據(jù)的讀取和賦值,程序代碼對(duì)于數(shù)組元素的操作更加高效。因此在處理大量單元格數(shù)據(jù)時(shí),應(yīng)將數(shù)據(jù)一次性讀取到數(shù)組,這將有效提升VBA代碼的運(yùn)行效率。
如下代碼將單元格區(qū)域A1:E100的值讀入內(nèi)存,生成一個(gè)二維數(shù)組arrData。其中arrData(1,1)代表單元格A1,以此類推,arrData(100,5)代表單元格E100。
注意
數(shù)組默認(rèn)的下標(biāo)下界是0,但此處的數(shù)組arrData的下標(biāo)下界是1。
某些VBA函數(shù)的返回值是數(shù)組形式,如可以用于拆分字符串的Split函數(shù),其返回值為一個(gè)下標(biāo)下
界為0的一維數(shù)組。如下代碼以豎線為分隔符,將字符串strTitle拆分為數(shù)組形式,其中arTitle(0)='姓名',
arTitle(3)='電話',Split函數(shù)的拆分效果類似于Excel中的“分列”功能。
聯(lián)系客服