Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
129
Добавлен:
31.05.2015
Размер:
170.5 Кб
Скачать

04_03.Bmp

Рис. 4.3. Пример справки по типам данных

Для того, чтобы переменной мог быть присвоен тип данных и она могла в дальнейшем использоваться в программе, эта переменная должна быть обьявлена, - то есть в программу должно быть включено указание, что такая переменная существует и у нее такой-то тип. В Visual Basic for Applications обьявление переменной проводится указанием ее имени и типа в соответствующем разделе модуля, который так и называется - Описания и располагается в самой верхней его части, до начала первой программы (рис. 4.4). Для размещения описания нужно поместить туда строчку вида "Dim x(переменная) As (тип данных)": "Dim a As Integer".

Вместо слова Dim могут также использоваться слова Public и Private, которые тоже служат для обьявления переменных. Переменная, обьявленная командой Public, может использоваться и программами из других модулей и форм, при этом она своего значения не теряет. Переменная же, обьявленная командой Private (или Dim), может использоваться только в программах модуля, в котором она обьявлена. При наличии одноименной переменной в программах другого модуля ее значение не будет передаваться в них при их вызове из программы модуля, где она обьявлена, - т.е. если вы поместите в программу команду, запускающую макрос из другого модуля, то в этом другом модуле одноименная переменная отнюдь не будет иметь то же значение, что и в исходной программе.

04_04.Bmp

Рис. 4.4. Область описаний

Как Public или Private переменная может быть обьявлена только в разделе описаний переменных. С помощью же инструкции (команды, не выполняющей реальных действий) Dim она может быть обьявлена и в тексте программы. Однако тогда ее другие модули уже использовать не смогут никак.

В области работы с типами данных Visual Basic for Applications имеет еще одну достаточно уникальную особенность. При написании программ на этом языке можно, как ни странно, даже вообще не обьявлять специально переменные! Просто включите их в текст программы по мере надобности, и тогда Visual Basic for Applications автоматически присвоит им специальный тип для таких случаев - "Variant". В переменной, имеющей этот универсальный тип, может содержаться что угодно - хоть число, хоть текст. Однако следует помнить, что обьем памяти, отводимый под переменную типа Variant, весьма велик, - значительно больше, чем под любой другой тип данных, поэтому определять все переменные как тип Variant не всегда рационально. Впрочем, учитывая большой обьем оперативной памяти на современных компьютерах, потери памяти от использования Variant'а ощутимы крайне редко.

Тип Variant отличается еще и тем, что переменные с таким типом автоматически могут преобразовываться в любой нужный другой тип. Например, если переменная "х" имеет тип Variant и значение 2 (число), то после команды "x=Str(x)", которая преобразует число в строку, она уже будет иметь значение "2", то есть текстовая строка с цифрой "2". Такое преобразование было бы невозможно, если бы переменная "х" была бы обьявлена как Integer - целое число.

Если вы не обьявляете переменную заранее, а просто упоминаете ее в программе на Visual Basic for Application, то она обьявляется "автоматически", и так же "автоматически" ей присваивается тип Variant. Подобная тактика написания программы может показаться неплохой, так как убыстряет этот процесс, однако, к сожалению, необьявленные переменные не могут быть использованы в других модулях или формах - при таком использовании их значения будут потеряны1.

Можно запретить для себя использование необьявленных переменных, вставив в начало модуля, в верх раздела описаний инструкцию "Option Explicit", и тогда программа остановится и перейдет в режим отладки, если вдруг наткнется на такую переменную.

Стоит быть внимательнее с типами данных, так как в некоторых случаях неправильное их использование может дать ошибку. Например, переменная с типом Integer не может превысить значение 32 767; если же надо использовать большие числа, то следует определить ее тип как Long, а если она может быть еще и дробной, то - Double.

В именах переменных Visual Basic for Applications распознаёт строчные и прописные буквы русского алфавита как разные символы. А вот заглавные и строчные латинские буквы считаются одинаковыми.

Соседние файлы в папке VBA для тех кто любит думать (Орлов, 2002)