Lincoln, a explicação do Reinaldo é rica em informações, e uma coisa que normalmente costumo dizer, é que muitos esquecem ou nem chegam a ver a rica biblioteca que tem a ajuda do VBA, lá temos todas as informações, exemplos para testar, e no que se refere as questões basicas do VBA, deixa muita apostila na mão, procure dar uma olhada pressionando F1 na tela do editor do vba e verá.
Apesar de tudo, vou tentar explicar um pouco da Instrução With :
O texto abaixo foi tirado da ajuda do VBA :
Instrução With
Executa uma série de instruções em um objeto ou em um tipo definido pelo usuário.
Sintaxe
With object
[statements]
End With
A sintaxe da instrução With possui as seguintes partes:
Parte...........Descrição
object.........Obrigatória. Nome de um objeto ou um tipo definido pelo usuário.
statements....Opcional. Uma ou mais instruções a serem executadas em object.
Comentários
A instrução With permite executar uma série de instruções em um objeto específico sem requalificar o nome do objeto. Por exemplo, para alterar um número de diferentes propriedades de um objeto, posicione as instruções de atribuição de propriedades dentro da estrutura de controle With, referindo-se ao objeto uma vez em vez de fazê-lo em todas as atribuições de propriedade. O exemplo a seguir ilustra o uso da instrução With para atribuir valores a diversas propriedades do mesmo objeto.
With MyLabel
.Height = 2000
.Width = 2000
.Caption = "Este é MyLabel"
End With
Observação Uma vez inserido um bloco With, object não pode ser alterado. Como resultado, você não pode usar uma única instrução With para afetar um número de diferentes objetos.
Você pode aninhar instruções With posicionando um bloco With dentro do outro. Entretanto, em razão de os membros de blocos With externos ficarem mascarados dentro dos blocos With internos, você deve fornecer uma referência de objeto totalmente qualificada em um bloco With interno para qualquer membro de um objeto existente em um bloco With externo.
Observação Em geral, recomenda-se que você não salte para dentro ou para fora de blocos With. Se as instruções em um bloco With forem executadas, mas a instrução With ou End With não for, uma variável temporária contendo uma referência ao objeto permanecerá na memória até que você saia do procedimento.
Ok, agora, pela rotina que postou destacando a Instrução With, eu acredito que devemos ter em algum lugar as definições para :
Set Agenda = Application.Worksheets("Dados"), e,
With Registro, me refiro as duas variaveis com o mesmo nome, geralmente não aconselhamos para evitar erros e ficar mais facil identificar ao que estamos nos referindo, se um controle ou outro tipo de objeto, veja na rotina abaixo uma explicação sucinta, pelo menos do que me lembro desta rotina quando eu a criei :
'Declaramos o Objeto(Representa uma planilha, O objeto Worksheet)
Dim Agenda As Worksheet
'Atribuimos uma referência ao objeto
'Neste caso a Variavel Agenda passará a representar a Aba de nome "Dados"
Set Agenda = Application.Worksheets("Dados")
With Registro 'Aqui, "Registro" se refere ao nome que se deu ao Formulário na propriedade (Name)
'Na linha abaixo "Registro" se refere ao Range nomeado
'e "lblCodigo" ao nome dado ao controle Label
lblCodigo.Caption = Agenda.Range("Registro").Value + 1
End With
'Instrução With serve para Eeecuta uma série de instruções em um objeto, atribuindo
'Varias Propriedades ao controle sem ter de ficarmos
'repetindo o nome do controle e do formulario
'Na linha acima onde utilizamos o With, se não quisermos utilizar esta instrução
'a linha ficaria assim:
'Registro.lblCodigo.Caption = Agenda.Range("Registro").Value + 1
Lógicamente, na explanação acima, ou utilizamos : "With Registro" ou a referencia direta ao controle e o que queremos.
Espero ter conseguido explicar um pouco sobre a Instrução With, qualquer duvida, retorne.
[]s
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 17/05/2012 7:45 pm