Определение способа передачи аргумента
Побочные результаты, вызванные изменением функцией значений в аргументах, передаваемых по ссылке, являются необязательными и в большинстве случаев – нежелательными. Они могут привести к серьезным проблемам в программах.
Для предотвращения этих последствий необходимо, чтобы функция работа с копией значения аргумента, а не с исходными данными. Можно было бы объявить локальную переменную в функции-процедуре и копировать аргумент в эту локальную переменную. Копирование значении аргумента в локальные переменные функции обычно нежелательно. Дополнительные переменные увеличивают объем памяти, необходимой для функции, и количество выполняемой программистом работы. Дополнительные переменные могут также привести в беспорядок программный код, усложняя его до ошибочного.
Более легкий и предпочтительный способ обеспечить работу функции только с копиями значения аргумента, а не с исходным значением – это указать VBA, что аргумент должен передаваться по значению, а не по ссылке. (Помните, передача по значению дает функции копию значения аргумента; передача по ссылке открывает функции доступ к исходным данным в аргументе.)
Чтобы явно указать, передает VBA аргумент по значению или по ссылке, надо использовать ключевое слово ByValили ByRefперед аргументом, для которого необходимо задать метод передачи. Как можно понять по именам ключевых слов, при использовании ByValVBA передает аргумент по значению, а при ByRef – по ссылке.
Дата добавления: 2015-08-14; просмотров: 618;