Sintaxe se então vba. "Estruturas de controle VBA VBA

Operadores VBA básicos

Comentários (0)

3.1. Regras para operadores de gravação

Ao gravar operadores, você deve seguir as seguintes regras:

Cada nova declaração é escrita em uma nova linha.

Para escrever várias instruções em uma linha, elas são separadas por dois pontos (:).

Se a instrução não couber em uma linha, você deverá colocar um espaço e um sublinhado (_) no final da linha e continuar a parte que não couber na próxima linha.

3.2. Operador de atribuição

O operador de atribuição é usado quando uma variável precisa receber um novo valor. Possui a seguinte sintaxe:

NOME VARIÁVEL= EXPRESSÃO

Primeiro, a expressão do lado direito é avaliada e, em seguida, o resultado é atribuído à variável do lado esquerdo.

Por exemplo. Escreva a seguinte expressão matemática usando o operador de atribuição:

No VBA esta expressão pode ser escrita como o seguinte operador:

Y = a^(1/3)+(a^2+Exp(-b))/(Sin(a)^2-Log(b))

3 .3. Operadores de E/S

3 .3.1. Operador e função MsgBox

Operador Caixa de mensagem exibe informações em uma caixa de diálogo e define o modo para aguardar o usuário pressionar um botão.

Possui a seguinte sintaxe:

Caixa de mensagem Mensagem[,Botões][, Cabeçalho]

Argumentos:

Mensagem - um argumento obrigatório que especifica a mensagem informativa a ser exibida na janela. Pode consistir em várias linhas de texto unidas por um sinal & . Uso neste argumento Cr(13) leva a uma nova linha ao gerar informações.

Botões - o valor deste argumento determina as categorias de botões que aparecem na janela. O valor do argumento do botão também determina se algum ícone aparece na janela. Se você não especificar quais botões serão exibidos na caixa de mensagem, o valor padrão correspondente ao botão OK será usado. Na tabela 3.1 mostra possíveis combinações de botões e ícones na janela de mensagens.

Cabeçalho - define o título da janela.

Função Caixa de mensagem retorna um valor inteiro indicando qual botão foi clicado na caixa de diálogo.

Tabela 3.1. Valores válidos de variáveis ​​de botão

Mostrar

Argumento

Botão OK

Botões OK e Cancelar

Botões Sim e Não

Botões Sim, Não e Cancelar

Botões Parar, Repetir e Ignorar

VbAbortRetryIgnorar

Botões Repetir e Cancelar.

Sinal de informação

Ponto de interrogação

Ponto de exclamação

Por exemplo. Exibe uma mensagem sobre a data atual.

MsgBox "Hoje no calendário" & Data, "Atenção"

Como resultado, a seguinte janela será exibida (Fig. 3.1).

Após clicar em OK, a caixa de mensagem será fechada e a execução do programa será retomada a partir da instrução imediatamente após a chamada de MsgBox.

3.3.2. Função Caixa de entrada

Função Caixa de entrada insere valores de variáveis ​​​​usando a janela de entrada e tem a seguinte sintaxe:

Nome variável = Caixa de entrada(Mensagem[, Título] )

Argumentos:

Mensagem - argumento obrigatório. Define uma mensagem informativa na janela, geralmente explicando o significado do valor inserido.

Cabeçalho - define o título da janela.

Por exemplo, Insira o valor da variável N no teclado, fornecendo um valor padrão de 10.

Para fazer isso, você pode usar o seguinte operador:

N = InputBox("Digite N", "Entrada",10)

Como resultado, será exibida a seguinte janela para inserção do valor da variável N (Fig. 3.2).

Se o valor padrão for adequado ao usuário, após clicar no botão OK, a janela de entrada será fechada, a variável N será definida como 10 e a execução do programa será retomada com a instrução imediatamente após a chamada Caixa de entrada.

Caso o valor padrão não seja adequado para o usuário, antes de clicar no botão OK, deve-se inserir o valor desejado para a variável N.

3 .4. Instrução SE condicional

Para implementar um processo computacional ramificado em VBA, o operador é usado Se...Então...Senão, que é a forma mais simples de verificação de condições. Possui a seguinte sintaxe:

SeDOENÇAEntãoOPERADOR_1Ecaso contrárioOPERADOR_2

OPERADOR_1 executado se DOENÇA verdadeiro, caso contrário executado OPERADOR_2. Neste caso, a instrução If...Then...Else é escrita em uma linha.

DOENÇAé uma expressão booleana. O resultado de uma expressão é sempre booleano. Uma expressão pode ser simples ou complexa. Ao escrever condições simples, todas as operações relacionais possíveis listadas na tabela podem ser usadas. 3.2.

