sábado, 8 de março de 2014

Uma análise sobre o Visual Basic for Applications - Parte 2

Antes de continuar lendo este artigo, recomendo que leia a parte 1 clicando aqui.

Este artigo é totalmente desprovido de qualquer material de treinamento prático. No entanto, ele contém algumas informações essenciais de apoio que o ajudam a se tornar um programador de Excel. Não aborrece tanto quanto você poderia imaginar.

Mas, o que é VBA?

VBA, que significa Visual Basic for Applications (Visual Basic para Aplicativos), é uma linguagem de programação desenvolvida pela Microsoft – você sabe, a empresa que tenta fazê-lo comprar uma nova versão do Windows a cada ano. O Excel, juntamente com outros membros do Microsoft Office, inclui a linguagem VBA (sem custos extras).

Resumidamente, VBA é uma ferramenta que pessoas como você e eu usam para desenvolver programas que controlam o Excel.

Algumas palavras sobre terminologia

A terminologia de programação em Excel pode ser um pouco confusa. Por exemplo, VBA é uma linguagem de programação, mas serve também como uma linguagem de Macro. Como você domina algo escrito em VBA executado em Excel? É uma macro ou um programa? Normalmente, o sistema Help (ajuda) do Excel se refere aos procedimentos VBA como macros, assim, eu uso essa terminologia.

Uso também o termo automatizar nos meus artigos. Esse termo significa que uma série de etapas são completadas automaticamente. Por exemplo, se você escrever uma macro que acrescenta cor em algumas células, imprime a planilha e depois remove as cores, essas três etapas foram automatizadas.
A propósito, macro não é um acrônimo de Messy And Confusing Repeated Operation (Operação Repetida Confusa e Desordenada). Ao invés disso, ela vem da palavra grega “makros”, que significa grande – que também descreve seu contracheque depois de se tornar um programador especialista em Macro.

As Vantagens e Desvantagens do VBA

“O VBA está ultrapassado. Linguagem do século XX... Tem até GoTo! Que piada!”
“O VBA é um lixo, linguagem estruturada, gambiarrado!”

É verdade que você não vai conseguir criar um sistema de banco ou jogos para celular usando o VBA. Assim como qualquer linguagem de programação, o VBA tem suas vantagens e desvantagens. Não estou aqui para defender o VBA, mas se você acreditar que vale a pena dedicar tempo e energia no VBA, é um bom começo.

Não se deixe levar pelos falastrões dos cursos de tecnologia, que são como advogados recém-formados que já acham que são juízes. A maioria deles não sabe de nada de desenvolvimento, nem mesmo as próprias ferramentas que estudaram na faculdade. Pergunte a eles para que o VBA foi criado e eles não saberão responder.

Nesta parte descrevo as coisas boas sobre VBA e também exploro seu lado mais escuro.

As vantagens do VBA


O VBA foi criado para resolver problemas e expandir as funcionalidades dos aplicativos do Microsoft Office. Então, para querer aprender VBA, você já tem que ter um conhecimento pelo menos básico do aplicativo Office que você usa, como Word, Excel, PowerPoint ou Outlook. É muito difícil simpatizar com o VBA se você não usa o Microsoft Office.

O VBA precisa de poucas linhas de código para resolver um problema de um aplicativo Office que, se fizesse por outra linguagem, levaria dezenas de linhas. O ambiente de desenvolvimento de VBA já vem integrado ao aplicativo que você quer automatizar, enquanto que outra solução necessitaria instalar um software extra no computador. Você pode ligar qualquer computador que possua Office e começar a desenvolver em VBA, mas em outras linguagens de programação, não.

Mesmo que você não desenvolva em VBA futuramente, não terá perdido tempo. O VBA é uma ótima porta de entrada no mundo de desenvolvimento de software para pessoas que não tem formação em TI. Além disso, umas das linguagens de programação mais utilizadas no mercado atualmente, o VB.NET, é uma evolução do VBA, e hoje ela é utilizada em vários segmentos como desenvolvimento de aplicações web, jogos para celulares, sistemas ERP e muito mais. O VBA apresenta muita semelhança com o VB.NET.

Uma grande vantagem do VBA é a velocidade em que se constroem programas: é muito rápido o processo de escrever, testar e executar. Quando escrevemos um programa e vamos executa-lo, normalmente temos que esperar um tempo em que a máquina virtual do ambiente de desenvolvimento converta seu código para linguagem de máquina (chamado de tempo de compilação). Á medida que a linguagem de programação se torna mais complexa, esse tempo aumenta. No VBA, esse tempo é quase zero. Para fazer scripts e testes rápidos, ele é imbatível! Além disso, ele já está integrado na aplicação que você quer automatizar, e então não é preciso importar nem desenvolver códigos extras que apontem para o aplicativo desejado.

