VBA中變數和常量的命名規則

2021-04-21 04:10:11 字數 4058 閱讀 7445

technorati 標籤:

vba,

命名規範,

常量,變數

通常,各種命名規則都用小寫的字首或字尾來指定變數的型別和作用範圍。變數本身應當用有意義的名稱來說明它是什麼或要做什麼。多字變數名由幾個字連線在一起,每個字的第乙個字母大寫,並且不使用下劃線。如果您用過變數名模板,其格式應當如prefixnounprefixnounverb

常量名也應當有一定的意義,格式為 noun 或 noun_verb常量名均為大寫,字之間用下劃線分隔。儘管給常量名新增字元以指定資料型別和作用範圍的做法不存在技術性錯誤,但通常不這麼做。常量與變數都是資料的符號表示,在此意義上,二者完全相同。區別在於變數可以變化,而常量則保持不變。

變數名和常量名最多可以包含 255 個字元,但是,超過 25 到 30 個字元的名稱比較笨拙。此外,要想取乙個有實際意義的名稱,清楚地表達變數或常量的用途,25 或 30 個字元應當足夠了。

1 變數名

變數名使用大小寫混合的格式(noun 或 nounverb),以此指定變數是什麼以及它要做什麼。大小寫混合格式被用作變數名的說明部分,在這裡每個字的第乙個字母大寫而其餘字母小寫。

變數名還有兩個或三個字元的字首,用來指定變數的資料型別。例如,以下語句宣告的變數都用字首指定變數的資料型別:

dim strrecipientname as

string

dim intitemsprocessed as

integer

dim blncontinueprocessing as

boolean

兩個字元的字首通常用來指定 office 應用程式物件型別。例如:

dim olnamespace as outlook.namespace 

dim wdnewdoc as word.document

在宣告一般變數或物件變數時,要使用 "obj" 字首。即使要建立代表 microsoft® office 應用程式的晚期繫結物件變數,也應當使用該字首。例如:

object

dim objwddocument as

object

dim objolmailitem as

object

全域性變數和模組級變數還要再加乙個字元字首來表示它們的作用範圍。變數的作用範圍定義了變數的生存期和可見性。全域性變數和模組級變數都有永久的生存期。就是說,只要應用程式不關閉,變數就一直占用分配給它的記憶體。過程內宣告的變數只在宣告它們的過程中有效,其生存期為過程**的執行時間。但是,用關鍵字 static 來宣告變數的情況例外。

全域性變數有小寫的 "g" 作字首,並在模組的「宣告」部分用 public 語句宣告。它對應用程式中所有模組內的所有過程可見。例如,public gstrpathtodatasource as string 是乙個全域性變數,它包含了乙個字串,而該字串是應用程式中所使用的資料來源的路徑。

應當盡可能始終使用最小的作用範圍來定義變數。只有在找不到其他途徑來共享變數所包含的資料時,才應當使用全域性變數。全域性變數會使**難以理解和維護。如果您使用的全域性變數過多,且未經過仔細挑選,則可能需要重新設計**,以便減少全域性變數。

模組級變數有小寫的 "m" 字首,是在模組的「宣告」部分用 dim 或 private 語句宣告的。它們對宣告時所處模組中的所有過程可見。例如,dim mrstcustomerrecords as adodb.recordset 是用於客戶記錄的模組級物件變數。在類模組中,用 private 語句宣告的模組級變數具有字首 "p_"。類模組中公共的模組級變數作為類屬性出現,不應當有任何字首表示它們的資料型別或作用範圍

過程級變數是在過程內用 dim 語句建立的。例如,dim intcurrentmailitem as integer 是乙個用作迴圈計數器的過程級變數。此外,過程級變數可以用 static 關鍵字宣告。即使宣告靜態變數的過程已經結束執行,靜態變數仍然會保留它們的值。靜態的過程級變數具有小寫的 "s" 字首。例如,static scurtotalsales as currency 將建立乙個過程級靜態變數,用於在乙個計算當前銷售額的過程中儲存累加和。

