Задание 2

Откройте Excel и создайте макрос, который делает надпись в любой ячейке таблицы написанную шрифтом Times New Roman размером 14 пунктов, обведённой жирной рамкой.

 

Работа с макросами очень проста, но позволяет автоматизировать почти действия, выполняемые с документом.

Фактически макрос представляет собой программу на языке Visual Basic For Applications. Однако запись программы на этом языке не ограничивается лишь использованием автозаписи действий. Текст программы можно написать вручную.

Все программы на VBA создаются в редакторе Microsoft Visual Basic. Для того, чтобы вызвать этот редактор нужно нажать «Visual Basic» на панели «Разработчик»:

Попробуем написать на языке VBA первую простую программу. На данном этапе просто перепишите текст программы, приведённой ниже в окно редактора (если окно для ввода текста не появилось, выполните двойной щелчок на пункт Лист1 в окне Project редактора VBA).

Для того, чтобы проверить работу программы, нажмите на кнопку:

Это действие запустит написанную программу.

На самом деле эта программа является бессмысленной, т.к. никаких операций с данными она не выполняет. Напишем теперь настоящую программу, которая будет переводить температуру в градусах по Цельсию в градусы по Фаренгейту:

 

Запустите программу и проверьте, как она работает. Поясню каждую строку программы.

 

Sub CtoF()

Такая запись обозначает начало программы. CtoF – имя программы.

Dim C As Integer, F As Integer

Как известно, при программировании работают с данными не напрямую, а через переменные. Эта строка позволяет объявить переменные C и F. C и F – это имена переменных. Кроме того переменная характеризуется типом значений, которые она может содержать. Такая запись буквально обозначает следующее: «Объявить переменную C, предназначенную для хранения целых чисел; Объявить переменную F, предназначенную для хранения целых чисел». Слово Integer и определяет тип значения, которое может хранить переменная. Таким образом объявление переменных в общем случае выглядит так:

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

 

C = InputBox("Введите значение температуры в градусах Цельсия")

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

Знак = обозначает оператор присваивания. Оператор присваивания нужен для того, чтобы записать значение в переменную. Общий вид оператора выглядит так:

переменная = выражение

Выражением может быть любое, например арифметическое выражение. R К примеру A = 5 * 3. Или A = B * 3 (это значит «Записать в переменную А значение переменной В, умноженное на 3»).

 

F = C * 9 / 5 + 32

В этой строчке происходит непосредственно вычисление значения по Фаренгейту и запись полученного результата в переменную F. После выполнения этой строчки переменная С содержит введённое пользователем значение по Цельсию, а переменная F содержит вычисленное значение по Фаренгейту. Остаётся вывести полученный результат на экран.

 

MsgBox "Температура по Фарангейту: " + CStr(F)

Эта строка отображает сообщение с результатом. Сообщение состоит из строки текста и значения переменной F.

Последняя строка End Sub сообщает, что программа закончилась.

Выражения на языке VBA

Чаще всего программа на компьютере выполняет какие-то математические действия (для тех или иных целей). Фактически это является вычислением значения выражение и записи полученного значение в нужную переменную.

Пусть, например, нужно вычислить значение следующего выражения:

При x заданном с клавиатуры. Для решения данной задачи нужно правильно записать это выражение на языке VBA и присвоить результат какой-нибудь переменной. Чтобы правильно написать выражение, нужно знать следующее:

Математические операторы, используемые в VBA: + (сложение), - (вычитание), * (умножение), / (деление), \ (целочисленное деление), ^ (возведение в степень). Приоритеты этих операций такие же, как и в математике. Если нужно изменить порядок выполняемых действий, нужные действия выделяются скобками. На VBA формула выше записывается так:

2 * x ^ 2 + 3 * (Sin((x + 2) ^ 2) ^ 3) – 1 / ((1 / x) ^ (1 / 3))

А если присвоить вычисленное значение какой-нибудь переменной, то результат можно будет вывести на экран:

Y = 2 * x ^ 2 + 3 * (Sin((x + 2)^2)^3 – 1 / ((1 / x) ^ (1 / 3))

 

Вот так может выглядеть программа:

Здесь тип переменной уже не Integer (целочисленный тип), а Double (вещественный тип). Переменные типа Double могут хранить вещественные числа. А переменные типа Integer только целые.

Как видно из примера, при записи выражение можно использовать не только простейшие математические операторы, но и математические функции. Вот их список:

Abs(x) – модуль аргумента

Atn(x) – арктангенс аргумента

Cos(x) – косинус аргумента

Exp(x) – экспонента

Sin(x) – синус аргумента

Sqr(x) – корень квадратный из аргумента

Tan(x) – тангенс аргумента