Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика VBA.pdf
Скачиваний:
891
Добавлен:
27.03.2016
Размер:
1.1 Mб
Скачать

начинаются с букв xl, чтобы было понятно, что они определяются приложением Excel. Описание внутренних констант VBA, используемых в функции MsgBox, приведено в приложении Д.

2.4 Переменные VBA

Переменные - это объекты программы, которые могут принимать различные значения в процессе выполнения программы. Кроме значения и типа переменные имеют уникальное имя. Тип переменных можно задать явно оператором DIM, либо переменная будет иметь тип Variant и необходимый тип переменная получит в процессе выполнения программы, когда ей присвоят какое либо значение. Следует отметить, что явное определение типа переменной присваивает ей начальное значение «ноль» (либо «пустая строка», если это строковая переменная). Неинициализированная переменная с типом Variant или результат выражения, содержащий неинициализированную переменную типа Variant, имеют неопределенное значение («Empty») и не могут использоваться в программе, пока им не присвоят какое либо значение.

Синтаксис оператора DIM:

DIM имя_переменной As тип_переменной .

Допустимо в одном операторе присваивать типы нескольким переменным, задавая имена переменных и их типы через запятую.

Пример.

DIM X As Single , Y As Single , Kappa As Integer

После выполнения данного оператора переменные x и y получают числовой тип Single и нулевые начальные значения, а переменная с именем Kappa получает тип целого числа Integer и так же нулевое значение.

Результат работы следующего оператора

DIM x,y As Single

26

зависит от версии пакета Microsoft Office. В десятом офисе результат будет таким же, как написано выше. В версиях Microsoft Office более ранних версий, переменная x будет иметь тип Variant и неопределенное значение Empty .

По умолчанию строковая или текстовая переменная (String) является массивом переменной длины, который содержит символы. Однако текстовая переменная может быть определена и фиксированной длины. В следующем примере объявляется символьный массив размером в 16 символов:

Dim Str As String*16

В этом случае, если присвоить переменной Str строку длиной более 16 символов, то она будет усечена.

Оператор Dim, в котором перечислены имена переменных без указания их типов, присваивает этим переменным тип Variant и неопределенное значение Empty.

Во многих языках программирования (Паскаль, Си) не позволяют использовать переменные, имена которых не объявлены программистом. Чтобы установить режим, при котором VBA требует явного объявления имен всех переменных в модуле, необходимо добавить команду Option Explicit в область объявлений модуля, то есть в начало модуля до любого объявлениями переменных или процедур. Такие команды, как Option Explicit, называются директивами компи-

лятора (compiler directives).

Команда Option Explicit действует только на модуль, в котором она появляется. Если проект, содержащий этот модуль, содержит также другие модули, внутри них не действует команда

Option Explicit. Необходимо включать команду Option Explicit в ка-

ждый модуль, для которого требуются явные объявления переменных.

27

2.5 Выражения в VBA

Выражения образуются из операндов, знаков операций, (возможно) скобок и задают правило вычисления значения этого выражения. В зависимости от типа вычисляемого значения различают выражения символьные, логические и арифметические. Операндами – объектами, участвующими в операциях, – могут быть константы, переменные, функции.

Символьные выражения VBA используют одну единственную операцию конкатенации (соединения) для символьных операндов, например, stroka1&stroka2 . В некоторых случаях знак операции конкатенации «&» может быть заменен символом плюс. Тип данных результата конкатенации строк – это всегда тип String. Иные действия над строками символов выполняются с помощью встроенных символьных функций.

Логические выражения VBA используют логические операции для операндов, принимающих значения ложь и истина, например, устанавливают истинность высказывания 0<x<1, записываемого в виде 0<x AND x<1. Они будут рассмотрены позже в разделе «Алгоритмы ветвления».

Арифметические выражения VBA включают операнды число-

вого типа, арифметические операции, (возможно) круглые скобки и задают формулу, вычисляемую по правилам VBA. Знаки операций выполнения действий приведены в таблице 2.2, в таблице 2.3 приведены приоритеты арифметических действий.

28

Таблица 2.2 – Обозначения арифметических операций

Знак

Синтаксис

 

Имя/Описание

+

 

 

 

 

N1

+ N2

 

Сложение. Прибавляет N1 к N2

 

 

 

 

N1

– N2

 

Вычитание. Вычитает N2 из N1

*

 

 

 

 

N1

* N2

 

Умножение. Умножает N1 на N2

/

 

 

 

 

N1

/ N2

 

Деление. Делит N1 на N2

 

 

 

 

 

 

 

 

 

Целочисленное деление. У результата деления

\

Nl \ N2

 

N1 на N2 отбрасывается дробная часть. Перед

 

 

 

 

операцией N1 и N2 округляются до целого числа

 

 

 

 

 

 

 

 

 

Деление по модулю. N1 делится на N2, а резуль-

Mod

N1 Mod N2

тату присваивается остаток операции деления.

 

 

 

 

Перед операцией N1 и N2 округляются до целого

 

 

 

 

 

^

N1

^ N2

 

Возведение в степень. Возводит N1 в степень N2

 

 

 

 

Таблица 2.3 Старшинство арифметических операций.

 

 

Знак операции

Пояснения

 

 

 

 

 

^

 

Возведение в степень (наивысший приоритет)

 

 

 

 

 

 

Унарный минус (изменение знака числа)

 

 

 

 

*, /

Умножение и деление имеют равные приоритеты

 

 

 

 

 

\

 

Целочисленное деление

 

 

 

 

Mod

Остаток от деления нацело

 

 

 

 

+, –

Сложение и вычитание имеют равный приоритет

 

 

 

(низший приоритет)

 

 

 

 

 

Действия одного ранга (старшинства) выполняются последовательно слева направо. Действия в скобках выполняются в первую очередь. Обозначение и старшинство всех допустимых действий в VBA приведено в приложении Б.

29