Базовые типы данных и операции над ними, страница 7

Программу, в которой непонятным образом разбросаны различные «магические» числа и строковые литералы трудно понять, даже автору через некоторое время после её написания. Для этого литералам присваиваются имена, т.е. создают поименованные константы. Поименованная константа, как и переменная, имеет имя, по которому к ней можно обратится. Это имя связано с конкретным, не изменяющимся во время выполнения программы, значением. Как и в случае с переменной, вместо константы в выражения подставляется связанное с ней значение. Разница состоит лишь в том, что значение константы не может быть изменено программой. Единственный способ изменить это значение – отредактировать исходный текст программы.

Поименованные константы используются для того, чтобы сделать текст программы более понятным и легким для восприятия. Например, в программе вычисляющей площадь окружности, поименованная константа 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.