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
- With : Esta é a palavra-chave inicial da instrução que informa ao VBA que você está especificando o objeto mencionado.
- Objeto : Aqui você precisa especificar o objeto que deseja usar.
- Instrução : uma ou mais instruções que você deseja executar com o objeto especificado.
- 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:
- Primeiro digite o teclado “Com”.
- Depois disso, use o intervalo VBA para especificar a célula A1 usando o objeto fonte para especificar o objeto fonte.
- Em seguida, você precisa inserir o código das três propriedades e os valores que deseja aplicar.
- No final, use a palavra-chave “End With” para encerrar a instrução.
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”.
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:
Use as etapas a seguir para escrever uma instrução “With” aninhada.
- Primeiro, você deve declarar uma variável para usar um objeto de planilha.
- 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 .
- 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.
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