Способи передачі аргументів VBA

Способи передачі аргументів в процедуру. Урок №35

Аргумент в процедуру можна передавати як посилання, вказавши адресу його розміщення в пам'яті, або як значення.

Якщо аргумент передано по посиланню, то процедура отримує безпосередній доступ до нього і при виконанні може змінювати значення переданого аргументу.

Приклад передачі аргументу по посиланню

Sub myArg(a)
    a = a * 10
End Sub
Sub myCode()
Dim b
    b = 5
    Call myArg(b)
    MsgBox b
End Sub

Якщо аргумент передається як значення, то процедура отримує копію аргументу, і тому зміна аргументу всередині цієї процедури вже не впливає на вихідну змінну. Тобто, значення аргументу, який передається викликаній процедурі по значенню, завжди залишається незмінним в викликаючій процедурі, незалежно від того які дії виконуються в процедурі, яка викликається.

Для того, щоб передати аргумент по значенню, використовують ключове слово ByVal, яке вказують перед ім'ям аргументу в процедурі, що викликається.

Приклад передачі аргументу як значення

Sub myArg(ByVal a)
    a = a * 10
End Sub
Sub myCode()
Dim b
    b = 5
    Call myArg(b)
    MsgBox b
End Sub

Main Menu