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

  1. Coloque a instrução Dim para a variável dentro do módulo, classe ou estrutura, mas fora de qualquer procedimento.

  2. Inclua a palavra-chave Private (Visual Basic) na instrução Dim.

  3. 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

  1. Coloque a instrução Dim para a variável dentro do módulo, classe ou estrutura, mas fora de qualquer procedimento.

  2. Inclua a palavra-chave Amigo (Visual Basic) ou Público (Visual Basic) na instrução Dim.

  3. 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

O Escopo no Visual Basic

Tempo de vida no Visual Basic

Níveis de acesso em Visual Basic

Variáveis no Visual Basic

Declaração de variável no Visual Basic

Referência

Instrução Dim (Visual Basic)