VBA標準模組與類模組(轉)

amyz發表於2007-08-13
VBA標準模組與類模組(轉)[@more@]

  大家透過之前的介紹,已知道怎麼將一個空模組插入VBA的工程中。從插入模組中可以看到,模組有有兩種——標準模組與類模組。類模組是含有類定義的特殊模組,包括其屬性和方法的定義。在後面會有介紹與說明。

  隨著工程越來越委員複雜,我們就有可能會有多個模組。使用多模組的好處就是,它允許將相關的過程聚合在一起,使程式碼的可維護性與可重用性大大提高,更使我們能夠方便地管理程式碼。透過不同的模組,我們還可以為不同模組定製不同的行為,定製模組行為的方法有4種:

  1、Option Explicit。當使用Option Explicit時,必須在模組中的所有過程宣告每一個變數,否則會出現語法錯誤並不能被編譯。這樣做的好處是,它能消除程式中因為錯拼變數名而導致程式錯誤,所以見意使用此選項。自動設定的方法:在VBA編輯器工具選單中選項裡的編輯器選卡中的要求宣告變數選項選上即可。這個每次插入新模組時會自動插入此宣告。

  2、Option Private Module。當使用此設定時,模組中的程式碼將標記為私有,這樣在宏對話方塊中就不能看到這些程式碼,也就是在Excel主介面的工具/宏/宏的對話方塊中不會顯示私有的子程式名稱,這也防止了模組的內容被其它工程引用,不過在同一工程中的其它模組仍然是可用的。

  3、Option Compare {Binary | Text | Database}。用於宣告字串比較時所用的預設比較方法。如果模組中沒有 Option Compare 語句,則預設的文字比較方法是 Binary。

  Option Compare Binary 是根據字元的內部二進位制表示而匯出的一種排序順序來進行字串比較。在 Microsoft Windows 中,排序順序由內碼表確定。典型的二進位制排序順序如下例所示:

  A < B < E < Z < a < b < e < z < _ < _ < _ < _ < _ < ?

  Option Compare Text 根據由系統區域確定的一種不區分大小寫的文字排序級別來進行字串比較。當使用 Option Compare Text 對相同字元排序時,會產生下述文字排序級別:

  (A=a) < ( _=_) < (B=b) < (E=e) < (_=_) < (Z=z) < (_=_) 

  Option Compare Database 只能在 Microsoft Access 中使用。當需要字串比較時,將根據資料庫的區域 ID 確定的排序級別進行比較。

  4、Option Base {0 | 1}。用來宣告陣列下標的預設下界。

  注意 Dim、Private、Public、ReDim 以及 Static 語句中的 To 子句提供了一種更靈活的方式來控制陣列的下標。不過,如果沒有使用 To 子句顯式地指定下界,則可以使用 Option Base 將預設下界設為 1。使用 Array 函式或 ParamArray 關鍵字建立的陣列的下界為 0;Option Base 對 Array 或 ParamArray 不起作用。

  Option Base 語句隻影響位於包含該語句的模組中的陣列下界。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-955125/,如需轉載,請註明出處,否則將追究法律責任。

相關文章