Використання функцій-процедур і підпрограм в vba - студопедія

Аргументи з певними типами використовуються з тих же причин, по яким використовуються типізовані змінні або результати функції. Визначення типів аргументів для функції-процедури допомагає користувачеві при виконанні функції вводити аргументи правильного типу в правильному порядку. Синтаксис елемента Arglist:

[Optional] [ByVal | ByRef] [ParamArray] імяПеременной_

[As тип] [= замовчуванням]

Optional - ключове слово, яке вказує, що аргумент не є обов'язковим. При використанні цього елемента всі наступні аргументи, які містяться в списку Arglist, також повинні бути необов'язковими і описані за допомогою ключового слова Optional;

Function Name (tstr As String, Optional nChar As Long) As String

ByVal - вказує, що цей аргумент передається за значенням;

ByRef - вказує, що цей аргумент передається по посиланню. Опис ByRef використовується в VBA за замовчуванням;

ParamArray - ключове слово ParamArray дозволяє задавати довільну кількість аргументів. Воно не може бути використано зі словами Byval, ByRef або Optional.

= За замовчуванням - значення аргументу за замовчуванням.

Приклад 2. Визначення типу даних аргументу функції LenTrim

Function LenTrim (tStr As String) As Long

'Повертає довжину tStr без провідних і хвостових прогалин

Підпрограма - являє собою певний набір операторів, складений користувачем і розташований окремо від основної програми. Підпрограма має наступний синтаксис:

[Private | Public] [Static] Sub Name ([Arglist]) [As Type]

Використовувати власні функції-процедури в операторах VBA треба так само, як будь-які вбудовані функції. Всі правила і умови по використанню вбудованих функцій застосовні до призначених для користувача функцій-процедур. При виконанні функції необхідно включати список аргументів у круглих дужках.

Для виклику процедури Sub використовується наступні способи:

Call ІмяПроцедури (СпісокФактіческіхПараметров)

Dim з As Double 'з - глобальний параметр

Function F (ByVal x As Integer) As Integer

Sub Assistant (ByVal a As Integer, ByVal b As Integer)

'Процедура, що знаходить суму двох чисел і виводить

'Результат в діалоговому вікні

'Процедура, що знаходить суму двох чисел і виводить

'Результат в діалоговому вікні

Dim x, у As Double

'Виклик процедури з фактичними параметрами

Call Assistant (1, 3)

'Первісне привласнення змінним значень,

'З подальшим викликом процедури

Call Assistant (x, F (x))

Assistant x, у + 2

'Використання функції як фактичного параметра

Схожі статті