Boolean
|
BooIClearedStacus
|
int
|
Integer
|
IntWeeksOnChart
|
lng
|
Long integer
|
LngPopulation
|
sng
|
Single
|
SngRadius
|
dbl
|
Double
|
DblParsecs
|
cur
|
Currency
|
CurUnitPrice
|
str
|
String
|
StrLastNarae
|
date
|
Date/Time
|
DateBirthdate
|
var
|
Variant
|
VarSerialNumber
|
obj
|
Object
|
ObjStampCo11ection
|
Элементы управления
|
Txt
|
Text box (текстовое поле)
|
TxtEnterName
|
lbl
|
Label (надпись)
|
LblAnswerMessage
|
cmd
|
Command button (кнопка)
|
CmdCalculateInterestRate
|
mnu
|
Menu (меню)
|
MnuTools
|
Cmb
|
Combo box (поле со списком)
|
CmbToyCategory
|
fra
|
Frame (фрейм)
|
FraHabitat
|
opt
|
Option button (переключатель)
|
OptGasolineGrade
|
Chk
|
Check box (флажок)
|
ChkCaseSensiuive
|
Другие
|
Bas
|
Module (модуль)
|
BasTextFormatFunctions
|
Frm
|
UserForm (пользовательская форма)
|
FrmOptionsDialog
|
Сделайте программный код красивым
В общем-то, программному коду совсем не обязательно выглядеть красиво - нужно, чтобы он легко читался. В этом разделе предлагается несколько простых рекомендаций по оформлению программного кода для того, чтобы вам было легче расшифровать свой же программный код завтра, через неделю или в следующем году, если это потребуется.
Запомните: следует выработать правила использования отступов и неуклонно их придерживаться. Компилятор VBA игнорирует все пробелы в начале строк, так что вы можете смело использовать отступы для наведения порядка. Сравните следующие два фрагмента программного кода и решите, какой из них легче понять:
If intA = 27 Then
If txtChooseColor.Text = Беж Then
intA = 33
intB = 0
End If
For Each objCbar In CommandBars
If objCbar.Name = Моя панель инструментов Then
If objCbar.Visible = False Then
objCbar.Visible = True
end If
End If
Next objCbar
End If
* * *
If intA = 27 Then
If txtChooseColor.Text = Беж Then
intA = 33
intB = 0
End If
For Each objCbar In CommandBars
If objCbar.Name = Моя панель инструментов Then
If objCbar.Visible = False Then
objCbar.Visible = True
end If
End If
Next objCbar
End If
Оба эти фрагмента дают один результат, но отступы во втором фрагменте позволяют сразу сказать для каждого из операторов End If, какой из расположенных выше операторов If. . .Then будет ему парой. В результате легче отследить путь выполнения программы в зависимости от сложившихся условий.
В каких же строках программного кода следует сделать отступ и какой по величине? Нужно установить отступы одного размера для связанных по смыслу операторов, чтобы связь между такими операторами была зрительно очевидной. Конкретнее говоря, операторы, выполняющиеся вместе при каком-то общем условии, должны иметь и одинаковые отступы.
Например, если VBA выполняет операторы внутри конструкции If. . .Then. . .Else.
Do ... Loop или For Next как одну группу, то операторы такой группы должны иметь один и тот же отступ. Вот подходящий пример программного кода:
Do While intC 20
intA = intA + 1
If intA = intB Then
intA – 5
intB – 10
.Else
intA = intB
intC = 20
.End If
Loop
VBA выполняет оператор intA = intA + 1 и структуру If.. .Then. .. Else прикаждом проходе структуры Do... Loop. По этой причине я использовал один и тот же отступ и для оператора intA = intA + 1, и для трех операторов, задающих структуру If. . .Then. . .Else ( If. . .Then, Else и End If ). Два оператора, следующие непосредственно за оператором If . . .Then, будут выполняться, если только intA = intE, поэтому эти два оператора получают дополнительный отступ, как и два оператора, следующие за Else.
Обратите внимание, что управляющие структуры типа Do ... Loop и If . . . Then. . .Else всегда состоят как минимум из двух операторов (один должен определить начало структуры, а второй - ее конец). Дня структуры Do. . .Loop завершающий оператор Loop, а для If... Then . . .Else - это End If. Если в рамках структуры есть другие операторы, для них следует использовать тот же отступ. Это позволит ясно различить и саму структуру, и содержащиеся в ней подчиненные операторы. (Управляющие структуры будут подробно рассмотрены в главе 8.)
Читать дальше