Declarando variáveis

Ao declarar variáveis, você geralmente usa uma instrução Dim. Uma instrução de declaração pode ser colocada no procedimento para criar uma variável a nível de procedimento. Ou pode ser colocada na parte superior de um módulo, na seção Declarações, para criar uma variável de nível de módulo.

O exemplo a seguir cria a variável e especifica o Tipo de dados String.

Dim strName As String 

Se esta política é exibida em um procedimento, a variável strName pode ser usada somente nesse procedimento. Se a instrução aparecer na seção Declarações do módulo, a variável strName estará disponível para todos os procedimentos no módulo, mas não para procedimentos em outros módulos no projeto.

Para tornar essa variável disponível para todos os procedimentos do projeto, preceda-a com a instrução Público como no exemplo a seguir:

Public strName As String 

Para saber mais sobre como nomear suas variáveis, veja Regras de Nomenclatura do Visual Basic.

As variáveis podem ser declaradas como um dos seguintes tipos de dados: Booliana, Byte, Inteiro, Long, Moeda, Único, Duplo, Data, Cadeia (para cadeias de caracteres de comprimento variável), Cadeia * comprimento (para cadeias de comprimento corrigido), Objeto, ou Variante. Se você não especificar um tipo de dados, o tipo de dados Variante será atribuído por padrão. Você também pode criar um tipo definido de usuário by usando a instrução Tipo.

Você pode declarar diversas variáveis em uma política. Para especificar um tipo de dados, você deve incluir o tipo de dados para cada variável.

Na instrução a seguir, as variáveis intX, intY e intZ são declaradas como o tipo Integer.

Dim intX As Integer, intY As Integer, intZ As Integer 

Na instrução a seguir, intX e intY são declarados como o tipo Variant e somente intZ é declarado como o tipo Integer.

Dim intX, intY, intZ As Integer 

Não é necessário fornecer o tipo de dados da variável na instrução de declaração. Se você omitir o tipo de dados, a variável será do tipo Variante.

A abreviação para declarar x e y como Número Inteiro na declaração acima é:

Dim intX%, intY%, intZ as Integer

A abreviação para os tipos é: % -inteiro; & longo; @ -moeda; # -duplo; ! -única; $ -cadeia de caratceres

Instrução pública

Use a instrução Pública para declarar variáveis de nível de módulo público.

Public strName As String 

As variáveis públicas podem ser usadas em qualquer procedimento no projeto. Se uma variável pública for declarada em um módulo padrão ou em um módulo de classe, também poderá ser usada em todos os projetos que façam referência ao projeto onde a variável for declarada.

Instrução particular

Use a instrução Privada para declarar variáveis privadas no nível do módulo.

Private MyName As String 

As variáveis privadas só poderão ser usadas por procedimentos no mesmo módulo.

Observação

Quando usada no nível do módulo, a instrução Dim is é equivalente à instrução Privada. Talvez você queira usar a instrução Privada para tornar mais fácil ler e interpretar o código.

Instrução estática

Quando você usa a instrução Estática em vez de uma instrução Dim para declarar uma variável em um procedimento, a variável declarada manterá o valor entre chamadas a esse procedimento.

Instrução opção explícita

Você pode implicitamente declarar uma variável no Visual Basic simplesmente usando-a em uma política de atribuição. Todas as variáveis implicitamente declaradas são do tipo Variant. As variáveis do tipo Variant exigem mais recursos de memória do que a maioria das outras variáveis. O aplicativo será mais eficiente se declarar variáveis explicitamente e com um tipo de dados específico. Declarar explicitamente todas as variáveis reduz o índice de erros de conflito de nomeação e erros de ortografia.

Se não quiser que o Visual Basic faça declarações implícitas, você pode colocar a instrução Opção Explícita em um módulo antes de todos os procedimentos. Esta instrução exige que você declare explicitamente todas as variáveis dentro do módulo. Se um módulo incluir a instrução Option Explicit, um erro do tempo de compilação ocorrerá quando o Visual Basic encontrar um nome de variável que não tenha sido declarado anteriormente, ou que tenha sido escrito incorretamente.

Você pode definir uma opção no seu ambiente de programação do Visual Basic para incluir automaticamente a instrução Option Explicit em todos os novos módulos. Confira a documentação do aplicativo para obter ajuda sobre como alterar opções de ambiente do Visual Basic. Observe que esta opção não altera código existente escrito por você.

Observação

Você deve declarar matrizes fixas e matrizes dinâmicas explicitamente.

Declarando uma variável de objeto para automação

Quando você usa um aplicativo para controlar os objetos de outro aplicativo, você deve definir uma referência para a biblioteca de tipos do outro aplicativo. Depois de definir uma referência, você pode declarar variáveis de objeto de acordo com o tipo mais específico. Por exemplo, se você estiver no Microsoft Word, quando definir uma referência para a biblioteca de tipos do Microsoft Excel, você pode declarar uma variável do tipo planilha no Microsoft Word para representar um objeto planilha do Microsoft Excel.

Se você estiver usando outro aplicativo para controlar objetos do Microsoft Access, na maioria dos casos, poderá declarar variáveis de objeto de acordo com o tipo mais específico. Você também pode usar a palavra-chave New para criar uma nova instância de um objeto automaticamente. No entanto, você precisará indicar que se trata de um objeto do Microsoft Access. Por exemplo, ao declarar uma variável de objeto para representar um formulário do Microsoft Access no Microsoft Visual Basic, você deve diferenciar um objeto Formulário do Microsoft Access de um objeto Formulário do Visual Basic. Inclua o nome da biblioteca de tipos na declaração de variável, como no exemplo a seguir:

Dim frmOrders As New Access.Form 

Alguns aplicativos não reconhecem tipos de objeto individuais do Microsoft Access. Mesmo se você definir uma referência para a biblioteca de tipos do Microsoft Access desses aplicativos, deverá declarar todas as variáveis de objeto do Microsoft Access como tipo Objeto. Você também não pode usar a palavra-chave Nova para criar uma nova instância do objeto.

O exemplo a seguir mostra como declarar uma variável para representar uma instância do Microsoft Access para um objeto Application de um aplicativo que não reconhece tipos de objeto do Microsoft Access. O aplicativo, em seguida, cria uma instância do objeto Application.

Dim appAccess As Object 
Set appAccess = CreateObject("Access.Application")

Para determinar o tipo de sintaxe a que um aplicativo dá suporte, veja a documentação do aplicativo.

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.