Instruções IF do VBA do Excel

A instrução IF no código VBA é uma das mais usadas, o que permite fazer uma escolha. A função IF no VBA é diferente quando comparada à função EXCEL IF, ou seja, na função ou fórmula do Excel IF, verifica se a condição ou os critérios determinados são avaliados como VERDADEIRO ou FALSO e, em seguida, retorna um valor com base na avaliação, enquanto a instrução VBA IF executará apenas o primeiro metade da instrução, ou seja, verifique se a condição é avaliada como VERDADEIRA ou FALSA, além disso, ENTÃO a instrução THEN precisa ser inserida na instrução IF do VBA para a operação ou tarefa restante a ser executada.

Três parâmetros que você precisa considerar ou ter em mente ao escrever o código de instrução VBA IF.

  • Uma condição ou parâmetro a ser testado.
  • Uma operação ou tarefa a ser executada se a condição for VERDADEIRA.
  • Uma operação ou tarefa a ser executada se a condição for FALSE

É uma declaração de tomada de decisão usada para executar um bloco de código.

Ele executa uma tarefa ou operação quando uma condição é VERDADEIRA, caso contrário, não faça nada ou faça outra coisa. Geralmente, uma instrução if consiste em uma expressão booleana seguida de instruções (pode ser uma ou várias).

Simples para a condição complexa pode ser escrito na instrução VBA IF.

Abaixo, são mostrados os diferentes tipos de instruções IF do VBA, com sintaxe e exemplos.

Tipos de instrução IFSintaxe
SE ENTÃOIf Then (Instrução)

Fim se

SE ELSESe Então (Instrução1)

Outro:

(Declaração2)

Fim se

SE ELSEIFSE então

(Declaração1)

ELSEIF Then

(Declaração2)

Fim se

ELSE E ELSEIF

(A declaração ELSEIF deve vir primeiro, depois a ELSE)

IF (condição1 é verdadeira) Então

(Declaração1)

ELSEIF (condição2 é verdadeira)

(Declaração2)

OUTRO

(Declaração3)

Fim se

SE SEM ENDIF

(apenas código de linha única)

Usado quando a instrução ELSE ou ELSE IF não é usada

IF (condição verdadeira) Then (Instrução)

Além da instrução acima, a instrução NESTED IF também pode ser usada, ou seja, uma instrução if ou ELSEIF dentro de outra instrução if ou ELSEIF.

Como usar instruções IF no Excel VBA?

Vamos aprender os tipos e como usar as instruções IF do VBA com alguns exemplos no Excel.

Você pode fazer o download deste modelo do Excel VBA IF Statements aqui - Modelo do VBA IF Statements Excel
  • Abra uma janela do VB Editor. Selecione ou clique em Visual Basic no grupo Code na guia Developer ou clique diretamente na tecla de atalho Alt + F11 .

  • Isso nos levará à janela de codificação do Visual Basic. Agora vá ao menu Inserir da janela VBA e selecione Módulo como mostrado abaixo.

  • Agora, o módulo em branco é criado, também é chamado de janela de código, onde você pode começar a escrever códigos de instrução if.

Instrução VBA IF THEN - Exemplo # 1

IF THEN é uma forma simples de instrução VBA. O formato para escrever um código é:

Se Então

Você deve usar a instrução End If correspondente após inserir a sintaxe acima . Quando a condição atender ou os critérios forem avaliados como verdadeiros, todas as linhas entre If Then e End If serão processadas.

Quando você digita Sub IF_THEN () como a primeira mensagem sem aspas, pode observar, o Excel adiciona automaticamente a linha End Sub abaixo da primeira linha de mensagem quando você pressiona Enter. Agora, todos os códigos inseridos devem estar entre essas duas linhas.

Código:

 Sub IF_THEN () Se 3> 2, MsgBox "3 é maior que 2" End If End Sub 

Vamos verificar com o código acima, que possui uma única linha de instrução IF que verifica ou verifica o valor 3.

Se o valor "3" for maior que "2", a mensagem pop-up será exibida com a mensagem, ou seja, "3 é maior que 2". Se você alterar o valor de " 2 " para " 5 " no código VBA e executá-lo, nada acontecerá. Porque 3 não é maior que 5.

