Объектно-ориентированный подход в программировании. Проектирование и реализация приложений в среде Microsof Office. Евсеева О.Н. - 61 стр.

UptoLike

Составители: 

1.4. Программирование на VBA 62
3
Proc1
End Sub
Здесь переменная A1 определена на уровне всего проекта (использовано
ключевое слово Public), переменные A2 и A3 определены на уровне модуля,
переменная A4 — только на уровне процедуры Proc1, а переменная A5 хотя и
определена в теле процедуры Proc1, но описана как статическая переменная.
При вызове процедуры Proc2 произойдет следующее: из этой процедуры
будет в свою очередь вызвана процедура Proc1, которая присвоит значения
всем пяти переменным A1, A2, A3, A4 и A5, а затем покажет текущие значения
переменных A4 и А5 в диалоговом окне.
После завершения этой процедуры будут выведены текущие значения
переменных A1А5 из процедуры Proc2. При этом оказывается, что
переменные А1А3 сохранили свои значения, поскольку они описаны на
уровне модуля, а переменные А4 и А5 принимают пустые значения, поскольку
областью действия этих переменных являются процедуры, в которых они
используются. Никакие изменения этих переменных внутри одной из процедур
не имеют отношения к аналогичным переменным из другой процедурына
самом деле это разные переменные, просто для них используются совпадающие
имена.
Затем происходит еще один вызов процедуры Proc1, и она вновь начинает
изменять и выводить на экран значения переменных A4 и А5. При этом
переменная A4 вновь получит значение 4, поскольку при новом вызове
процедуры для этой переменной будет заново выделена память и она будет
инициализирована пустым значением. В отличие от А4, переменная А5,
описанная как статическая переменная, сохранит свое прежнее значение от
предыдущего вызова этой процедуры, и в результате ее значение при
повторном вызове окажется равным 10.
1.4 Программирование на VBA
1.4.1 Организация диалога с пользователем
Во время работы процедуры часто бывает нужно вывести то или иное
сообщение для пользователя или проинформировать его о ходе выполнения
процедуры. Если ее выполнение может потребовать длительного промежутка
времени, просто необходимо сообщить пользователю о требуемом времени
выполнения и о том, как продвигается выполнение операции. Часто приходится
выдавать сообщения о тех или иных ошибках пользователя, например, в тех
случаях, когда пользователь задал недопустимое значение параметра
процедуры или аргумента пользовательской функции.