Процедуры пользователя типа Sub

Общая структура процедуры имеет вид:

Sub <имя процедуры> (<параметр1>, <параметр2>, …)

<программный код для определения процедуры>

End Sub

Часть формальных параметров, описанных в заголовке, может быть использована для ввода исходных данных, а другая часть – для записи в них результатов выполнения программного кода процедуры.

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

Sub <имя процедуры> ( )

Для того чтобы использовать процедуру типа Sub в основной программе, надо записать ее имя в отдельной строке и через пробел после имени указать фактические аргументы, разделив их запятыми.

По существу в предыдущих разделах рассматривались процедуры, но процедуры обработки событий, привязанные к объекту, над которым это событие совершается. Например, запись Sub CommandButton1_Click()означает, что программа выполняется, когда по кнопке CommandButton1 делается щелчок Click.

Пользовательские процедуры могут быть доступны как для отдельной формы, так и для всех форм приложения. Если текст пользовательской процедуры записывается в окне программного кода рабочего листа, то она будет доступна во всех процедурах данного листа, но недоступной в программах других листов. Если же текст пользовательской процедуры записывается в специальном окне модуля (Insert/Module) в окне Редактора Visual Basic, то она будет доступна для процедур всей книги.

Пример 7.3. Рассмотрим пример использования процедуры со списком формальных параметров. Предположим, необходимо вычислить сумму двух различных произведений:

Процедуры пользователя типа Sub - student2.ru,гдеПроцедуры пользователя типа Sub - student2.ru.

Для решения такой задачи сначала надо создать процедуру, которая производит вычисление произведений любого количества любых сомножителей из элементов массива:

Sub product(k, z, p)

Dim i As Integer

p = 1

For i = 1 To k

p = p * z(i)

Next

End Sub

Здесь введены следующие имена для процедуры и параметров: product – имя процедуры; k – количество сомножителей в произведении; z – имя массива, произведение элементов которого перемножается; p – параметр, в котором после вычисления будет храниться значение вычисленного произведения.

Эту процедуру можно теперь использовать для решения исходной задачи:

Sub CommandButton1_Click()

Dim f(4) As Single, f1(4) As Single, S As Single

Dim p As Single, p1 As Single, i As Integer

For i = 1 To 4

f(i) = Val(InputBox("Введите f(i)"))

f1(i) = Sin(f(i))

Next

‘Обращение к процедуре

Product 4, f, p1

Product 3, f1, p2

S = p1 + p2

MsgBox S

End Sub

Здесь после ввода в память массивов f и f1 дважды вызывается процедура product. При этом первый раз в нее передаются фактические значения для формальных параметров k и z, соответственно равные 4 и f, а результат сохраняется в переменной p1. Во второй раз – значения параметров k и z, равные соответственно 3 и f1, а результат сохраняется в переменной p2.

Задание для выполнения на компьютере

1. Записать пользовательскую функцию листа для вычисления любого арифметического выражения и опробовать ее работу.

2. Создать на рабочем листе две кнопки. Одну кнопку использовать для программы вычисления выражений, представленных в таблице.

Таблица

Наши рекомендации