Como usar a instrução vba with aninhada?

Pontos chave

  • Use a instrução VBA With para minimizar o código.
  • Você pode usar apenas um objeto por vez ao usar a instrução With.

O que é VBA com declaração

VBA With é uma instrução para especificar um objeto uma vez e, em seguida, executar várias instruções para ele. Em palavras simples, usando a instrução “WITH” para especificar um objeto, e depois disso você pode acessar todas as propriedades e métodos de uma só vez. Começa com “Com” e termina com “Finalizar com”.

Sintaxe do VBA com instrução

Aqui está a sintaxe que você precisa usar para usar a instrução With no VBA:

 With [OBJECT] [Statement] End With
sintaxe vba com instrução
  1. With : Esta é a palavra-chave inicial da instrução que informa ao VBA que você está especificando o objeto mencionado.
  2. Objeto : Aqui você precisa especificar o objeto que deseja usar.
  3. Instrução : uma ou mais instruções que você deseja executar com o objeto especificado.
  4. End With : Esta é a palavra-chave final da instrução.

Exemplo para entender a instrução VBA With

Vamos dar um exemplo para entender a declaração detalhada. Digamos que você queira alterar a cor, o tamanho e o nome da fonte da célula A1. Para fazer essas três coisas você precisa acessar três propriedades de fonte VBA diferentes e o código seria:

 Range("A1").Font.Color = RGB(0, 0, 255) Range("A1").Font.Size = 16 Range("A1").Font.Name = "Consolas"

Mas aqui vamos usar a instrução With em vez do código acima. Para usar a instrução VBA With, você pode seguir as seguintes etapas:

  1. Primeiro digite o teclado “Com”.
  2. Depois disso, use o intervalo VBA para especificar a célula A1 usando o objeto fonte para especificar o objeto fonte.
    use-the-vba-range
  3. Em seguida, você precisa inserir o código das três propriedades e os valores que deseja aplicar.
    code-for-all-three-properties
  4. No final, use a palavra-chave “End With” para encerrar a instrução.
    end-with-to-end-the-statement

Aqui está o código que você acabou de escrever.

 Sub MyMacro() With Range("A1").Font .Color = RGB(0, 0, 255) .Size = 16 .Name = "Consolas" End With End Sub

Agora vamos dar uma olhada em ambos os códigos e tentar entender qual é a diferença que temos ao usar a instrução “With”.

veja os dois códigos

No primeiro código, você usou o objeto font três vezes e depois usou a propriedade que deseja acessar e na qual deseja fazer alterações.

Mas no segundo código, você usou a instrução With e especificou imediatamente o objeto fonte. E então três linhas de código na instrução “With” para acessar as três propriedades.

Quando você usa a instrução “With” e especifica um objeto, ela informa ao VBA que todas as instruções que você escreveu devem ser executadas com o objeto mencionado. Isso não apenas fornece código estruturado, mas também acelera a execução de uma macro e proporciona maior eficiência.

Aninhado com declaração

Eu disse no início que você só pode especificar um objeto para usar a instrução With. Mas existe uma maneira de usar mais de um ou até vários itens com ele. Isso está usando VBA LOOPS e usaremos FOR EACH LOOP para percorrer vários objetos e usar o “With”.

Deixe-me lhe dar um exemplo; você precisa percorrer todas as planilhas e aplicar todos os itens a seguir a todas as células de cada planilha.

  • Tamanho da fonte: 16
  • Fonte: Verdena

E na apostila você tem cinco planilhas, como no exemplo a seguir:

aninhado com instrução

Use as etapas a seguir para escrever uma instrução “With” aninhada.

  1. Primeiro, você deve declarar uma variável para usar um objeto de planilha.
    steps-to-write-nested
  2. Depois disso, como eu disse, você precisa usar For Each Loop . Então você precisa escrever um código com o loop que possa percorrer todas as planilhas .
    write-code-with-the-loop
  3. Agora insira a instrução with que pode aplicar a configuração de fonte que discutimos acima. Para se referir a todas as células da planilha, você pode usar “Células” ao especificar o assunto.
    use-cells-while-specifing-the-object

Aqui está o código completo que você acabou de escrever.

 Sub MyMacro() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets With Cells .Font.Size = 16 .Font.Name = "Verdena" End With Next ws End Sub

Adicione um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *