Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Область действия определяет, может ли переменная, константа или процедура использоваться в другой процедуре. Область действия бывает на трех уровнях: процедуры, модуля Private и модуля Public.
Область действия переменной определяется при ее объявлении. Лучше всего объявить все переменные в явном виде, чтобы избежать возможных конфликтов именования для переменных с разной областью действия.
область на уровне процедуры
Переменная или константа, определенные в процедуре, не видны за ее пределами. С переменной может работать только процедура, которая содержит объявление этой переменной. Далее показан пример, в котором первая процедура отображает окно сообщения, содержащее текст. Во второй процедуре отображается пустое окно сообщения, так как переменная является локальной для первой процедуры.
Sub LocalVariable()
Dim strMsg As String
strMsg = "This variable can't be used outside this procedure."
MsgBox strMsg
End Sub
Sub OutsideScope()
MsgBox strMsg
End Sub
область уровня частного модуля
Переменные и константы на уровне модуля можно определить в разделе Объявления модуля. Переменные уровня модуля могут быть общедоступными или частными. Общедоступные переменные доступны всем процедурам во всех модулях проекта; частные переменные доступны только для процедур в этом модуле. По умолчанию переменные, объявленные с помощью инструкции Dim в разделе Объявления, относятся к области как закрытые. Однако перед переменной с частной ключевое слово область в коде будет очевидно.
В следующем примере строковая переменная strMsg доступна для всех процедур, определенных в модуле. При вызове второй процедуры в диалоговом окне отображается содержимое строковой переменной strMsg .
' Add following to Declarations section of module.
Private strMsg As String
Sub InitializePrivateVariable()
strMsg = "This variable can't be used outside this module."
End Sub
Sub UsePrivateVariable()
MsgBox strMsg
End Sub
Примечание.
Процедуры Public в стандартном модуле или модуле класса доступны в любом ссылающемся проекте. Чтобы ограничить область всех процедур в модуле текущим проектом, добавьте оператор Option Private Module в раздел Объявления модуля. Переменные и процедуры, объявленные как Public, будут доступны для использования в других процедурах текущего проекта, но не в ссылающихся проектах.
область уровня общедоступного модуля
Если переменная уровня модуля объявлена как общая (Public), то она доступна для всех процедур в проекте. В следующем примере строковая переменная может использоваться любой процедурой в любом модуле проекта.
' Include in Declarations section of module.
Public strMsg As String
По умолчанию все процедуры являются общими; исключение составляют процедуры событий. Когда Visual Basic создает процедуру события, частнаяключевое слово автоматически вставляется перед объявлением процедуры. Для всех остальных процедур необходимо явно объявить процедуру с помощью частной ключевое слово, если вы не хотите, чтобы она была общедоступной.
Используйте открытые процедуры, переменные и константы, определенные в стандартных модулях или модулях класса из ссылок на проекты. Для этого необходимо сначала задать ссылку на проект, в котором они объявлены.
Открытые процедуры, переменные и константы, определенные не в стандартных модулях или модулях класса, таких как модули форм или модули отчетов, недоступны для ссылок на проекты, так как эти модули являются частными для проекта, в котором они находятся.
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.