Tendo como exemplo uma solução desenvolvida em Excel as vezes nos deparamos com situações onde acabamos repetindo muitas vezes o nome de um mesmo objeto. Por exemplo:
Thisworkbook.Worksheets(“Plan1”).Range(“A1”).Value = “Nome”
Thisworkbook.Worksheets(“Plan1”).Range(“A2”).Value = “Endereço”
Thisworkbook.Worksheets(“Plan1”).Range(“A3”).Value = “CEP”
Thisworkbook.Worksheets(“Plan1”).Range(“A4”).Value = “Cidade”
Thisworkbook.Worksheets(“Plan1”).Range(“A5”).Value = “UF”
Thisworkbook.Worksheets(“Plan1”).Range(“A6”).Value = “Telefone”
Este tipo de código já compromete a produtividade naturalmente, mas vamos piorar um pouco mais. Pense em uma rotina grande, onde referenciamos várias vezes esta mesma planilha e em um momento surge à necessidade de mudar o nome desta planilha.
Às vezes um simples, “Substituir Tudo” pode resolver, mas você se sentiria 100% seguro para fazer isso em um código que não é seu?
Podemos também usar um Bloco With, que também pode ser uma solução, mas quando usado em excesso dificulta muito o entendimento do código por não identificar na linha, a origem da propriedade ou método que estamos usando.
Solução:
O mais indicado nesse caso seria instanciar o objeto, ou seja, no início do código devemos “setar” o objeto e usar apenas a variável dentro do código, não esquecendo de matar a variável no final da rotina.
Set wshPlan1 = Thisworkbook.Worksheets(“Plan1”)
wshPlan1.Range(“A1”).Value = “Nome”
wshPlan1.Range(“A2”).Value = “Endereço”
wshPlan1.Range(“A3”).Value = “CEP”
wshPlan1.Range(“A4”).Value = “Cidade”
wshPlan1.Range(“A5”).Value = “UF”
wshPlan1.Range(“A6”).Value = “Telefone”
Set wshPlan1 = nothing
Dessa forma facilitamos o entendimento do código e possíveis manutenções.