Como: O escopo de uma variável de controle
Normalmente, uma variável está no escopo ,ou visível para referência, em toda a região em que você declare.Em alguns casos, o nível de acessode uma variável pode influenciar seu escopo.
Para obter mais informações, consulte O Escopo no Visual Basic.
Escopo no bloco ou nível de procedimento
Para tornar uma variável visível somente dentro de um bloco
Coloque o Instrução Dim (Visual Basic) para a variável entre as instruções de declaração iniciail e final daquele bloco, por exemplo entre as instruções For e Next de um loop For.
Você pode fazer referência à variável somente de dentro do bloco.
Para tornar uma variável visível somente dentro de um procedimento
Coloque a instrução Dim para a variável dentro do procedimento, mas fora de qualquer bloco (como um bloco With. .. End With).
Você pode fazer referência à variável somente de dentro do procedimento, inclusive dentro de qualquer bloco contido no procedimento.
Escopo no módulo ou nível de namespace
Para sua conveniência, o termo simplesní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, classe ou estrutura também influencia o escopo.
Para tornar uma variável visível em um módulo, classe ou estrutura
Coloque a instrução Dim para a variável dentro do módulo, classe ou estrutura, mas fora de qualquer procedimento.
Inclua a palavra-chave Private (Visual Basic) na instrução Dim.
Você pode referir-se a variável em qualquer lugar dentro do módulo, classe ou estrutura, mas não de fora.
Para tornar uma variável visível em um namespace
Coloque a instrução Dim para a variável dentro do módulo, classe ou estrutura, mas fora de qualquer procedimento.
Inclua a palavra-chave Amigo (Visual Basic) ou Público (Visual Basic) na instrução Dim.
Você pode referir-se a variável em qualquer lugar dentro do módulo, classe ou estrutura, mas não de fora.
Exemplo
O exemplo a seguir declara uma variável no nível de 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 a variável StringstrMsg.Quando o procedimento usePrivateVariable é chamado, ele exibe o conteúdo da variável de sequência strMsg em uma caixa de diálogo.
Com a seguinte alteração ao exemplo anterior, a variável de sequência de caracteres strMsg pode ser chamada pelo código em qualquer lugar no namespace da sua declaração.
Public strMsg As String
Programação robusta
Quanto mais estreito o escopo de uma variável, menos oportunidades você tem para acidentalmente referir-se 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
Quanto mais estreito o escopo de uma variável, menores as chances de código mal-intencionado pode fazer uso impróprio dela.
Consulte também
Conceitos
Níveis de acesso em Visual Basic
Declaração de variável no Visual Basic