Экономическая информатика-стр.383

str Адрес = «Москва, Кронштадтская, дом 37»

Вывод str Адрес

End Sub

Sub BbiBOfl(strD As String)

Dim в^Фамилия As String * 18 в^Фамилия = «Это уже не Петров!»

MsgBox в^Фамилия MsgBox strHMfl MsgBox strD

End Sub

В результате выполнения этой программы в окна сообщений будут выведены следующие строки:

Это уже не Петров!

Леонид

Москва, Кронштадтская, дом 37.

Здесь Б^Фамилия и strlim объявлены как глобальные переменные и существуют, пока программа выполняется. StrАдрес и strD - локальные переменные, они существуют лишь тогда, когда выполняется процедура Вывод, в которой они объявлены. В момент вызова этой процедуры глобальная переменная э^Фамилия существует, но она недоступна, так как ее область видимости перекрыта одноименной локальной переменной, поэтому в окно сообщения будет выдано значение той переменной в^Фамилия, которая объявлена в процедуре Вывод. Переменная strliMH также является глобальной, но она доступна для процедуры Вывод. Переменная strAflpec объявлена в процедуре UserForm_Initialize(), но она доносит значение до окна сообщения, так как передается в процедуру Вывод в качестве параметра.

Область видимости переменной задается при ее декларации одним из ключевых слов:

Dim - объявляет локальные переменные, существующие только во время вызова процедур или функций, в которых они объявлены. Если переменная объявляется в разделе глобальных объявлений модуля или формы, то она доступна для всех процедур и функций этого модуля. Для других модулей она будет не видна;

Private - не может объявлять переменную внутри процедуры или функции, при объявлении в разделе глобальных объявлений модули Dim и Private равнозначны;

Public - объявленная таким образом переменная является глобальной на уровне приложения и доступна из всех его модулей.