eval (ez_write_tag ([[468,60], “sourcedaddy_com-box-3”, “ezslot_1”, 102, “0”, “0”])); a instrução Select Case
MS-Excel / Formatação Geral
A execução de vários testes com If … ElseIf é uma técnica útil – é uma ferramenta VBA que você utilizará com frequência. No entanto, torna-se rapidamente complicado à medida que o número de testes que você precisa fazer aumenta. Não há problema em dois ou três testes, mas mais do que isso torna a lógica mais difícil de seguir.
Para essas situações, a instrução Select Case do VBA é uma escolha melhor. A ideia é que você forneça uma expressão lógica no início e, a seguir, liste uma série de resultados possíveis. Para cada resultado possível, chamado de caso, você fornece uma ou mais instruções VBA para executar caso o caso seja verdadeiro. Esta é a sintaxe:
Select Case TestExpression Case FirstCaseList Case SecondCaseList <etc> Case Else End Select
TestExpression
Esta expressão é avaliada no início da estrutura. deve retornar um valor (lógico, numérico, string e assim por diante).
CaseList
Uma lista de um ou mais resultados possíveis para TestExpression. Esses resultados são valores ou expressões separados por vírgulas.VBA examina cada elemento no lista para ver se uma corresponde a TestExpression. As expressões podem assumir qualquer uma das seguintes formas:ExpressionExpression To ExpressionIs LogicalOperator ExpressionA palavra-chave To define um intervalo de valores (por exemplo, 1 a 10) . A palavra-chave Is define um intervalo aberto de valores (por exemplo, Is > = 100).
Instruções
Estas são as instruções que o VBA executa se qualquer parte de a CaseList associada corresponde à ExpressExpression. O VBA executa as ElseStatements opcionais se nenhuma CaseList contiver uma correspondência para a ExpressExpression.
Nota: Se mais de uma CaseList contiver um elemento que corresponda a TestExpression, VBA executa apenas as instruções associadas à CaseList que aparece primeiro na estrutura Select Case.
A listagem mostra como você usaria Select Case para lidar com o problema do argumento Frequency.
Um procedimento que usa Selecione Caso para Testar Vários Valores Um Exemplo de Seleção de Caso: Convertendo Pontuações de Teste em Notas de Letras
Para ajudá-lo a entender melhor a instrução Select Case, vamos dar uma olhada em outro exemplo que mostra melhor os talentos exclusivos deste poderoso estrutura. Suponha que você queira escrever um procedimento que converta uma pontuação bruta de teste em uma nota alfabética de acordo com a seguinte tabela:
Pontuação bruta | Tipo de letra |
90 e acima | A |
Entre 80 e 89 | B |
Entre 70 e 79 | C |
Entre 60 e 69 | D |
Menos de 60 | F |
A listagem mostra o procedimento LetterGrade, que usa uma instrução Select Case para fazer a conversão.
O argumento rawScore é um valor inteiro entre 0 e 100. A estrutura Select Case verifica primeiro se rawScore é negativo e, se for, a função retorna uma mensagem de erro. A próxima instrução Case verifica se a pontuação é menor que 60, e a função retorna a nota de letra “F” se for. A próxima declaração de Caso procura uma pontuação menor que 70. Se chegarmos até aqui, já sabemos (graças à declaração de Caso anterior) que a pontuação é de pelo menos 60. Portanto, este caso está realmente verificando se a pontuação é entre 60 e 70 (incluindo 60, mas não incluindo 70). Em caso afirmativo, a letra grau “D” é devolvida. O resto das declarações de Case procedem da mesma maneira. O Case Elsechecks para uma pontuação maior que 100 e retorna outra mensagem de erro se for.
Outro exemplo: Controlando a função RGB
Você pode usar a função VBA RGB (vermelho, verde, azul) sempre que precisar especifique uma cor para uma propriedade. Cada um dos três argumentos nomeados (vermelho, verde e azul) são números inteiros entre 0 e 255 que determinam quanto de cada cor componente é misturado na cor final. No componente vermelho, por exemplo, 0 significa que nenhum vermelho está presente e 255 significa que vermelho puro está presente. Se todos os três valores forem iguais, você obterá um tom de cinza.
Aqui estão alguns valores de amostra para cada componente que produz cores comuns:
Vermelho | Azul | Verde | Resultado |
0 | 0 | 0 | Preto |
0 | 0 | 255 | Azul |
0 | 255 | 0 | Verde |
0 | 255 | 255 | Ciano |
255 | 0 | 0 | Vermelho |
255 | 0 | 255 | Margenta |
255 | 255 | 0 | Amarelo |
255 | 255 | 255 | Branco |
No entanto, em vez de memorizar essas combinações, vamos colocar VBA e Select Case para trabalhar para facilitar a escolha das cores. Listagem mostra a função VBAColor, que permite usar nomes (por exemplo, “vermelho” ou “azul”) em vez de entorpecimento críptico várias combinações para definir 16 das cores mais comuns.
Uma função que aceita um nome de cor como uma string e retorna o valor RGB correspondente
VBAColor recebe um único argumento, colorName, que é o nome da cor que você quer trabalhar com. Observe como a instrução Select Case massifica o argumento para evitar erros:
Select Case LCase(Trim(colorName))
A função Trim remove quaisquer espaços estranhos no início e final do argumento, e a função LCase converte colorName em minúsculas. Isso garante que a função não diferencia maiúsculas de minúsculas, o que significa que não importa se você envia preto, PRETO ou Preto: a função ainda funcionará.
O restante da função usa instruções Case para verificar o vários nomes de cores e retornar o valor RGB apropriado. Você pode usar o procedimento ColorTester para dar um efeito VBAColora. Este procedimento apenas formata a cor da fonte da célula da planilha selecionada no momento.
Nota: O VBA também define oito constantes de você pode usar quando precisar apenas das cores básicas: vbBlack, vbBlue, vbCyan, vbGreen, vbMagenta, vbRed, vbWhite e vbYellow.