Você pode executar a macro clicando no botão Executar Sub ou pressionando F5 . A janela pop-up da caixa de mensagens do VBA é exibida com a mensagem informando "3 é maior que 2"

Instrução VBA IF-THEN-ELSE - Exemplo # 2

Nesse cenário, a instrução IF & ELSE é usada para executar duas condições diferentes. O formato ou sintaxe para escrever código é:

Se Então

Instrução1

Outro:

Instrução2

Fim se

Se você executar um código abaixo mencionado, ou seja, se a célula B4 contiver um valor 7, você receberá uma caixa de mensagem mostrando “A célula B4 possui valor 7” e se a célula B4 contiver um valor diferente de 7, você receberá uma caixa de mensagem mostrando "A célula B4 tem um valor diferente de 7".

Aqui, com base no valor presente na célula, ocorre um resultado diferente (ou seja, mais de uma condição).

Código:

 Sub IF_THEN_ELSE () Se Intervalo ("B4"). Valor = "7" Em seguida, MsgBox "A célula B4 possui o valor 7" Else MsgBox "A célula B4 possui um valor diferente de 7" End If End Sub 

Agora, a célula "B4" contém um valor 7, se eu executar o código acima, a primeira condição será exibida.

Suponha que eu alterei o valor da célula "B4" de 7 para 5, como mostrado abaixo.

Código:

 Sub IF_THEN_ELSE () Se Intervalo ("B4"). Valor = "5" Então MsgBox "A célula B4 possui o valor 7" Else MsgBox "A célula B4 possui um valor diferente de 7" End If End Sub 

Portanto, se eu executar acima do código VBA IF-THEN-ELSE, a segunda condição será exibida.

IF-THEN-ELSEIF-ELSE - Exemplo # 3

É uma forma avançada de VBA if, declaração, formato ou sintaxe para escrever um código.

IF (condição1 é verdadeira) Então

(Declaração1)

ELSEIF (condição2 é verdadeira)

(Declaração2)

OUTRO

(Declaração3)

Fim se

A vantagem desse código é que o ELSE IF pode ser usado isoladamente ou várias vezes (10 ou 100 vezes ou mais), conforme sua necessidade.

Código:

 Sub IF_THEN_ELSEIF_ELSE () Se 5> 8 Então MsgBox "5 é maior que 8" ElseIf 6> 8 Então MsgBox "6 é maior que 8" ElseIf 7> 8 Então MsgBox "7 é maior que 8" Else MsgBox "5, 6 ou 7 é menor que 8 "End If End Sub 

Vamos verificar como o código acima funciona, o Excel iniciará ou processará a primeira instrução, quando perceber que é falsa, e depois passará para a próxima. Aqui todos os argumentos ou condição ElseIf são falsos; portanto, eles prosseguirão até que a condição seja verdadeira e, finalmente, o resultado do argumento Else seja exibido como resultado final da instrução IF. ou seja, MsgBox "5, 6 ou 7 é menor que 8", que é um argumento VERDADEIRO.

Quando você seleciona e executa o código, clique no botão Executar Sub ou pressione F5 . A janela pop-up da caixa de mensagens VBA com uma mensagem informando "5, 6 ou 7 é menor que 8", que é um argumento verdadeiro

Agora, você pode salvar esses códigos de macro renomeando como VBA_IF_STATEMENT na seção nome da guia Propriedades

Coisas para lembrar

  • Quando a linha única da instrução IF Then é usada, não é necessário usar o Final de IF finalmente. Mas quando a dividimos em mais de uma linha, a instrução End If deve ser usada.
  • Na instrução VBA, IF-THEN-ELSEIF-ELSE, os argumentos ElseIf sempre devem ser colocados antes do argumento Else.

Artigos recomendados

Este é um guia para instruções IF do VBA. Aqui discutimos como usar instruções IF no Excel VBA, juntamente com exemplos práticos e modelo de excel para download. Você também pode consultar nossos outros artigos sugeridos -

  1. Matrizes VBA no Excel
  2. Guia para o formato de número do VBA
  3. Guia de localização do VBA
  4. Como usar o VBA Do While Loop?

Categoria: