Compartilhar via


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

O tempo durante o qual uma variável mantém seu valor é conhecido como seu tempo de vida. O valor de uma variável pode ser alterado ao longo de seu tempo de vida, 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é atribuir uma referência de objeto a ele usando a instrução Definir .

Se o valor de uma variável não for alterado durante a execução do código, ele manterá seu valor inicializado até que ele perca 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 estiverem em execução também.

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

Uma variável no nível do 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 no nível do módulo consomem recursos de memória até redefinir seus valores, portanto, use-os somente quando necessário.

Se você incluir a palavra-chave estática antes de uma instrução Sub ou Function , os valores de todas as variáveis no nível do 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.