Программу, в которой непонятным образом разбросаны различные «магические» числа и строковые литералы трудно понять, даже автору через некоторое время после её написания. Для этого литералам присваиваются имена, т.е. создают поименованные константы. Поименованная константа, как и переменная, имеет имя, по которому к ней можно обратится. Это имя связано с конкретным, не изменяющимся во время выполнения программы, значением. Как и в случае с переменной, вместо константы в выражения подставляется связанное с ней значение. Разница состоит лишь в том, что значение константы не может быть изменено программой. Единственный способ изменить это значение – отредактировать исходный текст программы.
Поименованные константы используются для того, чтобы сделать текст программы более понятным и легким для восприятия. Например, в программе вычисляющей площадь окружности, поименованная константа Pi воспринимается гораздо лучше, нежели «магическое» число 3.14. Кроме того, использование поименованных констант облегчает модернизацию программ. Например, если в программе много раз используется некоторая величина в виде литерала, то при её изменении придется просмотреть всю программу и исправить все выражения, где она встречается. Однако, при этом весьма велика вероятность того, что некоторые значения будет пропущены, и в программе будут использованы «несколько вариантов» одного и того же значения, что, естественно, приведет к неправильному её выполнению. Если же вместо непоименованных литералов создать поименованную константу, и везде в выражениях использовать её имя, то при необходимости изменения этого значения, надо будет внести изменение только в одном-единственном месте программы – в месте её определения.
В общем случае, поименованные константы в программах следует использовать всегда, когда встречаются:
1. повторяющиеся значения, или
2. значения, которые трудно запомнить, или
3. сами значения на момент написания программы ещё неизвестны.
Как и в случае с переменной, поименованная константа должна быть объявлена до первого обращения к ней. Но в отличие от переменной, поименованная константа всегда объявляется явно, и служит для этого инструкция Const (сокращение от constant – постоянный), которая имеет такой синтаксис:
Const <имя> [As <тип>] = <выражение>
Здесь:
имя – имя создаваемой константы, которое подчиняется тем же правилам, что и имена переменных;
тип – определяет тип создаваемой константы, и может быть одним из следующих: String, Byte, Integer, Long, Currency, Single, Double, Date, Boolean или Variant, кроме Object;
выражение – выражение, значение которого будет присвоено константе. В качестве составных частей выражения могут быть использованы:
1. литералы,
2. ранее объявленные константы,
3. знаки операций:
a) арифметических,
b) логических, и
c) сравнения.
В выражении нельзя использовать:
1. переменные,
2. операцию Is.
Если при объявлении константы опущен тип, то в качестве типа ей присваивается тип выражения. Например, при объявлении константы Pi:
Const Pi = 3.14
она получит тип присваиваемого ей литерала 3.14, а именно – Double. Ту же константу Pi, но с явным указанием типа можно объявить следующим образом:
Const Pi As Single = 3.14.
В результате будет создана константа с тем же, что и ранее именем и значением, но другого типа – Single, и занимать при этом она будет 4 байта памяти вместо 8. Значение 3.14 можно записать как в тип Double, так и в тип Single. А столь малая экономия памяти в данном конкретном случае никакого значения не имеет, но может быть существенной – если относится к большому числу таких элементов.
В одной инструкции Const можно объявить одновременно несколько констант, перечислив их через запятую, например:
Const Pi As Single = 3.14, Title1 = "Окно приветствия"
При этом константа Title1 получит тип String, в соответствии с типом присваиваемого ей выражения – строкового литерала.
Объявляя поименованные константы, можно использовать значения объявленных ранее констант, например:
Const Title1 As String = "Окно приветствия", _
Title2 = Title1
Наиболее распространенными ошибками при объявлении констант являются:
1. опускание обязательного выражения, которое должно быть ей присвоено, например:
Const Pi As Single, и
2. использование в присваиваемом выражении переменных, например:
Dim Var1 As Single
Var1 = 3.14
Const Pi As Single = Var1
В программах на VBA можно использовать не только константы, которые в них определенны, но и предопределенные (или внутренние, или встроенные) константы. Имя, тип и значения таких констант уже определены, и программисту остается только использовать их в своих программах. Кроме встроенных констант VBA имеются также внутренние константы того приложения, из которого он был запущен. В частности, в Microsoft Excel определено несколько таких констант для работы с рабочими книгами, в Microsoft Word – для работы с текстовыми документами, и т.д.
Все предопределенные константы VBA начинаются с префикса vb, Microsoft Excel – xl, а Microsoft Word – wd. Например, такие константы как vbOKOnly, vbOKCancel и vbYesNoCancel уже определены в VBA, а xlWorksheet и xlChart – в Microsoft Excel.
Предопределенные константы служат для упрощения работы с некоторыми встроенными процедурами и функциями как VBA, так и приложений, из которых он был вызван. Так, при указании второго, необязательного, параметра функции выдачи сообщения MsgBox, раскрывается список предопределенных констант VBA, соответствующих значениям этого параметра.
Каждая из них определяет количество и названия кнопок, которые будут отображаться в окне выдачи сообщения. Аналогичным образом предопределенные константы облегчают работу и с другими приложениями.
Для того чтобы просмотреть полный список предопределенных констант как VBA, так и главного приложения, необходимо воспользоваться окном Object Browser (Просмотр объектов), которое активизируется:
r по команде View aObject Browser, или
r по нажатию кнопки Object Browser на панели инструментов Standard, или
r по нажатию клавиши F2.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.