Noções básicas sobre a vida útil de variáveis

O tempo durante o qual uma variável retém seu valor é conhecido como seu tempo de vida. O valor de uma variável pode mudar ao longo de sua vida útil, mas mantém algum valor. Quando uma variável perde escopo, ela não tem mais um valor.

Quando um procedimento começa a ser executado, todas as variáveis são inicializadas. Uma variável numérica é inicializada como zero, uma cadeia de caracteres de comprimento variável é inicializada para uma cadeia de caracteres de comprimento zero (""), e uma cadeia de caracteres de comprimento fixo é preenchida com o caractere representado pelo código de caractere ASCII 0 ou Chr( 0 ). As variáveis Variant são inicializadas para Empty. Cada elemento de uma variável de tipo definida pelo usuário é inicializado como se fosse uma variável separada.

Quando você declara uma variável de objeto, o espaço é reservado na memória, mas seu valor é definido como Nothing até que você atribua uma referência de objeto a ela usando a instrução Set .

Se o valor de uma variável não for alterado durante a execução do código, ele manterá seu valor inicializado até perder o escopo.

Uma variável de nível de procedimento declarada com a instrução Dim mantém um valor até que o procedimento seja concluído em execução. Se o procedimento chamar outros procedimentos, a variável manterá seu valor enquanto esses procedimentos também estão em execução.

Se uma variável de nível de procedimento for declarada com a palavra-chave Static , a variável manterá seu valor enquanto o código estiver em execução em qualquer módulo. Quando todo o código terminar de ser executado, a variável perde seu escopo e seu valor. Seu tempo de vida é igual a uma variável de nível de módulo.

Uma variável de nível de módulo difere de uma variável estática. Em um módulo padrão ou em um módulo de classe, ele mantém seu valor até que você pare de executar seu código. Em um módulo de classe, ele mantém seu valor desde que exista uma instância da classe. As variáveis de nível de módulo consomem recursos de memória até que você redefinir seus valores, portanto, use-os somente quando necessário.

Se você incluir a palavra-chave Static antes de uma instrução Sub ou Function , os valores de todas as variáveis de nível de procedimento no procedimento serão preservados entre chamadas.

Confira também

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.