Mesa3 .2. Relações lógicas

Operação

Nome

Expressão

Resultado

Verdadeiro se A for igual a B

Verdadeiro se A não for igual a B

Verdadeiro se A for maior que B

Verdadeiro se A for menor que B

Mais ou igual

Verdadeiro se A for maior ou igual a B

Menor ou igual

Verdadeiro se A for menor ou igual a B

Condições complexas são formadas a partir de condições simples usando operações lógicas e parênteses. A lista de operações lógicas é fornecida na tabela. 3.3.

Mesa3 .3. Operações lógicas

Nome

Expressão

Resultado

boleano
negação

Lógico E

OU lógico

Numa declaração condicional, é permitido usar um bloco de declarações em vez de qualquer uma das declarações. Neste caso, o operador condicional se parece com:

SeDOENÇAEntão

BLOCO_OPERATORS_1

BLOCO_OPERATORS_2

Fim euf

Uma instrução condicional pode testar múltiplas condições. Neste caso, o operador condicional se parece com:

SeCONDIÇÃO_1Então

BLOCO_OPERATORS_1

Caso contrárioCONDIÇÃO_2Então

BLOCO_OPERATORS_2

Outro

FimSe

Exemplo 1. Escreva parte do programa para o algoritmo da Fig. 3.3.

Exemplo 2. Escreva parte do programa para o algoritmo da Fig. 3.4.

3.5. Selecione o operador Case

O operador Select Case é útil quando você precisa executar ações diferentes dependendo do valor de alguma expressão que possui um conjunto finito de valores válidos. Também está relacionado a declarações condicionais, mas tem uma forma diferente:

Selecionar casoEXPRESSÃO EM TESTE

CasoVALORES_1

OPERADORES_1

CasoVALORES_ 2

OPERADORES_ 2

. . .

CasoVALORES_N

OPERADORES_N

[ CasoOutro

DE OUTRA FORMA_ OPERADORES]

Finalizar seleção

EXPRESSÃO EM TESTE pode ser de qualquer tipo escalar, exceto real. VALORES consistem em um número arbitrário de valores ou intervalos separados por vírgulas.

Tipo VALORES deve corresponder ao tipo TEST_EXPRESSION.

Primeiro é calculado EXPRESSÃO EM TESTE. Se seu valor corresponder a um dos valores VALORES_I, então eles serão cumpridos OPERADORES_I Finalizar seleção. Se o seu valor não corresponder a nenhum dos valores VALORES_I, então eles serão cumpridos ELSE_OPERATORS e o controle é transferido para o operador que está após Finalizar seleção

Por exemplo. Escreva parte do programa para o algoritmo da Fig. 3.5, que determina o valor da variável S dependendo do valor da variável n.

3.6. Instruções de loop

Para implementar um processo de computação cíclico, ou seja, execução repetida de um ou mais operadores, é utilizado o operador loop A seguir, que possui a seguinte sintaxe:

ParaCOUNTER=START_VALUETóCON_VALUEEtapaETAPA

OPERATOR_BLOCK

OPERATOR_BLOCK

PróximoCONTADOR

O loop For...Next percorre os valores de uma variável CONTADOR, que é um parâmetro de loop, do valor inicial ao final com a etapa de alteração especificada. Isso garante que o bloco de instruções do corpo do loop seja executado com cada novo valor do contador. Se EtapaETAPA está ausente no projeto, então por padrão assume-se que o passo é igual a 1. De acordo com o operador Sair para você pode sair da instrução de loop antes CONTADOR atinge o último valor.*

Para iterar objetos de um grupo de objetos semelhantes, por exemplo, células de um intervalo ou elementos de array, é conveniente usar o operador de loop Para...Cada...Próximo.

Para cadaElementoEmGrupo

BLOQUEAR_ OPERADORES

OPERATOR_BLOCK

PróximoElemento

No VBA, outros operadores de loop são usados ​​para organizar loops com um número desconhecido de repetições:

loops com pré-condição - FazerEnquantoLaço,

FazerAtéLaço;

loops com pós-condição - FazerLaçoEnquanto,

FazerLaçoAté.

Abaixo está a sintaxe dessas instruções de loop:

"Loop com pré-condiçãoFazer Enquanto Laço

Fazer enquantoDOENÇA

OPERATOR_BLOCK

OPERATOR_BLOCK

"Loop com pré-condiçãoFazer Até Laço

FazerAtéDOENÇA

OPERATOR_BLOCK

OPERATOR_BLOCK

