讀古今文學網 > 別怕,ExcelVBA其實很簡單 > 3.4 集合、對像、屬性和方法 >

3.4 集合、對像、屬性和方法

3.4.1 對象,就像冰箱裡的雞蛋

什麼是對像

對象就是東西,是用代碼操作和控制的東西,屬於名詞。

打開工作簿,工作簿就是對像;複製工作表,工作表就是對像;刪除單元格,單元格就是對像……

對象的層次結構

廚房裡放著冰箱,冰箱裡有碗,碗裡裝著早餐要吃的雞蛋。無論是廚房、冰箱、碗還是雞蛋,都是東西,都是對象,如圖3-23所示。

圖3-23 廚房的結構圖

廚房裡除了冰箱,還有消毒櫃和電飯鍋;冰箱裡放著裝有雞蛋的碗,還放著裝著水果的盤子和裝著牛奶的瓶子,如圖3-23所示。

圖3-24 廚房裡的多個對象

一個Excel工作簿就像一間大廚房,一個工作簿裡可以有多張工作表,一張工作表裡有多個單元格區域,如圖3-25所示。

圖3-25 工作簿裡的對象

一個對象可以包含其他對象,同時又包含在其他對像裡,不同的對象總是這樣有層次地排列著。

集合——多個同類型的對象

集合也是對象,是對多個同種類型的對象的統稱。

冰箱裡有很多碗,無論裝著雞蛋還是瘦肉,都屬於同一類對象,可以統稱為「碗」。但是這個集合裡並沒有裝牛奶的瓶子,因為瓶子不是碗,和碗不屬於一類。

一個打開的工作簿,裡面有多張工作表,無論工作表的名稱是什麼,表裡保存什麼數據,它們都屬於工作表集合,即:Worksheets。

怎樣取到裝雞蛋的碗

要吃雞蛋,讓孩子去取。

「去廚房,把冰箱裡裝著雞蛋的碗拿來。」碗存放的地點(廚房的冰箱裡)以及碗的特徵(裝著雞蛋)都要介紹清楚,這樣,孩子才不會弄錯。

VBA中怎樣取到集合裡的一個對像

取到想要取的對象,稱為「引用對像」。

很多個工作簿,若干張工作表,數不清的單元格,怎麼表示「Book1」 工作簿中「Sheet2」工作表中的「A2」單元格?

就像取冰箱裡裝雞蛋的碗一樣,在哪間房的冰箱裡拿,拿什麼碗,都要敘述清楚。

引用對象就像引用硬盤上的文件,要按從大到小的順序逐層引用。

但並不是每一次引用對象都必須嚴謹地從第1層開始。

如果Book1工作簿是活動工作簿,前面的代碼可以寫為:

如果Sheet2工作表是活動工作表,代碼甚至還可以簡寫為:

3.4.2 對象的屬性

什麼是屬性

每個對象都有屬性。對象的屬性可以理解為該對像包含的內容或具有的特點。

蘋果是有顏色的,顏色就是蘋果的屬性。我的衣服,衣服就是我的屬性。

Sheet2工作表的A2單元格,A2單元格是Sheet2工作表的屬性;A2單元格的字體,字體是A2單元格的屬性;字體的顏色,顏色是字體的屬性。

「的」字後面的,總是「的」字前面的對象的屬性。

在VBA中,用點(.)代替「的」字:

我的衣服→我.衣服

Sheet2工作表的A2單元格的字體的顏色→Worksheets(「Sheet2」).Range(「A2」).Font.Color

對象的相對性

某些對象的某些屬性,返回的是另一個對象,如Sheet1工作表的Range 屬性,返回的是e對像(即單元格),但單元格本身也是一種對象。作為一種對象,它也有自己的屬性,如字體(Font),而字體也是對象,也有屬性,如顏色。

對像和屬性是相對的。單元格相對於字體是對象,相對於工作表是屬性。

如果想準確地知道Value(或其他)是方法還是屬性,可以在【代碼窗口】中將光標定位到它的中間,按F1鍵,查看幫助裡的信息,如圖3-26所示。

圖3-26 查看Value的幫助信息

3.4.3 對象的方法

什麼是方法

方法是在對像上執行的某個操作,屬於動詞。

如剪切單元格,剪切是在單元格上執行的操作,就是Range對象的方法;選中工作表,選中是在工作表上執行的操作,就是Wroksheet對象的方法;保存工作簿,保存就是Workbook對象的方法……

方法和屬性的區別

屬性返回對像包含的內容或具有的特點,如顏色、大小等。方法是對對象的一種操作,如選中、激活等。

怎樣分辨方法和屬性

除了通過查看幫助來分辨屬性和方法,還可以在【代碼窗口】中按<Ctrl+J>組合鍵,或者在對象的後面寫上點,在自動顯示的【屬性/方法列表】中根據圖標的顏色來分辨,帶綠色圖標的項是方法,其他的都是屬性,如圖3-27所示。

圖3-27 對象的屬性/方法列表

如果在對象的後面輸入點後沒有顯示【屬性/方法列表】,則先在【選項】對話框的【編輯器】選項卡裡勾選【自動列出成員】復選框,如圖3-27所示。

圖3-28 設置自動列出成員