Выбрать главу

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.)

Как сделать отступ

Для добавления отступа в строке программного кода нажмите клавишу пробела или Tab, чтобы сдвинуть текстовый курсор вправо. Можно задать расстояние, на которое клавиша Tab сдвигает курсор, если выбрать Tools=Options. В диалоговом окне Options (Параметры) на вкладке Editor (Редактор) есть поле Tab Width (Отступ табуляции), где можно впечатать число, соответствующее количеству пробелов. Поскольку пространства в окне редактора Visual Basic не слишком много, лично я установил отступ табуляции, равный 3 пробелам, хотя можно указать любое число от 1 до 32.

Если по каким-то причинам нажимать клавишу табуляции вам не слишком удобно, всегда можно сдвинуть начало строки вправо или влево с помощью предлагаемых VBA кнопок Indent (Добавить отступ) и Outdent (Удалить отступ) соответственно. Эти кнопки применяются не только к отдельным строкам, но и к выделенным фрагментам текста, так что одним щелчком можно добавить или убрать отступ целого блока. Обратите внимание на то, что при использовании этих кнопок положение точки ввода в строке игнорируется - всегда увеличивается или уменьшается отступ сразу всей строки.

Автоматические отступы

Чтобы до минимума уменьшить объем выполняемой вами работы, редактор Visual Basic автоматически устанавливает отступ в новой строке, равный отступу в предыдущей. Если в новой строке отступ должен быть меньше, просто нажмите клавишу удаления символа перед курсором (клавишу Back Space ). Если навязанная помощь вас слишком уж раздражает, автоматическое создание отступов можно отменить на вкладке Editor в диалоговом окне Tools=Options.

Свободное пространство - это хорошо

Оставленные между группами родственных операторов пустые строки намекают на важность выделенного таким образом фрагмента программного кода. Кроме того, это уменьшает плотность программы и еще упрощает зрительное восприятие программного кода (рис. 6.2).