"Loop com pós-condiçãoFazer Loop enquanto

BLOQUEAR_ OPERADORES

OPERATOR_BLOCK

Loop enquantoDOENÇA

"Loop com pós-condiçãoFazer Loop até

BLOQUEAR_ OPERADORES

OPERATOR_BLOCK

Loop atéDOENÇA

Operador FazerColá...Loop garante que um bloco de instruções seja repetido várias vezes até DOENÇAé observado e o operador



Outras notícias

Os operadores condicionais mais importantes usados ​​no Excel VBA são os operadores Se então E Selecionar caso. Ambas as expressões testam uma ou mais condições e, dependendo do resultado, executarão ações diferentes. Falaremos mais sobre esses dois operadores condicionais a seguir.

Instrução "Se...Então" em Visual Basic

Operador Se então verifica a condição e, se for TRUE, o conjunto especificado de ações é executado. Também pode ser definido um conjunto de ações que devem ser executadas caso a condição seja falsa (FALSE).

Sintaxe do operador Se então assim:

Se Condição1 Então
Ações se a Condição1 for atendida
Caso contrário Condição2 Então
Ações se a Condição2 for atendida
Outro
Ações se nenhuma das condições for atendida
Fim se

Nesta expressão os elementos Caso contrário E Outro as condições do operador não podem ser usadas se não forem necessárias.

Abaixo está um exemplo em que, usando o operador Se então A cor de preenchimento da célula ativa muda dependendo do valor que ela contém:

Se ActiveCell.Value< 5 Then ActiveCell.Interior.Color = 65280 "Ячейка окрашивается в зелёный цвет ElseIf ActiveCell.Value < 10 Then ActiveCell.Interior.Color = 49407 "Ячейка окрашивается в оранжевый цвет Else ActiveCell.Interior.Color = 255 "Ячейка окрашивается в красный цвет End If

Observe que quando a condição se torna verdadeira, a execução da instrução condicional é interrompida. Portanto, se o valor da variável Célula ativa menor que 5, então a primeira condição se torna verdadeira e a célula fica verde. Após isso, execução da instrução Se entãoé interrompido e as demais condições não são verificadas.

Selecione a instrução Case no Visual Basic

Operador Selecionar caso semelhante ao operador Se então na medida em que também verifica a veracidade da condição e, dependendo do resultado, escolhe uma das opções.

Sintaxe do operador Selecionar caso assim:

Selecionar caso Expressão
Caso Valor1
Ações se o resultado da Expressão corresponder ao Valor1
Caso Valor2
Ações se o resultado da Expressão corresponder ao Valor2

Outro caso
Ações se o resultado da Expressão não corresponder a nenhuma das opções listadas Valores
Finalizar seleção

Elemento Outro casoé opcional, mas é recomendado para lidar com valores inesperados.

No exemplo a seguir, usando a construção Selecionar caso A cor de preenchimento da célula atual muda dependendo do valor nela contido:

Selecione Caso ActiveCell.Value Caso é<= 5 ActiveCell.Interior.Color = 65280 "Ячейка окрашивается в зелёный цвет Case 6, 7, 8, 9 ActiveCell.Interior.Color = 49407 "Ячейка окрашивается в оранжевый цвет Case 10 ActiveCell.Interior.Color = 65535 "Ячейка окрашивается в жёлтый цвет Case 11 To 20 ActiveCell.Interior.Color = 10498160 "Ячейка окрашивается в лиловый цвет Case Else ActiveCell.Interior.Color = 255 "Ячейка окрашивается в красный цвет End Select

O exemplo acima mostra como você pode definir um valor para um elemento de diferentes maneiras Caso em design Selecionar caso. Estes são os métodos:

Caso é<= 5 Assim, usando a palavra-chave Caso é você pode verificar se o valor satisfaz Expressões condição do formulário <=5 .
Caso 6, 7, 8, 9 Desta forma você pode verificar se o valor corresponde Expressões com um dos valores listados. Os valores listados são separados por vírgulas.
Caso 10 Isso verifica se o valor corresponde Expressões com um determinado valor.
Caso 11 a 20 Desta forma você pode escrever uma expressão para verificar se o valor satisfaz Expressões condição do formulário das 11 às 20(equivalente à desigualdade “11<=значение<=20”).
Outro caso Assim, usando a palavra-chave Outro, as ações são indicadas caso o valor Expressões não corresponde a nenhuma das opções listadas Caso.

Assim que uma das condições for encontrada, as ações correspondentes são executadas e a estrutura é encerrada Selecionar caso. Ou seja, em qualquer caso, apenas uma das ramificações listadas será executada Caso.

