Dim i As Integer, x As Single, y As Single
Если переменная не объявлена, то по умолчанию ей присваивается тип Variant.
Встроенные функции. На языке VBA существуют встроенные математические функции, которые могут быть использованы при записи формул (табл. 4.1). Полный перечень функций языка VBA можно найти в справочной системе.
Таблица 4.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) |
Для вычисления Log числа х по основанию n, следует разделить натуральный логарифм числа хна натуральный логарифм числа n:
Арифметические выражения. Это выражения, состоящие из констант, переменных, встроенных функций, соединенных знаками арифметических операций.
Арифметические операции задаются следующими символами: + (сложение), – (вычитание), * (умножение), / (деление), ^ (возведение в степень), \ – (целая часть от деления), Mod – (остаток от деления), а сами выражения записываются в одну строку.
Например, запись выражения:
на языке VBA будет выглядеть следующим образом:
Sin(3*x)+(Log(x-1)+Tan(x))/(x^3+Exp(x+3))^(1/4)
При вычислении арифметических выражений соблюдается следующий приоритет выполнения операций, сначала вычисляются встроенные функции; затем возведение в степень; умножение и деление; целая часть от деления; остаток от деления; сложение и вычитание. Изменить приоритет можно с помощью скобок.
Для работы со строковыми переменными используется оператор конкатенации (слияния) строк: & , либо + .
Примерпроцедуры, запрашивающей имя (например, Иван) и выводящей в окно сообщений текст: «Сообщение пользователю Иван».
Private Sub CommandButton4_Click()
nUserName = InputBox("Введите ваше имя?")
MsgBox "Сообщение пользователю" & " " & nUserName
End Sub
Оператор присваивания. Этот оператор имеет следующий синтаксис: <имя переменной> = <арифметическое выражение >
Пример записи оператора присваивания:
х = 5*a + log(a + 0.5)-a^3
Здесь символ «=» − это не знак равенства, а знак присваивания.
Ввод информации. Существует множество способов пользовательского ввода информации. Рассмотрим ввод с клавиатуры и ввод из ячеек рабочего листа Excel.
Ввод с клавиатуры осуществляется с помощью встроенной функции InputBox, которая при выполнении программы выводит на экран свое окно. Например, при выполнении строки программного кода: a = InputBox("Введите фамилию") на экране появится диалоговое окно, в котором будет записан текст, заключенный в кавычки, а в полосе ввода значения будет мигать курсор (рис. 4.2). Нужно ввести запрашиваемое в окне значение и нажать клавишу ввода или щелкнуть мышью по кнопке Ок.
Рис. 4.2 − Окно диалогового ввода функции InputBox
При этом возвращаемое функцией InputBox значение имеет тип String. Поэтому для ввода значения числовой переменной в программе необходимо дополнительно преобразовать получаемое значение к числовому типу встроенной функцией Val. Например, для ввода значения числа 7.35 в переменную b необходимо записать следующую строку программного кода:
b = Val(InputBox("Введите значение b"))
При вводе вещественного числа целая часть отделяется от дробной точкой. Число в степенной форме, например, 6,2×10-8 записывается при вводе как 6.2Е-8
Ввод из ячейки рабочего листаExcelрассмотрим на примере. Если в ячейке A4 листа с именем Лист2 находится некоторое значение, то его можно ввести в переменную х, используя оператор присваивания:
x=Worksheets("Лист2").Range("A4")или
x=Worksheets("Лист2").Cells(4, 1)
где – Worksheets("Лист2") – рабочий лист Excel с именем «Лист2», Range("A4") – ячейка с именем А4, Cells(4, 1) – ячейка с номером строки – 4 и номером столбца – 1.
Вывод информации.Вывод результатов может осуществляться также различными способами, например, в окна сообщений или в ячейки рабочего листа Excel.
Вывод значений в окно сообщений можно осуществить с помощью функции MsgBox. Например, оператор MsgBox yвыводит в окно сообщений значение переменной y.
С помощью этой функции можно выводить и произвольные текстовые сообщения на экран, при этом выводимое сообщение должно быть заключено в кавычки. Например, в результате выполнения строки MsgBox("Деление на нуль") на экране появится окно c текстом: Деление на нуль.
Число, выводимое в окно можно форматировать (указывать количество знаков до и после запятой). Для этого используется функция Format(x, "##.##"), где x переменная, ##.## – формат числа (указывает количество знаков до и после запятой).
Для вывода нескольких значений в одно текстовое окно используется операция конкатенации &, например:
MsgBox ("Значение x=" & Format(x, "##.#"))
Вывод результатов в ячейки листаExcel рассмотрим на примере вывода значения переменной х в ячейку A4:
Worksheets("Лист1").Range("A4") = xили
Worksheets("Лист1").Cells(4, 1) = x
Линейные программы
В линейных программах выполняются расчеты по формулам и другие действия, не требующие разветвления процессов и их повторов.
Пример. Пусть требуется для x=1,5 a=3,75 m=0.5 10-4 вычислить значения переменных wиz по формулам:
Оформим Лист2 согласно образцу на рис 4.3:
Рис. 4.3 − Образец оформления линейной программы на листе Excel
Для кнопки «Вычислить» напишем следующую процедуру: