Примеры функций | Значение |
Val(Строка) | Преобразует строку цифровых символов в число |
CStr(Число) | Преобразует числовое выражение или строку в строку |
CInt(Выражение) | Преобразует числовое выражение или строку в число типа Integer |
Cvar(Выражение) | Преобразует числовое выражение или строку в число типа Variant и др. |
Пусть, к примеру, требуется сложить два числа, значения которых вводятся с помощью управляющих элементов TextBox. Если вычисления будут выполняться программой, код который имеет вид:
TextBox3.Text = TextBox1.Text + TextBox2.Text
то результат вычисления будет неверным, так как в этом случае выполнится объединение строк. Например, если исходными значениями будут 100 и 200, то получится результат 100200, что, конечно, не является результатом арифметического сложения.
Для того, чтобы получить правильный результат, предварительно нужно преобразовать исходные величины строкового типа в числовые целого типа (или другого числового типа). Это преобразование может быть выполнено с помощью функции CInt. Тогда фрагмент кода для выполнения сложения будет иметь вид:
TextBox3.Text=CInt(TextBox1.Text)+ CInt(TextBox2.Text)
При выполнении этого кода будет получен правильный результат – 300. Также правильный результат будет получен, если фрагмент кода будет следующий:
TextBox3.Text = Val(TextBox1.Text) + Val(TextBox2.Text)
В последнем фрагменте для преобразования типов применена функция Val.
Математические функции
Математические функции предназначены для выполнения типовых математических расчетов. Перечислим основные математические функции:
Примеры функций | Значение |
Abs(x) | Абсолютная величина числа x |
Cos(x) | Косинус от значения параметра, заданного в радианах |
Sin(x) | Синус от значения параметра, заданного в радианах |
Sqr(x) | Квадратный корень из числа x |
Rnd[(x)] | Возвращает псевдослучайное число одинарной точности в интервале от 0 до 1. Необязательный параметр, устанавливает то, как генерируется следующее псевдослучайное число |
Int(x) | Выделение целой части числа x |
Tan(x) | Тангенс числа x |
Atn(x) | Арктангенс от значения параметра, заданного в радианах |
Exp(x) | Число e, возведенное в указанную степень x, где e – основание натурального логарифма |
Log(x) | Натуральный логарифм числа x и др. |
Фрагмент кода вычисления значения квадратного корня числа 100 может иметь следующий вид:
x=100
y=Sqr(x)
В результате выполнения этого кода переменная y получит значение 10.
Заметим, что для того чтобы вычислить логарифмы отличные от натурального следует применить известную формулу: . Для вычисления обратных тригонометрических функций применяют такие формулы:
Системные функции
К системным функциям, относятся функции, действия которых напрямую зависит от работы системы Windows. К таким функциям и относятся:
· Функция InputBox – для ввода данных пользователем через системное окно;
· Функция MsgBox – для выдачи сообщений пользователю через системное окно.
Работа этих функций сопровождается появлением на экране одного из двух окон: Окна ввода (InputBox) и окна сообщения (MsgBox). Надписи на кнопках, названия полей и другие элеэлементы диалоговых окон могут отображаться на экране в английском или русском варианте, в зависимости от настроек Windows.
Рассмотрим синтаксис функции Окно ввода [1]:
InputBox(Пригл [, Загол] [, НачЗнач])
Окно ввода содержит сообщение, указывающее, какие данные должен ввести пользователь, поле текста для ввода данных и две кнопки OK и Отмена, которые используются для подтверждения или отмены ввода данных. Закончив ввод данных, пользователь должен щелкнуть на одной из кнопок. Если щелчок был сделан на кнопке OK, то значением функции является текст, находящийся в поле ввода. Если щелчок был сделан на кнопке Отмена, то значением функции является пустая строка, независимо от того, что напечатал пользователь.
Параметры функции имеют следующий смысл: Пригл – это любой текст, который должен, по замыслу программиста, находиться в Окне ввода. Его назначение – служить подсказкой пользователю, какую информацию он должен ввести в специальное поле ввода, находящееся в этом окне. Загол – это надпись в строке заголовка. Если параметр не указан, то в качестве заголовка используется имя приложения. НачЗнач – строка, помещаемая в текстовое поле (если параметр не указан, то поле текста будет пустым).
Для преобразования введенной строки в другой тип данных используйте функции преобразования типов: Val(), CInt(), Cvar() и другие.
В качестве примера на рис. 15 приведено окно, созданное с помощью оператора:
A = InputBox(“Введите значение:”, “Пример окна InputBox”)
Рис. 15. Пример Окна ввода
Окно сообщения создаётся функцией MsgBox, которая имеет такой синтаксис[2]:
MsgBox(Текст [, Опция] [, Загол])
Это традиционная форма синтаксиса, когда функция возвращает значение, которое затем как-то используется (например, присваивается переменной). Значение, возвращаемое функцией, зависит от выбора пользователя, а именно от выбора кнопки, которой закрывается это окно.
Есть другая, более простая и чаще применяемая форма синтаксиса, когда функция не возвращает никакого значения, а действует просто как оператор – выдаёт информацию в Окне сообщения. В этом случае в записи функции отсутствуют скобки (круглые):
MsgBox Текст [, Кнопки] [, Загол]
Текст – это строка сообщения, ради получения которого данная функция и применяется. Эта строка текста должна быть заключена в двойные кавычки. Текст может содержать до 1024 символов! Для того, чтобы этот текст выдавался не сплошной длинной строкой, его можно разбить на небольшие «порции», между которыми вставляются специальные «невидимые» символы – переноса и возврата к левому краю страницы.
Если не указан аргумент Кнопки, то VBA предполагает, что в диалоговом окне сообщения присутствует только кнопка OK. В [ ] показаны возможные установки для этого аргумента.
Параметр Загол задает строку, которая является заголовком окна сообщения. Если параметр отсутствует, то в качестве заголовка используется имя приложения.
В качестве примера на рис. 16 приведено окно, созданное с помощью оператора:
MsgBox "Нужно ли продолжать вычисления?", 4 + 32 + 256, "Вопрос"
Рис. 16. Пример Окна сообщения
Действие функции MsgBox таково: когда доходит очередь до её выполнения, на экране появляется Окно сообщения. Если используется бесскобочная форма синтаксиса, нажатие одной из кнопок на этом окне просто завершает работу функции. А если используется форма со скобками, то значение функции присваивается какой-нибудь переменной.
Определяемые функции
Отличие определяемых функций от встроенных заключается в том, что их имена не являются зарезервированными (ключевыми) словами языка.
Синтаксис функции пользователя имеет вид:
[Область видимости] Function ИмяФункции(СписокПараметров) As ТипДанных
тело функции (операторы)
ИмяФункции = ВозвращаемоеЗначение
End Function
Как видно, определение функции очень похоже на определение процедуры. Как и у процедуры, Область видимости функции (необязательный аргумент) – это одно из ключевых слов: Public или Private. Function – ключевое слово, указывающее на то, что это функция; ИмяФункции – имя функции; СписокПараметров – список параметров (может отсутствовать); As – ключевое слово, предваряющее значение типа данных; ТипДанных – тип данных возвращаемого значения; ВозвращаемоеЗначение – значение, возвращаемое функцией; End Function – ключевые слова, указывающие на окончание блока функции.
Обращение к функции производиться из процедуры или из другой функции. Если в функции предусмотрено рекурсивное обращение, то её можно вызывать из неё самой. Если функция записана в модуле, то её можно вызвать из Excel с помощью мастера функций (Excel сохранит её в категории «Пользовательские»). При вызове из процедуры или из функции в программном операторе указывается имя функции и передаваемые ей параметры.