As condições são muito úteis na programação porque nos permitem realizar ações dependendo de critérios definidos (o mesmo princípio é usado em SE Funções do Excel).

A função mais importante que define a condição é SE e agora veremos como funciona:

If [CONDIÇÃO AQUI] Then "=> SE a condição for verdadeira, THEN "Instruções se verdadeira Else "=> ELSE "Instruções se falsa End If

Vamos ser práticos e voltar ao exemplo que usamos na lição sobre variáveis. O objetivo deste procedimento era abrir uma caixa de diálogo que conteria o valor da string especificada na célula F5:

Se você inserir uma letra em uma célula F5, isso causará um erro. Queremos evitar isso.

Subvariáveis ​​() "Declarando variáveis ​​Dim last_name As String, first_name As String, age As Integer, row_number As Integer "Atribuindo valores às variáveis ​​row_number = Range("F5") + 1 last_name = Cells(row_number, 1) first_name = Cells(row_number, 2) age = Cells(row_number, 3) "Caixa de diálogo MsgBox last_name & " " & first_name & "," & age & "years" End Sub

Vamos adicionar uma condição que irá verificar se o valor inserido está na célula F5 número antes do código ser executado.

Usaremos a função ÉNumérico para verificar a condição:

Subvariáveis ​​​​() "Se o valor entre parênteses (célula F5) for numérico (E PORTANTO A CONDIÇÃO IF É VERDADEIRA) então "execute as instruções que seguem THEN If IsNumeric (Range ("F5")) Then "Declarando Variáveis ​​Dim last_name As String , first_name As String, age As Integer, row_number As Integer "Atribuindo valores às variáveis ​​row_number = Range ("F5") + 1 last_name = Cells (row_number, 1) first_name = Cells (row_number, 2) age = Cells ( row_number, 3) "Caixa de diálogo MsgBox last_name & " " & first_name & "," & age & "years" End If End Sub

Também precisamos anotar as instruções se a condição que definimos não for atendida:

Subvariáveis ​​() If IsNumeric (Range ("F5")) Then "Se a condição for verdadeira "Declarando variáveis ​​Dim last_name As String, first_name As String, age As Integer, row_number As Integer "Atribuindo valores às variáveis ​​row_number = Range ("F5") + 1 sobrenome = Células (número_linha, 1) primeiro_nome = Células (número_linha, 2) idade = Células (número_linha, 3) "Caixa de diálogo MsgBox sobrenome & " " & primeiro_nome & "," & idade & " anos " Else "Se a condição não for executada "Caixa de diálogo: MsgBox warning "O valor inserido " & Range ("F5") & " não é válido!" "Excluindo o conteúdo da célula F5 Range ("F5").ClearContents End If End Sub

Agora, valores não numéricos não causarão problemas.

Trabalhando com nosso array, que contém 16 linhas de dados, nosso próximo passo será verificar se a variável row_number é “maior ou igual a 2” e “menor ou igual a 17”.

Mas primeiro, vamos dar uma olhada nos operadores de comparação:

e estes operadores úteis:

Agora vamos adicionar uma das condições acima E entre operadores de comparação:

Subvariáveis ​​() If IsNumeric (Range ("F5")) Then "Se valor numérico Dim last_name As String, first_name As String, age As Integer, row_number As Integer row_number = Range ("F5") + 1 If row_number > = 2 E número_linha

Se quisermos tornar a nossa macro mais prática, podemos substituir 17 para uma variável que conteria o número de linhas. Isso nos permitiria adicionar e remover linhas do array sem ter que alterar esse limite todas as vezes.

Para fazer isso devemos criar uma variável nb_rows e adicione esse recurso.

Neste caso usamos a função WorksheetFunction.CountA, que é um análogo da função CONTAGEM no próprio Excel.

Queremos que esta função conte o número de células não vazias na primeira coluna e escreva o valor resultante em uma variável nb_rows:

Subvariáveis ​​() If IsNumeric (Range ("F5")) Then "IF NUMBER Dim last_name As String, first_name As String, age As Integer, row_number As Integer Dim nb_rows As Integer row_number = Range ("F5") + 1 nb_rows = WorksheetFunction.CountA (Range ("A:A")) "Função de contagem de linhas se número_linha > = 2 e número_linha

Caso contrário

Caso contrário torna possível adicionar condições adicionais após o comando IF:

Se [CONDIÇÃO 1] Então "=> SE a condição 1 for verdadeira, ENTÃO "Instruções 1 ElseIf [CONDIÇÃO 2] Então "=> SE a condição 1 for falsa, mas a condição 2 for verdadeira, ENTÃO "Instruções 2 Else" => ELSE " Instruções 3 Terminar se

