Instrução
empregada para executar uma série de instruções dentro de um laço,
referenciando uma única vez um objeto, de forma a acessar mais rapidamente suas
propriedades e reduzir a sintaxe empregada na codificação,utilizando esta
sintaxe
With Objeto
[Instruções]
End With
Onde,
- Objeto: argumento obrigatório, indicando o nome do o nome do objeto ou tipo definido pelo usuário cujas propriedades você deseja acessar;
- Instruções: argumento opcional, indica a existência de instruções que serão executadas dentro do laço With...End With;
- End With: instrução que determina o fim do laço With. Após esta instrução, quaisquer propriedades do Objeto deverão ser acessadas utilizando-se a sintaxe completa, na forma Objeto.Propriedade.
As seguintes considerações são válidas para a instrução
With...End With:
- With permite tornar mais enxuta a sintaxe de acesso às propriedades do objeto referenciado, diminuindo a quantidade de texto a ser digitado e aproveitando-se das características de AutoListar Membros do VBA (basta pressionar o caractere “.” Dentro de um laço With para que uma lista com todas as propriedades do objeto referenciado pela instrução sejam exibidos para você);
- Não é possível alterar o objeto referenciado dentro de um laço With;
- É possível aninhar laços, porém, quando um laço mais interno está sendo executado, propriedades idênticas contidas no objeto do laço With mais externo serão mascaradas, exigindo o emprego da sintaxe completa para o objeto de forma a acessá-las;
- Jamais empregue a instrução GoTo ou GoSub para sair ou entrar em um laço With...End With. Apesar de o VBA permitir esta abordagem, poderão ocorrer erros inesperados em seu aplicativo.
Exemplo: O exemplo a seguir emprega um laço With...End With
para referenciar uma vez uma caixa de listagem no Microsoft Access e alterar
suas propriedades.
Sub
txtIdade_AfterUpdate()
With txtIdade
.BackColor = 0 ‘Fundo preto
.ForeColor = 256 ‘Letras vermelhas
.Enabled = False
.Locked = True
End With
Até a Próxima!!