使用者定義型別變數在模組的「宣告」部分中宣告,宣告時名稱全部大寫並且後跟 "_type"。可以按如下方式宣告使用者定義型別:

type employeeinfo_type 

strfullname as

string

lngemployeeid as

long

datstartdate as

date

strdepartmentcode as

string * 4 

cursalary as currency 

end type

應當使用 "udt" 字首來宣告 employeeinfo_type 型別的模組級變數。例如,

dim mudtemployeerecord as employeeinfo_type

陣列變數有小寫 "a" 作字首,而且,如果不是 variant 型,則後跟一對圓括號。陣列是可以包含多個值的變數。陣列變數要使用 dim 語句宣告,例如,dim alngnum() 是長整型的陣列變數。當需要儲存多個相同型別的值,而又不希望為它們分別建立單個變數的時候,陣列會非常有用。

下面是一些使用前述常規命名規範的變數名稱示例:

2 常量名

常量使用由全部大寫的多個字組成的說明型名稱,每個字之間用下劃線分隔。宣告常量時,要使用 const 語句以及常量名、它的資料型別和它的值。例如,如下常量可以在模組的「宣告」部分宣告,以提**用程式所使用的資料來源的路徑:

public

const database_path as

注意 如果使用 public 關鍵字來宣告常量,那麼應用程式中任何模組的任何過程都可以使用該常量。如果不使用 public 關鍵字,那麼常量只有模組級的作用範圍,這意味著它只能被宣告它的模組所包含的過程使用。如果常量是在過程內宣告的,那麼它只能用於該過程內的**,並且生存期僅為過程內**的執行期間。

下面是一些使用前述常規命名規範的常量名稱示例:

access_connectstring 

api_max_stringbuffer 

sql_string

if msgbox("proceed now?", 48 + 512 + 3 + 16384, "continue?")= 7 then

docmd.openform "customers", 0, , , 1, 3

endif

if msgbox("proceed now?", vbexclamation + vbdefaultbutton3 + _ 

vbyesnocancel + vbmsgboxhelpbutton, "continue?")= vbno then

docmd.openform "customers", acnormal, , , acformedit, acdialog 

endif

要檢視vba和每個office應用程式的內部常量的完整列表,請開啟「物件瀏覽器」,然後從「專案/庫」對話方塊中選擇合適的型別庫,再在「搜尋」文字框中鍵入相應的常量字首,然後在「物件瀏覽器」工具欄上單擊「搜尋」。下表是從內部常量的完整列表中提取的部分示例。

變數,常量以及變數命名規則

變數 可以變化的值,也是記憶體中一塊固定的空間 j a是乙個強型別語言,必須嚴格遵守其規定,每個變數都必須宣告其型別 j a變數是程式中最基本的儲存單元,包括變數型別,變數名以及作用域 宣告格式 型別 變數名 值 可以使用逗號隔開來宣告多個同型別的變數 變數注意點 1.類變數其宣告前面有乙個修飾符 ...

final 函式 變數 常量 命名規則

繼承弊端 打破了封裝性。final關鍵字 1,final是乙個修飾符,可以修飾 類,函式,變數。2,final修飾的類不可以被繼承。3,final修飾的方法不可以被覆蓋。4,final修飾的變數是乙個常量,只能賦值一次。5,內部類定義在類中的區域性位置上時,只能訪問區域性類被final修飾的區域性變...

變數的命名規則和命名規範

變數的命名規則和命名規範 規則 必須遵守的,不遵守就是錯 1.乙個變數名稱可以由數字 字母 下劃線 美元符號 組成 2.嚴格區分大小寫 3.不能由數字開頭,不要使用中文漢字命名 4.不能是保留字或者關鍵字 5.不要出現空格 規範 建議遵守的,不遵守不會報錯 1.變數名盡量有意義 語義化 2.遵循駝峰...