Se CONDIÇÃO 1 realizado, Instrução 1 será executado e deixará a instrução SE(que começa com SE e termina com End If). Se CONDIÇÃO 2 leva o valor " mentira ", então será executado Instrução 2, e se por sua vez retornar " mentira ", Então Instrução 3(sob Outro) será executado.

Sub pontuações_comment() "Variáveis ​​Dim note As Integer, score_comment As String note = Range ("A1") "Comentários baseados na pontuação recebida If note = 6 Then score_comment = "Ótima bola!" ElseIf note = 5 Then score_comment = "Boa pontuação" ElseIf note = 4 Then score_comment = "Pontuação satisfatória" ElseIf note = 3 Then score_comment = "Pontuação insatisfatória" ElseIf note = 2 Then score_comment = "Pontuação ruim" ElseIf note = 1 Then score_comment = "Pontuação péssima" Else score_comment = "Pontuação zero" End If "Comentário na célula B1 Range ("B1") = score_comment End Sub

Selecione

Existe uma alternativa para usar Se com muitos Caso contrário instruções, nomeadamente o comando Selecione, que é mais adequado para esse tipo de situação.

Vejamos um exemplo de macro com o operador Selecione:

Sub score_comment() "Variáveis ​​Dim note As Integer , score_comment As String note = Range ("A1") "Comentários baseados na pontuação recebida Selecione Case note "

Vale a pena notar que também poderíamos usar outros operadores de comparação:

O caso é >=6 "se o valor >=6

Exemplos com significados diferentes:

Case Is = 6, 7 "se o valor = 6 ou 7 Case Is 6, 7" se o valor não for 6 ou 7 Case 6 To 10 "se o valor = qualquer número de 6 a 10

A tomada de decisões permite que os programadores controlem o fluxo de execução de um script ou de uma de suas seções. A execução é controlada por uma ou mais instruções condicionais.

Abaixo está uma visão geral da estrutura típica de tomada de decisão encontrada na maioria das linguagens de programação.

O VBA fornece os seguintes tipos de soluções. Clique nos links a seguir para verificar seus detalhes.

Se...Então - Se Então

Uma instrução If consiste em uma expressão booleana seguida por uma ou mais instruções. Se a condição for chamada True, as instruções na condição If(s) serão executadas. Se a condição for False, as instruções após o loop If serão executadas.

Sintaxe

Abaixo está a sintaxe da instrução If em VBScript.

If(boolean_expression) Then Instrução 1 ..... ..... Instrução n End If

Diagrama de fluxo

exemplo

Private Sub if_demo_Click() Dim x As Integer Dim y As Integer x = 234 y = 32 If x > y Then MsgBox "X é maior que Y" End If End Sub

X é maior que Y

Se a instrução consistir em uma expressão booleana, ela será seguida por uma ou mais instruções.

instrução if..else

Uma instrução If consiste em uma expressão booleana seguida por uma ou mais instruções. Se a condição for chamada True, as instruções na condição If(s) serão executadas. Se a condição for Falsa, as instruções da Else Part serão executadas.

Sintaxe

Abaixo está a sintaxe da instrução If Else em VBScript.

If(boolean_expression) Then Instrução 1 ..... ..... Instrução n Else Instrução 1 ..... .... Instrução n End If

Diagrama de fluxo

exemplo

Para fins de demonstração, vamos encontrar o maior de dois números do Excel usando uma função.

Private Sub if_demo_Click() Dim x As Integer Dim y As Integer x = 234 y = 324 If x > y Then MsgBox "X é maior que Y" Else Msgbox "Y é maior que X" End If End Sub

Quando o código acima é executado, ele produz a seguinte saída.

Y é maior que X

Se outra instrução consistir em uma expressão lógica, uma ou mais instruções se seguirão. Se a condição for True, as instruções nas instruções If serão executadas. Se a condição for falsa, a parte Else do script será executada.

instrução if...elseif..else

Uma instrução If seguida por uma ou mais instruções ElseIf, que consistem em expressões booleanas, e seguida por uma instrução else padrão, que é executada quando toda a condição se torna falsa.

Sintaxe

Abaixo está a sintaxe da instrução If Elseif-Else em VBScript.

If(boolean_expression) Then Instrução 1 ..... ..... Instrução n ElseIf (boolean_expression) Then Instrução 1 ..... .... Instrução n ElseIf (boolean_expression) Then Instrução 1 ..... . ... Instrução n Else Instrução 1 ..... .... Instrução n End If

