Каммингс Стив
Шрифт:
Вот несколько примеров допустимых и недопустимых имен.
В VBA прописные и строчные буквы не различаются, но введенные вами прописные буквы любезно сохраняются. Предположим, что вы объявили переменную, имя которой состоит только из прописных букв, например:
Dim LOUCVARIABLE As String
Допустимое | Недопустимое |
а | ИмяБолее255СимволовНеПоместившеесяЗдесь... |
Go4It | 4ScoreArd7 |
You_Did_It | WhoDunIt? |
СиниеГлаза | Черные Глаза |
В программном коде все равно можно будет печатать имя переменной, используя как прописные, так и строчные буквы. Например, в каждом из следующих трех операторов используется одна и та же переменная:
loudvariabie = Ярко-красная
10UDvARIABLE =Ucase(10UDvARIABLE)
MsgBox(LoudVariable)
Конечно, слишком долго наслаждаться альтернативными версиями имени вам не удастся.
Редактор Visual Basic запоминает то имя, которое вы задаете в объявлении, и если вы напечатаете имя как-то иначе, оно будет автоматически скорректировано, как только вы перейдете в другую строку.
Соглашения об именах в VBA
В рамках правил, обсуждавшихся в предыдущем разделе, объектам программы можно назначать любые имена. Тем не менее можно значительно облегчить себе жизнь в программировании, если придерживаться определенной логичной схемы выбора имен. По мере того как ваши программы будут становиться длиннее, все труднее будет помнить о типе и назначении каждой конкретной переменной. Поэтому имеет смысл научиться создавать имена, которые смогут кое-что подсказать.
В идеале, нужно выбрать определенный метод и строго его придерживаться. Один такой метод, используемый многими программистами, состоит в том, чтобы имя начиналось с некоторого префикса, соответствующего типу объекта, а за префиксом следовало сокращенное описательное имя, которое начинается с прописной буквы. Например, если при создании программы инвентаризации требуется целая переменная, в которой должен храниться инвентарный номер, то вполне подходящим именем для такой переменной будет intPartNo.
В табл. 6.1 приведены префиксы, рекомендуемые для часто используемых объектов VBA.
Вместо предложенных вы можете создать свои собственные или использовать их как суффиксы. Главное- непременно их использовать.
В главах 1-5 я не придерживался этих соглашений по той простой причине, что сначала их нужно было объяснить. Но начиная с этой главы я постараюсь следовать тому, что здесь проповедую.
Таблица 6.1. Префиксы, рекомендуемые для имен объектов VBA
Префикс | Тип объекта | Пример |
Переменные | ||
byt | Byte | BytDaysInMonth |
bool | 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 будет ему парой. В результате легче отследить путь выполнения программы в зависимости от сложившихся условий.
Правила для отступов
В каких же строках программного кода следует сделать отступ и какой по величине? Нужно установить отступы одного размера для связанных по смыслу операторов, чтобы связь между такими операторами была зрительно очевидной. Конкретнее говоря, операторы, выполняющиеся вместе при каком-то общем условии, должны иметь и одинаковые отступы.