Como usar a instrução de opção explícita no vba?
Pontos chave
- A opção Explícita exige que você declare todas as variáveis .
- Esta é uma declaração que você pode usar no início de um módulo .
- Você pode inseri-lo manualmente ou habilitá-lo nas opções.
- Você deve usar Option Explicit apenas uma vez.
- Também ajuda a identificar erros de digitação ao usar variáveis.
O que é opção explícita do VBA
Option Explicit é uma instrução que você pode usar no início de um módulo para forçá-lo a declarar todas as variáveis. Ao adicionar esta instrução, o VBA mostra um erro de compilação ao executar o código e também destaca a variável no código que você precisa declarar.
Quando você adiciona uma opção explícita no início de um módulo, o VBA adiciona uma linha separadora abaixo dela e então você pode começar a escrever um procedimento. E quando você tem a opção de declaração explícita e executa um procedimento, o VBA verifica se há uma variável não declarada e mostra uma mensagem de erro.
Option Explicit Sub myMacro() a = 50 MsgBox a End Sub
Acima está a mensagem que você recebe quando uma variável não é declarada.
Habilitar opção explícita no VBA
Para habilitar a instrução de opção explícita em um módulo, siga estas etapas.
- Primeiro, abra o Editor do Visual Basic e no menu Ferramentas, clique em Opções.
- Depois disso, nas opções, vá até a aba do editor e marque a caixa “Exigir declaração de variável”.
- No final, clique em OK.
- Depois de fazer isso, o VBA adicionará uma opção explícita sempre que você adicionar um novo módulo.
Mas ele não adiciona esta declaração ao seu módulo existente, então você deve adicioná-las manualmente a cada um dos módulos existentes, um por um.
Como adicioná-lo manualmente?
Como mencionei, a instrução Option Explicit deve vir antes do procedimento do primeiro módulo (Sub ou Function). Portanto, você precisa adicionar esta declaração acima do primeiro procedimento (área de declarações gerais) e certificar-se de adicioná-la apenas uma vez.
Se você adicioná-lo dentro de um procedimento ou entre dois procedimentos, o VBA mostrará um erro ao tentar executar qualquer um dos códigos do módulo.
Exemplos (por que usar Option Explicit Statement é um bom hábito)
Deixe-me mostrar um exemplo para que você entenda por que a instrução Option Explicit é altamente recomendada. Observe o código a seguir.
Sub myMacro() Dim myText As String myText = "Puneet" MsgBox MyTxt End Sub
Neste código, declarei uma variável “myText” como uma string e a seguir defini o valor desta variável. E no final, usei uma caixa de mensagem que exibe o valor da variável, mas se você olhar com atenção, escrevi incorretamente essa variável como “MyTxt” em vez de “myText”.
Agora, quando executo esse código, ele me mostra uma caixa de mensagem vazia.
Preciso de seus 2 minutos para ajudá-lo a entender o verdadeiro problema aqui. Quando digitei o nome da variável errado, o VBA o considera uma variável separada e, como não uso a instrução de opção explícita, isso não mostra um erro.
É por isso que a caixa de mensagem usa a segunda variável (digitada incorretamente) que não possui nenhum valor atribuído a ela. Agora pense por um segundo; Se você escrever um código longo e não usar instruções de opção explícitas, será difícil rastrear esse erro até reler todo o código.
Mas com a opção de declaração explícita ativada, quando executo esse código, recebo um erro.
Option Explicit Sub myMacro() Dim myText As String myText = "Puneet" MsgBox MyTxt End Sub