DeclarandoOpção Explícita no topo do seu módulo de código diz ao VBA para exigir que você declare todas as variáveis que você está usando no código. Se este comando for omitido, você pode usar variáveis que você não declarou. Recomendamos usar a opção explícita na parte superior do seu módulo, pois ajuda a evitar erros de digitação das variáveis.
Usando Variáveis VBA sem Opção Explícita
Mostraremos primeiro o exemplo do código quando não houver um comando Option Explicit. Aqui está o código:
123456789 | Private Sub ExampleWOOptionExplicit ()Dim strTextA As StringstrTextA = "Testando VBA sem Opção Explícita"MsgBox strTextAEnd Sub |
No exemplo, declaramos a variável strTextA na primeira linha do procedimento e atribuímos a ela o texto. Depois disso, queremos retornar a caixa de mensagem com o valor de strTextA. Aqui está o resultado quando executamos o código:
Imagem 1. O código sem Option Explicit
Como você pode ver na Imagem 1, o código foi executado com sucesso. A caixa de mensagem com o valor de strTextA apareceu, embora não tenhamos declarado a variável strTextA. Aqui não há nenhum problema com o código, mas e se tivéssemos digitado incorretamente o nome da variável:
1 | MsgBox strTxtA |
Aqui escrevemos strTxtA (sem um “e”) em vez de strTextA. Como resultado, obtemos uma caixa de mensagem em branco, porque a variável strTxtA não foi definida. Agora veremos como usar Option Explicit para evitar erros.
Usando as Variáveis com Opção Explícita
Se você quiser evitar o uso de variáveis que não são declaradas, você deve inserirOpção Explícita no topo do seu módulo:
1 | Opção Explícita |
Aqui está o código completo, incluindo o erro de digitação:
12345678910 | Opção ExplícitaPrivate Sub ExampleWithOptionExplicit ()Dim strTextA As StringstrTextA = "Testando VBA sem Opção Explícita"MsgBox strTxtAEnd Sub |
Vamos ver o que acontece se executarmos o código:
Imagem 2. O código com Option Explicit
Como resultado, obtemos o erro "Variável não definida", porque não declaramos ostrTxtA variável.
Adicionar Option Explicit na parte superior de seus módulos de código ajuda a evitar erros de variáveis com erros ortográficos.
Se você quiser saber mais sobre outras opções de VBA do VBA, aprenda como tornar o VBA sem distinção entre maiúsculas e minúsculas: Prevent VBA Case Sensitive