O que é?
A instrução With permite a execução de uma série de comandos para um objeto especificado. Em outras palavras, com este recurso você simplifica o código VBA, já que você escreve o nome do objeto e atribui inúmeras instruções associadas a ele de uma só vez.
Sintaxe
With objeto [instruções a serem executadas no objeto] End With
Objeto é o nome do objeto que desejar modificar.
End With encerra um bloco de instruções para aquele objeto. O bloco de instruções dentro de With sempre está associado a um único objeto.
Você pode aninhar instruções With colocando um bloco With dentro do outro, desde que os objetos internos pertençam aos objetos externos. Por exemplo, neste caso o objeto externo poderá ser um gráfico e objeto interno a legenda deste mesmo gráfico.
Exemplo
No exemplo abaixo temos um gráfico de barras colorido. Iremos alterar as cores do gráfico e a legenda (estilo, cor e tamanho da letra), usando a instrução With aninhada. Também é possível escrever este código sem fazer uso da instrução With, no entanto o código ficaria muito maior, já que a atribuição do objeto teria que ser feita para cada instrução desejada.
Observe o código a seguir:
' altera as cores do gráfico e da legenda Sub alterar() Sheets(1).ChartObjects(1).Activate With ActiveChart ' altera a cor externa do gráfico .ChartArea.Interior.ColorIndex = 12 ' altera a cor interna do gráfico .PlotArea.Interior.ColorIndex = 15 ' altera estilo, tamanho e cor da legenda With .Legend.Font .FontStyle = "Negrito" .Size = 10 .ColorIndex = 16 End With End With ActiveWindow.Visible = False Range("B2").Select End Sub
A primeira instrução With se refere ao objeto Gráfico, chamado com ActiveChart. Dentro deste bloco podemos alterar todas as propriedades do gráfico.
A segunda instrução With se refere ao objeto fonte da fegenda, chamado com Legend.Font. Dentro deste bloco podemos alterar todas as propriedades da fonte da legenda.
Perceba que o objeto Fonte da Legenda pertence ao objeto Gráfico, por isso podemos usar a instrução Withaninhada.
Nenhum comentário:
Postar um comentário