Na minha maneira de pensar, se o objetivo é uma aprendizagem sólida da ferramenta, deve-se procurar primeiro entender todos os fundamentos dela, deixando as particularidades e exceções para um segundo (ou terceiro) momento. Começar pequeno (tipo um "Alô, Mundo!"), entendendo cada conceito e ir crescendo.
Sabemos que nessa área da informática a evolução é muito rápida e ficamos temerosos em estar perdendo tempo com algo que logo poderá ficar obsoleto.
Apesar disso, muita coisa tem permanecido, em sua essência, quase imutável, como o coração do Excel e do Word e seus velhos VBA's. Basta olhar o modelo de objetos das primeiras versões do Excel por exemplo e, comparando com as atuais. Muito foi acrescentado, mas o núcleo continua o mesmo (células, planilhas, fórmulas, shapes - figuras e gráficos...). Prá se ter uma idéia, meu primeiro contato com uma linguagem de programação foi em 1985 com calculadoras programáveis (Sharp PC-1211 RP e depois uma Casio PB-770/FA-11) que já usavam Basic como linguagem. Tudo bem que ainda não era uma linguagem estruturada, as linhas tinham que ser numeradas e o fluxo era de dar nó na cabeça, repleto de Gotos e Gosubs e conseguir comunicação com algum periférico era uma façanha daquelas... Mas onde quero chegar com essa nostalgia toda é que muitos dos "comandos" que eram usados lá ou até códigos completos no velho Basic ainda funcionariam com poucas alterações se transplantados ao nosso "Visual Basic - Application Edition", ou mesmo ao VB.NET ou até um VBScript, por exemplo.
Então não considero essa abordagem de aprendizado conceitual, passo-a-passo, desnecessária, pois o aprendizado de uma linguagem mesmo sendo o vovô VBA acaba facilitando e muito o caminho para outras que possam vir a substituí-la ou complementá-la. Por outro lado, não acho necessário nenhum rigor acadêmico nesse sentido, a menos que vc seja um profissional dessa área de TI.
É ser pragmático, mas com o conceitual firmemente compreendido.
Em termos práticos, num primeiro momento eu até mesmo deixaria de lado os objetos do Excel e trabalharia somente no ambiente do VBE puro, já que ele é o mesmo para todos os aplicativos Microsoft (Excel, Access, Word, Outlook, PowerPoint, Project, Visio...) e de outros fabricantes (AutoCAD, Solidworks, MathCAD, WordPerfect...).
Após um vôo inicial por todos os menus, barras de ferramentas e janelas (não são muitas), deixaria habilitada a exibição das janelas "Verificação Imediata" e "Variáveis Locais" para começar testando por ali.
Aliás, a janela Verificação Imediata é excelente não só prá depurar código ou alterá-lo "durante o vôo", mas também para aprender o que acontece, pois ali é o acesso direto ao interpretador do VBA. Por exemplo, digitando nela:
?3+2 Enter
mostrará imediatamente 5 na linha abaixo.
Digitando
MsgBox "Alô, Mundo!" Enter
O interpretador irá imediatamente exibir uma caixa de mensagem correspondente.
Digitando
?right("JSCOPA",4) Enter
Será exibido na hora "COPA"
Da mesma forma, digitando
?3+2 = 5 Enter
Mostrará: "Verdadeiro"
Então dá prá usá-la como uma verdadeira bancada de testes de seu código com o objetivo principal de familiarizar-se com a sintaxe da linguagem e o retorno esperado.
(Obs.: usando Debug.Print no código, o resultado é mostrado na Janela Imediata ao invés de em uma MsgBox, por exemplo. Na Verificação Imediata, pode-se abreviar Debug.Print por um ponto de interrogação).
Tendo feito isso, partir então para a criação de procedimentos (Subs e Functions) simples, sem se preocupar em usar células ou planilhas por enquanto. Dimensionar e atribuir valores a variáveis, conhecendo os tipos de variáveis principais existentes (Variant, Integer, Date, String...), entender e testar o escopo e visibilidade delas e dos procedimentos (se são conhecidas somente dentro do procedimento ou dentro de todo o módulo ou em quaisquer módulos), discernir entre coisas semelhantes, mas com significados diferentes, como constantes, variáveis, parâmetros, argumentos também é importante.
Um passo-a-passo mais aprofundado interessante pode ser visto no site do Felipe C. Gualberto:http://ambienteoffice.com.br/vba/
Após ter adquirido alguma familiaridade com o VBA, só então passaria a estudar o modelo de objetos do Excel propriamente dito. Dedicaria um tempo extra aos seguintes objetos e suas coleções: Application, Workbook, Worksheet, Range e Shape. Desses penso que quase toda sua hierarquia, seus eventos, métodos e propriedades valem a pena ser estudados.
Próximo passo seria a criação de Formulários (UserForms) e deixaria por último então a codificação de Módulos de Classe.
Postado : 10/10/2016 8:52 am