Чтение онлайн

на главную

Жанры

VBA для чайников

Каммингс Стив

Шрифт:

Вот несколько примеров допустимых и недопустимых имен.

В 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 будет ему парой. В результате легче отследить путь выполнения программы в зависимости от сложившихся условий.

Правила для отступов

В каких же строках программного кода следует сделать отступ и какой по величине? Нужно установить отступы одного размера для связанных по смыслу операторов, чтобы связь между такими операторами была зрительно очевидной. Конкретнее говоря, операторы, выполняющиеся вместе при каком-то общем условии, должны иметь и одинаковые отступы.

Например, если 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.)

Поделиться:
Популярные книги

Бастард Императора

Орлов Андрей Юрьевич
1. Бастард Императора
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Бастард Императора

На границе империй. Том 10. Часть 1

INDIGO
Вселенная EVE Online
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 1

Имя нам Легион. Том 7

Дорничев Дмитрий
7. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 7

Измена. Вторая жена мужа

Караева Алсу
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Вторая жена мужа

Буря империи

Сай Ярослав
6. Медорфенов
Фантастика:
аниме
фэнтези
фантастика: прочее
эпическая фантастика
5.00
рейтинг книги
Буря империи

Пенсия для морского дьявола

Чиркунов Игорь
1. Первый в касте бездны
Фантастика:
попаданцы
5.29
рейтинг книги
Пенсия для морского дьявола

На изломе чувств

Юнина Наталья
Любовные романы:
современные любовные романы
6.83
рейтинг книги
На изломе чувств

Тринадцатый II

NikL
2. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Тринадцатый II

Сирота

Шмаков Алексей Семенович
1. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
5.00
рейтинг книги
Сирота

Законы Рода. Том 9

Flow Ascold
9. Граф Берестьев
Фантастика:
городское фэнтези
попаданцы
аниме
дорама
фэнтези
фантастика: прочее
5.00
рейтинг книги
Законы Рода. Том 9

Красноармеец

Поселягин Владимир Геннадьевич
1. Красноармеец
Фантастика:
боевая фантастика
попаданцы
4.60
рейтинг книги
Красноармеец

Огненный князь 4

Машуков Тимур
4. Багряный восход
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Огненный князь 4

Начальник милиции. Книга 5

Дамиров Рафаэль
5. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции. Книга 5

Инкарнатор

Прокофьев Роман Юрьевич
1. Стеллар
Фантастика:
боевая фантастика
рпг
7.30
рейтинг книги
Инкарнатор