Diagrama de fluxo

exemplo

Para fins de demonstração, vamos encontrar o maior de dois números do Excel usando uma função.

Private Sub if_demo_Click() Dim x As Integer Dim y As Integer x = 234 y = 234 If x > y Then MsgBox "X é maior que Y" ElseIf y > x Then Msgbox "Y é maior que X" Else Msgbox "X e Y são IGUAIS" End If End Sub

Quando o código acima é executado, ele produz a seguinte saída.

X e Y são IGUAIS

Se a instrução for seguida por uma ou mais instruções ELSEIF, que consiste em expressões booleanas, seguida por uma instrução ainda opcional, que será executada quando todas as condições se tornarem falsas.

instruções if aninhadas

Uma instrução If ou ElseIf dentro de outra instrução If ou ElseIf. As instruções If internas são executadas com base nas instruções If externas. Isso permite que o VBScript lide facilmente com condições complexas.

Sintaxe

Abaixo está a sintaxe da instrução Nested If em VBScript.

If(expressão_booleana) Then Instrução 1 ..... ..... Instrução n If(expressão_booleana) Then Instrução 1 ..... ..... Instrução n ElseIf (expressão_booleana) Then Instrução 1 ..... .... Instrução n Else Instrução 1 ..... .... Instrução n End If Else Instrução 1 Instrução n End If

exemplo

Para fins de demonstração, vamos encontrar o tipo de número positivo usando uma função.

Private Sub nested_if_demo_Click() Dim a As Integer a = 23 If a > 0 Then MsgBox "O número é um número POSITIVO" Se a = 1 Then MsgBox "O número não é primo nem composto" ElseIf a = 2 Then MsgBox "O número é o único número primo par" ElseIf a = 3 Then MsgBox "O número é o número primo menos ímpar" Else MsgBox "O número NÃO é 0,1,2 ou 3" End If ElseIf a< 0 Then MsgBox "The Number is a NEGATIVE Number" Else MsgBox "The Number is ZERO" End If End Sub

Quando o código acima é executado, ele produz a seguinte saída.

O número é um número POSITIVO
O número NÃO é 0,1,2 ou 3

Uma instrução if ou ElseIf dentro de outra instrução if ou ELSEIF.

instrução de mudança

Quando o usuário deseja executar um grupo de instruções dependendo do valor de uma expressão, o switch case é usado. Cada valor é chamado de caso e uma variável é incluída com base em cada caso. A instrução Case Else é executada se a expressão de teste não corresponder a nenhum dos casos especificados pelo usuário.

Case Else é uma instrução opcional em Select Case, mas para boas práticas de programação há sempre uma instrução Case Else.

Sintaxe

Abaixo está a sintaxe da instrução Switch em VBScript.

Selecione Expressão de caso Case lista de expressões1 instrução1 instrução2 .... .... instrução1n Case lista de expressões2 instrução1 instrução2 .... .... Case lista de expressõesn instrução1 instrução2 .... .... Caso Else elsestatement1 elsestatement2 .... .. ..Finalizar seleção

exemplo

Para fins de demonstração, vamos encontrar o tipo de um número inteiro usando uma função.

Private Sub switch_demo_Click() Dim MyVar As Integer MyVar = 1 Select Case MyVar Case 1 MsgBox "O número é o menor número composto" Case 2 MsgBox "O número é o único número primo par" Case 3 MsgBox "O número é o menos ímpar Número primo" Case Else MsgBox "Número desconhecido" End Select End Sub

Quando o código acima é executado, ele produz a seguinte saída.

O número é o número menos composto

Uma instrução switch permite que uma variável seja testada quanto à igualdade em relação a uma lista de valores.

Declaração If...Then...Else.

Esta lição se concentrará no tópico dos operadores. Em particular, nos familiarizaremos com o operador If...Then...Else, e também nos familiarizaremos com os operadores aritméticos e os operadores de comparação, sem os quais não poderemos usar o If...Then...Else operador na medida do possível.

O Visual Basic possui um número bastante grande de operadores diferentes, alguns dos quais são capazes de ferver o cérebro até mesmo de um programador experiente. Para não “ferver”, consideraremos apenas os operadores mais básicos sobre os quais funcionam 95% dos programas, estudaremos os restantes operadores conforme necessário, desta forma não terá que memorizar um livro inteiro e poderá passar imediatamente para exercícios práticos.

Ao postar esta lição, presumo que você tenha conhecimento de matemática do ensino fundamental.
Que tipo de conhecimento? São os mesmos exemplos em que subtraímos, somamos, multiplicamos,... Você se lembra disso? Ótimo! Isso significa que ainda há pólvora nos frascos.