Automatizar uma tarefa usando VBA oferece várias vantagens, como:

  ü  O Excel sempre executa tarefas exatamente do mesmo jeito (na maioria dos casos, consistência é uma coisa boa).
  ü  O Excel executa a tarefa muito mais depressa do que você pode fazer manualmente (a menos, é claro, que seja o Super-Homem).
  ü  Se você for um bom programador de macros, o Excel executará tarefas sem erros.
  ü  Se você configurar as coisas corretamente, qualquer um sem conhecimento do Excel pode executar a tarefas.
  ü  É possível fazer coisas em Excel que poderiam parecer impossíveis – o que pode torna-lo uma pessoa muito popular no trabalho.
  ü  Para tarefas longas e demoradas, você não precisa ficar sentado diante do computador e se aborrecer. O Excel faz o trabalho enquanto você dedica seu tempo para outras coisas (de preferência produtivas).

As desvantagens do VBA



É justo que eu use o mesmo tempo para descrever as desvantagens (ou possíveis desvantagens) do VBA.

A Microsoft até já até quis cantar a pedra que iria remover o VBA do Office em versões futuras, mas a reação contra da comunidade foi tão forte que ela garantiu que irá manter o VBA no Office por tanto tempo que seja necessário. Pode ficar tranquilo porque ele não será descontinuado.

Mas, infelizmente, o VBA não recebe atualizações significativas desde 1999 e não vejo planos da Microsoft querer inova-lo, o que é uma incrível burrice da empresa, e quem tomou essa decisão lá dentro deve ser um louco. Então, usando o VBA, você estará trabalhando com uma ferramenta que é praticamente a mesma há 15 anos porque foi abandonada pelo fabricante.

O VBA não vive sem um aplicativo Office. Você pode até fazer macros que interajam com outros programas que não sejam da Microsoft, mas você sempre irá precisar de um aplicativo do Office para executa-lo. Uma das consequências disso é que o VBA não gera programas executáveis (.exe).

Um documento Office incorpora em si as macros que utiliza. Então, se você criar uma planilha automatizada e distribuir sua pasta de trabalho para outras pessoas e no dia seguinte perceber que há uma falha no código, terá que entrar em contato com cada uma dessas pessoas e reenviar o novo arquivo com o código correto. Se um dos remetentes já tiver trabalhado no documento anterior, terá que refazer o serviço no documento correto. Claro, esse é um típico problema fácil de contornar, mas os rementes envolvidos devem ter pelo menos um conhecimento básico no gerenciamento de projetos VBA de um documento, o que normalmente não acontece.

Relaciono abaixo as principais desvantagens do VBA:

  ü  Você tem que saber como escrever programas em VBA (mas foi para isso que você acessou este site, certo?). Felizmente, não é tão complicado como você poderia prever.
  ü  Outras pessoas que precisem usar os seus programas VBA devem ter suas próprias cópias do Excel. Seria muito bom se você pressionasse um botão e o aplicativo Excel/VBA se convertesse em um programa autônomo, mas isso não é possível (e provavelmente nunca será).
  ü  Às vezes, as coisas saem erradas. Em outras palavras, não é possível supor, cegamente, que o seu programa VBA sempre funcionará corretamente em todas as circunstâncias. Bem vindo ao mundo de depuração e, se outros estiverem usando suas macros, ao suporte técnico.
  ü  VBA é como um alvo em movimento. Como você sabe, a Microsoft continuamente atualiza o Excel. Mesmo a Microsoft se esforçando para que haja uma compatibilidade entre as versões, você pode descobrir que o código VBA que escreveu não funciona adequadamente com versões mais antigas ou com uma versão futura de Excel.

Sobre este último item, versões do Office 64 bits não são totalmente compatíveis com o Office 32 bits. Essas incompatibilidades são evidentes quando usamos Chamadas API no programa VBA (já havia prometido fazer um artigo abordando este tema, está anotado em minha lista ;).

Bem vou finalizar por aqui esta parte, pois ela já esta mais extensa do que imaginei. Na próxima parte colocarei minhas considerações finais sobre esta linguagem de programação.


Gostou deste artigo? Então compartilhe com seus amigos e assine para RECEBER MAIS DICAS DE EXCEL POR E-MAIL. Fique a vontade para deixar seu comentário.
Informe seu e-mail...

Sobre o autor: Anderson Tonetto dos Santos
Anderson é especialista em Planilhas Eletrônicas e Administração de Sistemas. Trabalha com tecnologia há mais de 10 anos, e nos últimos 6 anos atua como Consultor e Instrutor de Excel. Fundador da Tonetto Excel, site referência no conteúdo de Planilhas e Macros, com mais de 3 milhões de acessos nos últimos 5 anos. Também é co-fundador da Solução Contábil, empresa especializada em Inteligência Informacional para Contabilidade e Data Analytics.