Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Normalmente, uma variável está no escopo, ou visível para referência, em toda a região em que você a declara. Em alguns casos, o nível de acesso da variável pode influenciar seu escopo.
Para obter mais informações, consulte Escopo no Visual Basic.
Âmbito de aplicação ao nível do bloco ou do procedimento
Para tornar uma variável visível apenas dentro de um bloco
Coloque a instrução Dim para a variável entre as instruções de declaração iniciais e finais desse bloco, por exemplo, entre as instruções
For
eNext
de um loopFor
.Você pode se referir à variável somente de dentro do bloco .
Para tornar uma variável visível apenas dentro de um procedimento
Coloque a instrução
Dim
para a variável dentro do procedimento, mas fora de qualquer bloco (como umWith
...End With
bloco).Você pode se referir à variável somente de dentro do procedimento, inclusive dentro de qualquer bloco contido no procedimento.
Escopo no nível do módulo ou namespace
Por conveniência, o termo único nível de módulo aplica-se igualmente a módulos, classes e estruturas. O nível de acesso de uma variável de nível de módulo determina seu escopo. O namespace que contém o módulo, a classe ou a estrutura também influencia o escopo.
Para tornar uma variável visível em todo um módulo, classe ou estrutura
Coloque a
Dim
instrução para a variável dentro do módulo, da classe ou da estrutura, mas fora de qualquer procedimento.Inclua a palavra-chave Private na
Dim
instrução.Você pode se referir à variável de qualquer lugar dentro do módulo, classe ou estrutura, mas não de fora dela.
Para tornar uma variável visível em todo um namespace
Coloque a
Dim
instrução para a variável dentro do módulo, da classe ou da estrutura, mas fora de qualquer procedimento.Você pode fazer referência à variável de qualquer lugar dentro do namespace que contém o módulo, a classe ou a estrutura.
Exemplo
O exemplo a seguir declara uma variável no nível do módulo e limita sua visibilidade ao código dentro do módulo.
Module demonstrateScope
Private strMsg As String
Sub initializePrivateVariable()
strMsg = "This variable cannot be used outside this module."
End Sub
Sub usePrivateVariable()
MsgBox(strMsg)
End Sub
End Module
No exemplo anterior, todos os procedimentos definidos no módulo demonstrateScope
podem referir-se à String
variável strMsg
. Quando o usePrivateVariable
procedimento é chamado, ele exibe o conteúdo da variável strMsg
string em uma caixa de diálogo.
Com a seguinte alteração ao exemplo anterior, a variável de string strMsg
pode ser referida por código em qualquer lugar no âmbito da sua declaração.
Public strMsg As String
Programação robusta
Quanto mais estreito for o escopo de uma variável, menos oportunidades você terá de se referir acidentalmente a ela no lugar de outra variável com o mesmo nome. Você também pode minimizar problemas de correspondência de referência.
Segurança do .NET Framework
Quanto mais estreito for o escopo de uma variável, menores serão as chances de que um código mal-intencionado possa fazer uso indevido dela.