Baixe o app para aproveitar ainda mais
Prévia do material em texto
PMI – ESTRUTURA DE CONTROLE O QUE SÃO ESTRUTURAS DE CONTROLE? O VBA disponibiliza algumas estruturas que pode utilizar para controlar o decurso da execução da rotina. Estas estruturas dão ao programador um poder enorme para construir rotinas bastante complexas e flexíveis. Prof. Vanderlei R. da Silva - 2020 Estruturas de seleção (if...then...else/elseif) As instruções condicionais avaliam se uma condição é verdadeira ou falsa, e em seguida especificam uma ou mais instruções a serem executadas, dependendo do resultado dessa avaliação. Prof. Vanderlei R. da Silva - 2020 Comandos de seleção Simples: Sub Adição() Dim num1 As Integer, num2 As Integer Dim soma As Integer num1= InputBox("Informe o 1o. valor") num2 = InputBox("Informe o 2o. valor") soma = num1 + num2 if (soma > 10) then MsgBox "Soma maior que dez" end if End Sub Prof. Vanderlei R. da Silva - 2020 Seleção composta: (If … Then … Else) — testa uma condição única e executa um entre dois blocos de instruções. Sintaxe: If (condição) Then Instruções Else Instruções End If Prof. Vanderlei R. da Silva - 2020 Exemplo: Sub mediaProvas() Dim nt1 As single, nt2 As Single Dim media As Single nt1 = InputBox("Informe a 1a. nota") nt2 = InputBox("Informe a 2a. nota") media = (nt1 + nt2 + nt3) / 2 if (media >= 6.0) then if (media >= 6.0) then MsgBox "Aprovado” MsgBox "Aprovado“ else end if MsgBox "Reprovado“ If (media<6) then end if MsgBox “Reprovado” End Sub end if End Sub Prof. Vanderlei R. da Silva - 2020 Seleção composta encadeada (If … Then … ElseIf) — testa mais de uma condição e executa um dos vários blocos de instruções. Sintaxe: If condição Then Instruções ElseIf condição Then Instruções . . . Else Instruções End If Prof. Vanderlei R. da Silva - 2020 Exemplo: Sub sal_bonus() Dim cargo As Integer Dim salario As Currency, bonus As Currency salario = InputBox("Informe o salario: ") cargo = InputBox("Informe o cargo: ") If cargo = 1 Then bonus = salario * 0.15 ElseIf cargo = 2 Then bonus = salario * 0.10 ElseIf cargo = 3 Then bonus = salario * 0.08 Else bonus = 0 End If MsgBox "Cargo: " & cargo & " Bonus: " & bonus End Sub Prof. Vanderlei R. da Silva - 2020 Operadores lógicos Utilizados em expressões lógicas compostas ou para inverter o estado lógico de uma condição. Retornam o valor verdadeiro ou falso. Prof. Vanderlei R. da Silva - 2020 Expressão usual Operação Operador E Conjunção AND OU Disjunção OR Não Negação NOT Tabela verdadeira para operador lógico AND Condição A Condição B Condição A AND Condição B Verdade Verdade Verdade Verdade Falso Falso Falso Verdade Falso Falso Falso Falso Prof. Vanderlei R. da Silva - 2020 Exemplo de operador lógico AND: Private Sub Constant_AND() Dim a As Integer a = 10 Dim b As Integer b = 0 If a <> 0 And b <> 0 Then MsgBox ("Resultado é : Verdade") Else MsgBox ("Resultado é : Falso") End IfEnd Sub Prof. Vanderlei R. da Silva - 2020 Tabela Verdadeira para o Operador lógico OR Condição A Condição B Condição A OR Condição B Verdade Verdade Verdade Verdade Falso Verdade Falso Verdade Verdade Falso Falso Falso Prof. Vanderlei R. da Silva - 2020 Exemplo de operador lógico OR Private Sub Constant_OR() Dim a As Integer a = 10 Dim b As Integer b = 0 If a <> 0 Or b <> 0 Then MsgBox ("Resultado é : Verdade") Else MsgBox ("Resultado é : Falso") End If End Sub Prof. Vanderlei R. da Silva - 2020 Tabela Verdadeira para o Operador NOT Condition1 NOT Condition1 Verdade Falso Falso Verdade Prof. Vanderlei R. da Silva - 2020 Exemplo de Operador lógico NOT: Private Sub Constant_Not() Dim a As Integer a = 10 Dim b As Integer b = 0 If Not (a <> 0 or b <> 0) Then MsgBox ("Resultado é : Verdade") Else MsgBox ("Resultado é : Falso") End If End Sub Prof. Vanderlei R. da Silva - 2020 Cria um programa para a tabela verdadeira AND. Usar: 0 para falso e 1 verdadeiro OU V para verdadeiro e F para falso Prof. Vanderlei R. da Silva - 2020 Seleção de múltipla escolha Quando um conjunto de valores discretos precisa ser testado e ações diferentes são associadas a esses valores, estamos diante de uma seleção encadeada homogênea do tipo se-senão-se. Como essa situação é bastante frequente na construção de algoritmos que dependem de alternativas, utilizaremos uma estrutura específica para estes casos, a seleção de múltipla escolha. Prof. Vanderlei R. da Silva - 2020 Seleção de múltipla escolha A instrução Case pode avaliar valores separados por vírgula, sequências de valores - de até - e comparar com outros valores como aparece no exemplo a instrução Case Is. Nota: Para melhor legibilidade, vale a pena usar a estrutura Select Case em lugar da If ... Then ... ElseIf quando a instrução ElseIf avaliar a mesma expressão várias vezes. Prof. Vanderlei R. da Silva - 2020 Seleção de múltipla escolha (Select Case) — testa uma condição única e executa um dos vários blocos de instruções. Sintaxe: Select Case var(1) Case expr(2): instruções . . . Case Else: instruções End Select (1)var = variável (2)expr = expressão numérica ou de sequência de caracteres. Prof. Vanderlei R. da Silva - 2020 Seleção de múltipla escolha Exemplo: O procedimento abaixo calcula e mostra o valor do bônus com base no cargo e salário do funcionário. (É o mesmo exemplo da seção anterior apenas este apresenta mais opções de cargo e salário.) A instrução Case pode avaliar valores separados por vírgula, sequências de valores - de até - e comparar com outros valores como aparece no exemplo a instrução Case Is. Nota: Para melhor legibilidade, vale a pena usar a estrutura Select Case em lugar da If ... Then ... ElseIf quando a instrução ElseIf avaliar a mesma expressão várias vezes. Prof. Vanderlei R. da Silva - 2020 Seleção de múltipla escolha Sub bonus() Dim cargo As Integer Dim salario As Currency, bonus As Currency salario = InputBox("Informe o salario: ") cargo = InputBox("Informe o cargo: ") Select Case cargo Case 1: bonus = salario * 0.15 Case 2: bonus = salario * 0.10 Case 3: bonus = salario * 0.08 Case 4, 5: bonus = salario * 0.05 Case 6 To 8: bonus = salario * 0.01 Case Is < 12: bonus = salario * 0.005 Case Else: bonus = 0 Prof. Vanderlei R. da Silva - 2020 End Select MsgBox ("Cargo: " & cargo & " Bonus: " & bonus) End Sub Seleção de múltipla escolha Prof. Vanderlei R. da Silva - 2020 Sub Tempo_Fila_Banco() Dim NFila As Integer NFila = Inputbox("Número de pessoas na sua frente na fila(1 a 10)") Select Case NFila Case 1 MsgBox "Você é o proximo!" Case 2 To 5 MsgBox "Será atendido em breve" Case 6, 7, 8 MsgBox "Tempo de espera moderado“ Case Else MsgBox "Não receberá atendimento hoje" End Select End Sub
Compartilhar