Программирование в среде Visual Basic for Applications
Программирование в среде Visual Basic for Applications: - Страница 10

Sub функция() End Sub

Замените эти строки на листе модуля текстом следующей программы (рис. 4.1).

Public Function функция(х)

функция = Sin(Application.Pi()*х)*Ехр(-2*х) End Function

Программирование в среде Visual Basic for Applications

Функция Pi() в VBA возвращает значение постоянной к (в Excel - функция пи()). Заметим, что поскольку функция Pi() не является внутренней функцией VBA, то ее необходимо записать в форме Application.PiQ.

Демидова л. а., Пылькин а. Н. Программирование в среде Visual Basic for Applications

Рис. 4.1. Лист модуля

При активном листе Модуль1, на котором введена функция, нажмите клавишу Р2. На экране появится диалоговое окно Просмотр объектов, в котором можно произвести поиск любых компонентов VBA в имеющихся классах. Для поиска необходимо ввести имя необходимого компонента в поле поиска и нажать кнопку с изображением бинокля. На рис. 4.2 представлены результаты поиска функции.

Произведем теперь вычисления какой-либо функции с использованием только что созданного макроса. Пусть в ячейку А1 записано число 0.2 и вам нужно вычислить в ячейке В1 значение функции при х = 0,2. Для этого достаточно в ячейку В1 ввести формулу

^функция(А1)

4. Простейшие функции и процедуры. Типы переменных

Демидова л. а., Пылькин а. Н. Программирование в среде Visual Basic for Applications

Рис. 4.2. Диалоговое окно «Просмотр объектов»

Это можно сделать и с помощью мастера функций, который будет содержать функцию функция наряду с другими встроенными функциями Excel. Для этого выполните команду Вставка/Функция. При этом откроется окно Мастер функций - шаг 1 из 2. Выберите в левом списке Категории пункт Полный алфавитный перечень, а затем в правом списке - пункт функция. Нажмите ОК. Откроется окно Мастер функций - шаг 2 из 2, которое для пользовательской функции имеет вид, изображенный на рис. 4.3. Введите в поле ввода адрес ячейки А1 и нажмите ОК.

Демидова л. а., Пылькин а. Н. Программирование в среде Visual Basic for Applications

Рис. 4.3. Ввод функции в ячейку с помощью мастера функций

Программирование в среде Visual Basic for Applications

Тот же результат можно получить, не создавая функцию пользователя, а просто введя в ячейку В1 формулу

=SIN(nM()*А1)*ЕХР(-2*А1)

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

Общий вид функции пользователя:

Public function ИМЯ_ФУНКЦИИ(СПИСОК_ПАРАМЕТРОВ)

ТЕЛО_ФУНКЦИИ End Function

ТЕЛО_ФУНКЦИИ состоит из описательной части и блока операторов, выполняющихся один за другим. Если необходимо прекратить выполнение функции в некотором конкретном месте, это можно сделать с помощью оператора Exit Function. При определении функции иногда бывает удобно описать типы параметров и вычисляемого значения функции.

Именем функции или переменной может быть любой идентификатор, определенный пользователем. Идентификатор -это последовательность букв и цифр и символа подчеркивания, начинающаяся с буквы. Пробелы внутри идентификаторов недопустимы, поэтому они заменяются символом подчеркивания. Также внутри идентификаторов недопустимы спецсимволы: @, #, $, &, %, !. Для упрощения чтения и понимания значения идентификаторов на практике рекомендуется при написании сложных идентификаторов использовать строчные и прописные буквы, а также символ подчеркивания. Например, вместо идентификатора myage (мой возраст) лучше написать MyAge или My_Age.



 
 
 
Powered by Exponenta -