Este artigo demonstrará como usar With e End With no VBA
O Excel nos oferece a oportunidade de aprender VBA gravando macros. Essas macros gravam literalmente tudo o que fazemos na tela e convertem as ações em código VBA. Podemos então analisar esse código e aprender com ele.
Quando gravamos uma macro em VBA, mais significativamente quando estamos mudando o formato das células, a macro mais frequentemente do que não usa a sintaxe With … End With em sua gravação. Entender o que eles significam e são usados é uma parte importante do VBA.
Gravando uma Macro
Para gravar uma macro no Excel, no Fita, selecione Exibir> Macro> Gravar macro.
OU
Desenvolvedor> Gravar Macro
Observação: se você não vir a faixa de opções do desenvolvedor, precisará habilitá-la. Clique AQUI para saber como fazer isso.
Digite o nome da macro e clique em OK.
Realce algumas células e, em seguida, formate-as para negrito, altere a cor para vermelho e altere o tamanho da fonte. Em seguida, clique em Parar no canto inferior esquerdo da tela para interromper a gravação da macro.
Sintaxe da instrução WITH
Para visualizar / editar sua Macro gravada: Na Faixa de Opções, selecione Exibir> Macros> Exibir macros. Selecione a macro que acabou de gravar e clique em Editar.
OU
Na faixa de opções, selecione Desenvolvedor> Visual Basic para mudar para a janela VBE.
A macro gravada pode ser semelhante ao exemplo abaixo
123456789 | Sub WithMacro ()Intervalo ("A2: C10"). SelecioneSelection.Font.Bold = TrueSelection.Font.Size = 12Com Selection.Font.Color = -16776961.TintAndShade = 0Terminar comEnd Sub |
Em primeiro lugar, selecionamos o intervalo A2: C10.
Em seguida, definimos o negrito como verdadeiro e o tamanho da fonte como 12. Observe que o código “Selection.Font” é repetido para essas linhas.
A macro então nos gravou mudando a cor do texto - observe que, desta vez, o Selection.Font tem um COM na frente dela, e as 2 propriedades que estão sendo alteradas (a cor e o tom de tonalidade) têm um ponto (.) na frente delas. A área do código é então completada com um FIM COM.
Para simplificar esse código, podemos mover o Negrito e o Tamanho para que fiquem dentro da instrução WITH e, portanto, remover a necessidade de repetir a palavra Seleção.
123456789 | Sub WithMacro ()Intervalo ("A2: C10"). SelecioneCom Selection.Font.Bold = True.Size = 12.Color = -16776961.TintAndShade = 0Terminar comEnd Sub |
A sintaxe de uma instrução WITH … END WITH é, portanto, muito simples:
123 | COM objeto'propriedades para formatar / alterarFIM COM |
Poderíamos ter alterado o código de uma maneira diferente:
1234567 | Sub RemoveWith ()Intervalo ("A2: C10"). SelecioneSelection.Font.Bold = TrueSelection.Font.Size = 12Selection.Font.Color = -16776961Selection.Font.TintAndShade = 0End Sub |
No exemplo acima, adicionamos as palavras Selection.Font a cada linha do código. Portanto, nos referimos repetidamente ao objeto Selection.Font no código.
No entanto, usar a instrução WITH significa que só precisamos nos referir a esse objeto uma vez no código. É uma maneira mais limpa de codificação - diz ao VBA para começar em WITH e terminar em END WITH - o código a ser executado está todo contido nessas 2 palavras. Faz com que a macro seja executada de forma mais rápida e eficiente (especialmente para macros mais longas) e adiciona estrutura ao seu código.