Пример 41
Function Sconcat2(ByVal argl As String, ByVal arg2 As String) As String
argl = Trim(argl)
arg2 = Trim(arg2)
Sconcat2 = argl & arg2
End Function
Sub Test_Sconcat2()
Dim a1 As String
Dim a2 As String
a1 = " Значение a1:"
a2 = " Значение a2:"
MsgBox a1 & a2, , "До вызова Sconcat2"
MsgBox Sconcat2(a1, a2), , "При вызове Sconcat2"
MsgBox a1 & a2, , "После вызова Sconcat2"
End Sub
Значения переменных а1 и а2 не изменились после вызова функции Sconcat2.
Не следует объявлять аргументы по значению (ByVal),если функция-процедура не изменяет этот аргумент, так как передача аргументов по значению может использовать больше памяти и времени для выполнения, чем передаче аргументов по ссылке – передача аргументов по значению приводит к тому, что VBA делает копию данных для аргумента.
Следует объявлять аргумент с ключевым словом ByValдля передачи его по значению, если у имеются сомнения, следует ли передавать этот конкретно аргумент по ссылке или по значению: потери в объеме памяти и скорости при передаче по значению не слишком велики. Кроме того, передача аргумента по значению эффективнее и делает код более понятным, чем создание собственной копии значения аргумента в локальной переменной.
Дата добавления: 2015-08-14; просмотров: 489;