Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






VBA. Процедуры и функции. Параметры (формальные и фактические)





Подпрограмма – это блок кода между операторами Sub и End Sub или Function и End Function.

Подпрограмма-процедура – это блок кода, заключенный между операторами Sub и End Sub. Обычно подпрограмму-процедуру принято называть процедурой.

При написании программы нужно учесть одно правило: “Внутри одной процедуры не может быть описана другая процедура”.

Синтаксис:

Sub <имя процедуры> ([ [ ByVal ] <параметр 1 > As < тип >] [,
ByRef <параметр 2> ])
<текст процедуры>
End Sub

В скобках указываются необходимые параметры, если параметров нет, то просто пустые скобки. Например, напишем программу, выводящую на экран окно с приветствием:


Sub Программа_Привет()
MsgBox(“ПРИВЕТ”)
End Sub

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

Параметры, значения которых передаются из программы (другой процедуры) в процедуру, называются параметрами-переменными.

Параметры, значения которых передаются из процедуры в программу (другую процедуру), называются параметрами-значениями.

Параметры, указанные в списке оператора вызова процедуры, называются фактическими параметрами.

Ключевые слова ByVal и ByRef определяют способ передачи значений параметров.

ByVal указывает, что аргумент передается по значению.

ByRef указывает, что аргумент передается по ссылке. Описание ByRef используется в VBA по умолчанию.

Значения параметров-переменных, передаваемых по способу ByVal, не могут изменяться в теле процедуры во время её выполнения, то есть последние значения переменных в программе сохраняются неизменными.

Значения параметров, передаваемых по способу ByRef, изменяют значения соответствующих переменных программы.

Вызов процедуры из другой процедуры можно произвести несколькими способами.

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

Пример: qwer x, y, s ‘оператор вызова процедуры.

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

Синтаксис:

< Имя модуля>.<Имя процедуры > < Список фактических параметров >.

Второй способ вызова процедуры производится с помощью инструкции Call.

Синтаксис:

Call < Имя процедуры > (< Список фактических параметров >). В отличие от первого способа здесь список фактических параметров заключается в скобки.

Пример: Call qwer(x, y, s)

Подпрограмма-функция – это блок кода, заключенный между операторами Function и End Function. Обычно в языках программирования подпрограмму-функцию принято называть функцией. Она выполняет какую-то операцию, но при этом обязательно возвращает какое-нибудь значение. Значение возвращается через имя функции.

Синтаксис:

Function <имя функции> ([[ByVal ] <параметр 1> As <тип>]
[, ByRef <параметр 2 >]) As <Тип>
<код функции>
End Function

Пример:

Function f(ByVal x As Single, ByVal y As Single) As Single
f = Sin(x+y)
End Function

Оператор вызова функции состоит из имени функции и списка фактических параметров, заключённых в скобки.

Пример: s = f(x,y) – ‘оператор вызова функции.

При необходимости можно указать область определения процедуры или функции:

Private Sub Программа_Привет() – закрытая процедура. Возможен вызов из модуля, где она находится, то есть доступна для других процедур только того модуля, в котором она описана.

Public Sub Программа_Привет() – открытая процедура. Возможен вызов из любого модуля, то есть доступна для всех других процедур во всех модулях.

Static Sub Программа_Привет() указывает, что значения локальных переменных процедуры сохраняются в промежутках времени между вызовами этой процедуры.

Private Function f(ByVal x As Single, ByVal y As Single) As Single - закрытая функция. Возможен вызов из модуля, где она находится.

Public Function f(ByVal x As Single, ByVal y As Single) As Single - открытая функция. Возможен вызов из любого модуля.

 

 







Date: 2016-05-14; view: 3067; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию