1、"&"替換"+"
在很多人的編程語言中,用“+”來連接字符串,這樣容易導致歧義。良好的習慣是用“&”來連接字符串.
不正確:
Dim sMessage As String
sMessage = "1" + "2"
正確:
Dim sMessage As String
sMessage = "1" & "2"
注意:"&"的后面有個空格
2、變量命名大小寫,語句錯落有秩,源代碼維護方面
下面大家比較一下以下兩段代碼:
讀懂難度很大的代碼:
Dim SNAME As String
Dim NTURN As Integer
If NTURN = 0 Then
If SNAME = "vbeden" Then
Do While NTURN < 4
NTURN = NTURN + 1
Loop
End If
End If
容易讀懂的代碼:
Dim sName As String
Dim nTurn As Integer
If nTurn = 0 Then
If sName = "vbeden" Then
Do While nTurn < 4
nTurn = nTurn + 1
Loop
End If
End If
3、請養(yǎng)成以下的“對象命名約定”良好習慣
推薦使用的控件前綴
控件類型 前綴 例子
復選框Check box chk chkReadOnly
組合框Combo box cbo cboEnglish
命令按鈕Command button cmd cmdExit
通用對話框Common dialog dlg dlgFileOpen
目錄列表框Directory list box dir dirSource
驅(qū)動器列表框Drive list box drv drvTarget
文件列表框File list box fil filSource
窗體Form frm frmEntry
圖象框Image img imgIcon
標簽Label lbl lblHelpMessage
列表框List box lst lstPolicyCodes
菜單Menu mnu mnuFileOpen
單選按鈕Option button opt optGender
圖片框Picture box pic picVGA
文本框Text box txt txtLastName
時鐘控件Timer tmr tmrAlarm
變量
聲明所有的變量將會節(jié)省編程時間,因為鍵入操作引起的錯誤減少了(例如,究竟是 aUserNameTmp,還是 sUserNameTmp,還是 sUserNameTemp)。在“選項”對話框的“編輯器”標簽中,復選“要求變量聲明”選項。Option Explicit 語句要求在 Visual Basic 程序中聲明所有的變量。
應該給變量加前綴來指明它們的數(shù)據(jù)類型。而且前綴可以被擴展,用來指明變量范圍,特別是對大型程序。
用下列前綴來指明一個變量的數(shù)據(jù)類型。
變量數(shù)據(jù)類型
數(shù)據(jù)類型 前綴 例子
String (字符串類型) str strFName
Integer (短整數(shù)類型) int intQuantity
Long (長整數(shù)類型) lng lngDistance
Single (單精度浮點數(shù)類型) sng sngAverage
Double (雙精度浮點數(shù)類型) dbl dblTolerance
Boolean (布爾類型) bln blnFound
Byte(字節(jié)類型) byt bytRasterData
Date (日期類型) dte dteNow
Currency (貨幣類型) cur curRevenue
Object (對象類型) obj objCurrent
Variant (變體類型) vnt vntCheckSum
4、在簡單的選擇條件情況下,使用IIf()函數(shù)
繁瑣的代碼:
If nNum = 0 Then
sName = "sancy"
Else
sName = "Xu"
End If
簡單的代碼:
sName=IIf(nNum=0,"sancy","Xu")
5、盡量使用Debug.Print進行調(diào)試
在很多初學者的調(diào)試中,用MsgBox來跟蹤變量值.其實用Debug.Print不僅可以達到同樣的功效,而且在程序最后編譯過程中,會被忽略.而MsgBox必須手動注釋或刪除.
通常:
MsgBox nName
應該:
Debug.Print nName
6、在重復對某一對象的屬性進行修改時,盡量使用With....End With
通常:
Form1.Height = 5000
Form1.Width = 6000
Form1.Caption = "This is MyLabel"
應該:
With Form1
.Height = 5000
.Width = 6000
.Caption = "This is MyLabel"
End With
這種結構程序執(zhí)行效率比較高,特別在循環(huán)語句里。
7、MsgBox中盡量使用消息圖標,這樣程序比較有規(guī)范
一般來說
vbInformation 用來提示確認或成功操作的消息
vbExclamation 用來提示警告的消息
vbCritical 用來提示危機情況的消息
vbQuestion 用來提示詢問的消息
8、在可能的情況下使用枚舉
枚舉的格式為
[Public | Private] Enum name
membername [= constantexpression]
membername [= constantexpression]
....
End Enum
Enum 語句包含下面部分:
部分 描述
Public 可選的。表示該 Enum 類型在整個工程中都是可見的。Enum 類型的缺省情況是 Public。
Private 可選的。表示該 Enum 類型只在所聲明的模塊中是可見的。
name 必需的。該 Enum 類型的名稱。name 必須是一個合法的 Visual Basic 標識符,在定義該 Enum 類型的變量或參數(shù)時用該名稱來指定類型。
membername 必需的。用于指定該 Enum 類型的組成元素名稱的合法 Visual Basic 標識符。
constantexpression 可選的。元素的值(為 Long 類型)??梢允莿e的 Enum 類型。如果沒有指定 constantexpression,則所賦給的值或者是 0(如果該元素是第一個 membername),或者比其直接前驅(qū)的值大 1。
說明
所謂枚舉變量,就是指用 Enum 類型定義的變量。變量和參數(shù)都可以定義為 Enum 類型。Enum 類型中的元素被初始化為 Enum 語句中指定的常數(shù)值。所賦給的值可以包括正數(shù)和負數(shù),且在運行時不能改變。例如:
Enum SecurityLevel IllegalEntry = -1 SecurityLevel1 = 0 SecurityLevel2 = 1 End Enum
Enum 語句只能在模塊級別中出現(xiàn)。定義 Enum 類型后,就可以用它來定義變量,參數(shù)或返回該類型的過程。不能用模塊名來限定 Enum 類型。類模塊中的 Public Enum 類型并不是該類的成員;只不過它們也被寫入到類型庫中。在標準模塊中定義的 Enum 類型則不寫到類型庫中。具有相同名字的 Public Enum 類型不能既在標準模塊中定義,又在類模塊中定義,因為它們共享相同的命名空間。若不同的類型庫中有兩個 Enum 類型的名字相同,但成員不同,則對這種類型的變量的引用,將取決于哪一個類型庫具有更高的引用優(yōu)先級。
不能在 With 塊中使用 Enum 類型作為目標。
Enum 語句示例
下面的示例演示用 Enum 語句定義一個命名常數(shù)的集合。在本例中是一些可以選擇的顏色常數(shù)用于設計數(shù)據(jù)庫的數(shù)據(jù)輸入窗體。
Public Enum InterfaceColors
icMistyRose = &HE1E4FF&
icSlateGray = &H908070&
icDodgerBlue = &HFF901E&
icDeepSkyBlue = &HFFBF00&
icSpringGreen = &H7FFF00&
icForestGreen = &H228B22&
icGoldenrod = &H20A5DA&
icFirebrick = &H2222B2&
End Enum
好處是加快編程速度