Antes de começar a estudar o operador If...Then...Else, você precisa se familiarizar com os operadores aritméticos e lógicos, sem os quais não podemos aplicar o operador If...Then...Else do ponto de vista profundo prática. Ok, chega de instruções e digressões chatas, sente-se e vamos ao que interessa!

Operadores aritméticos
Usando esses operadores você pode; dividir, multiplicar, somar, etc.
Tudo aqui é tão simples quanto na escola primária.

+ (adição)
- (subtração)
* (multiplicação)
/ (divisão com resto) na escola a placa de divisão era essa placa : lembre-se dessas diferenças e não se confunda
\ (divisão inteira, sem resto)

Operadores de comparação
Estes são operadores bastante importantes. Esses operadores podem ser usados ​​para comparar números, strings e outros dados. Sem operadores de comparação, é impossível construir lógica ou ramificação em um programa.
É importante lembrar que os operadores de comparação comparam duas expressões e retornam um valor booleano na forma True (se a condição for verdadeira) e False (se a condição não for verdadeira).
Verdadeiro traduzido do inglês significa - Verdade
Falso traduzido do inglês significa - Mentira
De cara, isso pode parecer incompreensível, mas não se preocupe, um pouco mais tarde você entenderá o que significa toda essa diabrura.

= (igual)
O valor da primeira expressão é igual ao valor da segunda expressão, ou pode ser o resultado da adição/subtração/... de dois cálculos.

<> (desigualdade)
O valor da primeira expressão não é igual ao valor da segunda expressão

< (menos)
O valor da primeira expressão é menor que o valor da segunda expressão

> (mais)
O valor da primeira expressão é maior que o valor da segunda

<= (menor ou igual)
O valor da primeira expressão é menor ou igual ao valor da segunda

>=
(mais ou igual)
O valor da primeira expressão é maior ou igual ao valor da segunda

Entendo, vejo que você já está com um pouco de medo, na verdade não tem nada de assustador!
Continue lendo e você verá que tudo é bastante simples.
Abaixo iremos apoiar tudo minuciosamente com exemplos e prática.
E assim, consideramos operadores aritméticos e lógicos, agora podemos ir diretamente para o próprio operador If...Then...Else

Declaração If...Then...Else
Primeiro, vejamos o que significam as palavras do operador quando traduzidas do inglês para o russo.
Se é traduzido como Se
Então é traduzido como Isso
Else é traduzido como Caso contrário

Para que é usada a instrução If...Then...Else?
Usando este operador, você pode ramificar programas sem este operador é impossível escrever um programa sério.
Vamos passar para exemplos típicos.

Como um computador processa a instrução If...?
Digamos que temos duas variáveis:

Dim var1 = 10 Dim var2 = 5

e digamos que temos uma condição:

Se var1 > var2 Then MsgBox("Sim, var1 é maior que var2") End If

Como funciona a condição mostrada acima?
O computador irá olhar para as variáveis ​​var1 e var2, se var1 for realmente maior que var2, então a condição é verdadeira (True) e o computador mostrará MsgBox.
Se a condição não for verdadeira (Falso), o computador não mostrará MsgBox.
Você pode verificar isso alterando os valores das variáveis ​​para outros números para que a condição não seja verdadeira, então não veremos MsgBox.

Atenção!

Para estudar os exemplos que você precisa.
Após criar um projeto no formulário, você deve clicar duas vezes no botão com o botão esquerdo do mouse, o editor de código será aberto e o cursor será colocado no local onde deseja inserir o código dos exemplos dados abaixo .
Após inserir o código, você precisa ver o resultado clicando no botão localizado no formulário.


Exemplos
A seguir, serão dados exemplos na ordem indicada abaixo.

Operadores aritméticos
+ (adição)
- (subtração)
* (multiplicação)
/ (divisão)

Spoiler: Exemplos aritméticos - CLIQUE

+ Adição:

"O exemplo mostra como você pode adicionar dois números Dim chislo1 As Integer = 5 Dim chislo2 As Integer = 5 Dim resultat As Integer resultat = chislo1 + chislo2 MsgBox(resultat)

- Subtração:

"O exemplo mostra como você pode obter a diferença de dois números (subtração) Dim chislo1 As Integer = 5 Dim chislo2 As Integer = 5 Dim resultat As Integer resultat = chislo1 - chislo2 MsgBox(resultat)

* Multiplicação:

