Запись математических функций на языке 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). Нужно ввести запрашиваемое в окне значение и нажать клавишу ввода или щелкнуть мышью по кнопке ОК.
Рис. 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") – ячейка с именем А2, Cells(2, 1) – ячейка с номером строки – 2 и номером столбца – 1 (т. е. ячейка А2).
Вывод результатов может осуществляться в окна сообщений и в ячейки таблицы.
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.
Пример программы вычисления значений z.
В первом варианте программы ввод исходных данных организован с клавиатуры, вывод – в диалоговое окно: