Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика и КГ_2014.doc
Скачиваний:
65
Добавлен:
26.03.2015
Размер:
4.44 Mб
Скачать

5.2. Основные конструкции vba

При вводе текста процедур могут использоваться символы как строчные, так и прописные. В любом месте программы может стоять комментарий, который начинается с апострофа «’». Длинный оператор можно разбить на несколько строк, используя пробел и символ подчеркивания «_». В одной строке можно помещать несколько операторов, разделяя их двоеточием «:».

Имена переменных в VBA задаются латинскими/русскими буквами, для них нельзя использовать ключевые слова и имена стандартных объектов. Различают следующие типы переменных:

  • Integer – для целых чисел (диапазон значений от –32 768 до 32 767), требует объем памяти в 2 байта;

  • Single – для вещественных (дробных) чисел одинарной точности (диапазон значений от 3,402823Е + 38 до 1,401298Е – 45), требует объем памяти в 4 байта. Большие по модулю и близкие к нулю числа записываются с порядком при округлении их до 7-ми значащих цифр и определении их порядка в виде символа Е с числом, что эквивалентно умножению на 10 в указанной после символа Е степени (например, 4.2Е-3 – это 0,0042);

  • String – для хранения символьных (строковых) значений, каждый символ требует объем памяти в 1 байт. Длина строки символов от 1 до 64 Килобайтов;

  • Variant – для хранения любых данных, требует объем памяти в 8 байтов. Этот тип присваивается переменной по умолчанию.

Обычно перед использованием переменной производится ее объявление в операторе Dim со следующим синтаксисом:

Dim <имя переменной> As <тип переменной>

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

Dim i As Integer, x As Single, y As Single

Объявление переменной означает резервирование для нее места в памяти при выполнении программы. Допускается не объявлять переменные, в этом случае им по умолчанию присваивается тип Variant.

В арифметических выражениях на языке VBA записываются константы, переменные, встроенные функции, соединенные знаками арифметических операций. Арифметические операции задаются следующими символами: + (сложение), – (вычитание), * (умножение), / (деление), ^ (возведение в степень), а сами выражения записываются в одну строку.

В табл. 5.1 приведена запись некоторых встроенных математических функций (полный перечень функций языка VBA можно найти в справочной системе).

Таблица 5.1

Запись математических функций на языке vba

Математическая запись

sinx

cosx

ex

|x|

tgx

arctgx

lnx

x

Запись

на VBA

Sin(x)

Cos(x)

Exp(x)

Abs(x)

Tan(x)

Atn(x)

Log(x)

Sqr(x)

Например, запись арифметического выражения:

на языке VBА будет выглядеть следующим образом:

Sin(2 * x) + (Log(x - 1) + Exp(x + 3)) / ((x ^ 4 + 5 * x ^ 2 - 3) ^ (1/3) + + (Tan(x ^ 2)) ^ 3

Оператор присваивания имеет следующий синтаксис:

<имя переменной> = <арифметическое выражение>

Пример записи оператора присваивания.

х = 2 * a + Log(a + 0.5)

Ввод значений переменных может производиться в диалоговом режиме или из ячеек таблицы.

1. Диалоговый ввод осуществляется с помощью встроенной функции InputBox, которая при работе программы выводит на экран свое окно. Например, при выполнении строки программного кода a = InputBox(«Введите фамилию») на экране появится диалоговое окно, в котором будет записан текст, заключенный в кавычки, а в полосе ввода числа будет мигать курсор (рис. 5.2). Нужно ввести запрашиваемое в окне значение и нажать клавишу ввода или щелкнуть мышью по кнопке K>.

Рис. 5.2. Окно диалогового ввода функции InputBox

При этом возвращаемое функцией InputBox значение имеет тип String. Поэтому для ввода значения числовой переменной в программе необходимо дополнительно преобразовать получаемое значение к числовому типу функцией Val. Например, для ввода значения числа 5.25 в переменную b необходимо записать следующую строку программного кода:

b = Val(InputBox(«Введите значение b»))

При вводе вещественного числа целая часть отделяется от дробной точкой. Число в степенной форме, например 1,2  10 – 6, записывается при вводе как 1.2Е-6.

2. Можно ввести значения с листа Excel. Например, чтобы поместить значение в переменную х из ячейки A2, можно записать:

x = Worksheets("Лист1").Range("A2")

или

x = Worksheets("Лист1").Cells(2, 1)

где Worksheets("Лист1") – рабочий лист Excel с именем "Лист1"; Range("A2") – ячейка с именем A2; Cells(2, 1) – ячейка с номером строки 2 и номером столбца 1 (т. е. ячейка A2).

Вывод результатов может осуществляться в окна сообщений и в ячейки таблицы.

1. Вывести значение переменной в окно сообщений можно с помощью функции MsgBox. Ее использование позволяет выводить и числа и произвольные текстовые сообщения на экран, при этом выводимое сообщение должно быть заключено в кавычки. Например, в результате выполнения строки MsgBox («Деление на нуль») на экране появится окно c текстом, приведенным в кавычках.

Число, выводимое в окно, можно форматировать (указывать количество знаков до и после запятой). Для этого используется функция Format(x, “##.##”), где x – переменная; ##.## – формат числа.

Текст, выводимый в окно сообщений, заключается в кавычки. Для вывода нескольких значений в одно текстовое окно используется операция конкатенации &, например:

MsgBox ("Значение x=" & Format(x, "##.#"))

2. Можно вывести результаты в ячейки листа Excel. Например:

Worksheets("Лист1").Range("A3") = x

Здесь значение х выводится в ячейку A3:

Worksheets("Лист1").Cells(3, 1) = x

Значение х выводится в ячейку c номером строки 3 и номером столбца 1, т. е. в ячейку А3.