Cavalcante Consultores – treinamento e consultoria em finanças e Excel

Instrução With

Cavalcante Consultores > Biblioteca de Excel > Instrução With

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 With aninhada.

Pratique