"O exemplo mostra como você pode multiplicar um número por outro Dim chislo1 As Integer = 5 Dim chislo2 As Integer = 5 Dim resultat As Integer resultat = chislo1 * chislo2 MsgBox(resultat)

/ Divisão:

"O exemplo mostra como você pode dividir um número por outro Dim chislo1 As Integer = 5 Dim chislo2 As Integer = 5 Dim resultat As Integer resultat = chislo1 / chislo2 MsgBox(resultat)

Operadores de comparação
= (igual)
<> (desigualdade)
< (menos)
> (mais)
<= (menor ou igual)
>= (mais ou igual)

Spoiler: Operadores de comparação - CLIQUE

= Igual a:

"O exemplo mostra como você pode descobrir se o texto em uma variável é igual a outro texto que especificamos Dim stroka As String = "Hello NubClub!" "Se string for igual ao texto entre aspas duplas então me mostre MsgBox If stroka = "Olá NubClub!" Then MsgBox("A variável é igual ao texto que procuramos!") End If

<>Desigualdade:

"O exemplo mostra como você pode descobrir se o texto em uma variável é igual a outro texto que especificamos Dim stroka As String = "Hello NubClub!" "Se string não for igual ao texto entre aspas duplas então me mostre MsgBox If corda<>"Sou um programador iniciante" Then MsgBox("O texto na variável stroka não é igual ao texto entre aspas!") End If

< Меньше:

"O exemplo mostra como você pode comparar dois números Dim chislo1 As Integer = 10 Dim chislo2 As Integer = 5 "Se chislo2 for menor que chislo1 então mostre-me MsgBox If chislo2< chislo1 Then MsgBox("Значение переменной chislo2 меньше значения переменной chislo1") End If

>Mais:

"O exemplo mostra como você pode comparar dois números Dim chislo1 As Integer = 10 Dim chislo2 As Integer = 5 "Se chislo1 for maior que chislo2 então me mostre MsgBox If chislo1 > chislo2 Then MsgBox("O valor da variável chislo1 é maior que o valor da variável chislo2") End If

<= Меньше или равно:

"O exemplo mostra como você pode comparar dois números Dim chislo1 As Integer = 10 Dim chislo2 As Integer = 5 "Se chislo2 for menor ou igual a chislo1 então mostre-me MsgBox If chislo2<= chislo1 Then MsgBox("Значение переменной chislo2 меньше или равно значению переменной chislo1") End If

>= Maior ou igual a:

"O exemplo mostra como você pode comparar dois números Dim chislo1 As Integer = 10 Dim chislo2 As Integer = 5 "Se chislo1 for maior ou igual a chislo2 então mostre-me MsgBox If chislo1 >= chislo2 Then MsgBox("O valor da variável chislo1 é maior ou igual ao valor da variável chislo2" ) End If

Instrução If...Then...Else - Ramificação
Acima estavam exemplos bastante simples de uso de condições If...Then, ou seja, sem ramificação e sem usar Else.
Agora vamos ver exemplos com ramificação, eles são um pouco mais complicados, mas você não pode ficar sem eles.
Basicamente, usando Else, todos os exemplos permanecerão iguais aos anteriores, apenas uma pequena ramificação do programa será adicionada.
O que será adicionado?
Se anteriormente MsgBox aparecia apenas quando a condição era verdadeira, então usando Else você pode chamar MsgBox mesmo quando a condição não for verdadeira.

E então, um exemplo.

"O exemplo mostra como você pode descobrir se o texto em uma variável é igual a outro texto que especificamos Dim stroka As String = "Hello NubClub!" "Se string for igual ao texto entre aspas duplas então me mostre a MsgBox com o texto - A variável é igual ao texto que procuramos! "Se a string NÃO for igual ao texto entre aspas duplas então mostre-me a MsgBox com o texto - A variável não é igual ao texto que procuramos! If strka = "Olá NubClub!" Then MsgBox("A variável é igual ao texto que procuramos!") Else MsgBox( "A variável não é igual ao texto que procuramos!") End If

Há momentos em que temos uma variável e vários valores com texto que precisam ser verificados. O que fazer então? Tire as calças e corra?!
Não, este não é o nosso método
Existe uma solução mais elegante. Podemos complicar nossa condição usando ElseIf e assim verificar quantas linhas quisermos, dentro de limites razoáveis, é claro. Se houver muitas linhas, os loops virão em socorro, com os quais trabalharemos nas próximas lições.

Vejamos um exemplo.
Vamos imaginar que precisamos criar uma lógica para um semáforo de rua para que ele funcione e mostre cores.
Como fazer isso?
Na verdade não é difícil, aqui está um exemplo.