O que é VBA?
Você tem de limpar cinquenta tabelas no Word todos os dias? Você precisar atualizar uma planilha no Excel com os dados exportados de um outro sistema?
Você pode executar essas tarefas e realizar muito mais usando o Visual Basic for Applications (VBA) - uma linguagem de programação simples, mas poderosa, que você pode usar para estender os aplicativos do Office.
O Visual Basic for Applications (VBA) é uma implementação da linguagem de programação baseada em eventos da Microsoft Visual Basic 6 (VB6). O VB6 foi lançado pela primeira vez em 1991 e é conhecida por seu modelo de programação COM (Component Object Model).
Apesar de o Microsoft Visual Basic 6 ter sido declarado legada em 2008, o VBA mantém-se em uso nos dias de hoje e ocupou a posição de linguagem "mais temida" para desenvolvedores por 2 anos, de acordo com alguns que participaram de pesquisas realizadas pelo Stack Overflow. (A linguagem mais temida em 2018 foi o Visual Basic 6). [2]
Por que o VBA ainda é popular nos dias de hoje?
Por ser a linguagem de programação suportada pelos aplicativos do Office (Excel, Word, Access, Outlook, etc.), o VBA permite a construção de funções definidas pelo usuário, automatizando processos e acessando a API do Windows e outras funcionalidades de baixo nível por meio de bibliotecas de vínculo dinâmico (DLLs).
O VBA pode ser usado para controlar muitos aspectos dos aplicativos do Office, incluindo a manipulação de recursos da interface do usuário, como menus e barras de ferramentas, e trabalhar com formulários de usuário personalizados ou caixas de diálogo.
O grande poder do VBA é que quase todas as operações que você pode realizar com um mouse, teclado ou uma caixa de diálogo também podem ser feitas usando o VBA. Além disso, se isso pode ser feito uma vez com o VBA, pode ser feito com a mesma facilidade centenas de vezes.
Todas as vezes em que você clica no botão "Gravar Macro" no Microsoft Excel, por exemplo, as ações que você realiza a partir de então geram um código fonte escrito em VBA.
Por que aprender VBA?
Se você é um usuário frequente do Microsoft Excel, por exemplo, já deve ter feito algum trabalho repetitivo, como inserir células, formatar as células, inserir linhas ou colunas, inserir números, apagar dados, etc. Essas tarefas podem consumir muito seu tempo no dia a dia.
Existe alguma maneira de reduzir o tempo que essas tarefas demoram? É possível automatizar essas tarefas no Microsoft Excel com a ajuda de macros.
Gravar macros pode ajudá-lo a automatizar algumas tarefas, mas se você precisar realizar ações muito especificas e que demandam certas condições, como por exemplo, verificar se um arquivo existe antes de tentar abri-lo, conferir se determinados registros estão disponível, e etc., você precisa aprender VBA.
Quando e porque usar VBA?
Existem várias razões principais para considerar a programação VBA no Office:
Automação e repetição
Você já alterou o estilo do parágrafo no topo de cada página do Word? Você já teve que reformatar várias tabelas que foram coladas do Excel em um documento do Word ou um e-mail do Outlook? Você já teve que fazer a mesma alteração em vários contatos do Outlook?
Se você tiver uma alteração que precise fazer mais de dez ou vinte vezes, pode valer a pena automatizá-la com o VBA.
Interação do usuário
Você pode solicitar que os usuários realizem alguma ação específica ao abrir, salvar ou imprimir um documento.
Você também pode criar uma formulário onde o usuário preencha algumas informações.
Interação entre aplicativos do Office
Você precisa copiar todos os seus contatos do Outlook para o Word e formatá-los de alguma maneira específica? Ou você precisa mover dados do Excel para um conjunto de slides do PowerPoint?
Você pode usar a programação VBA para interagir com os detalhes de dois ou mais aplicativos do Office ao mesmo tempo e, em seguida, modificar o conteúdo de um aplicativo com base no conteúdo de outro.
E se eu não quiser usar VBA?
Antes de iniciar um projeto VBA, considere as ferramentas integradas e as funcionalidades padrão. Por exemplo, se você tiver uma tarefa demorada de edição ou layout, considere o uso de estilos ou teclas aceleradoras para resolver o problema. Você pode executar a tarefa uma vez e usar CTRL + Y (Refazer) para repeti-la? Você pode criar um novo documento com o formato ou modelo correto e, em seguida, copiar o conteúdo nesse novo documento?
Além de VBA, se você possui experiência com desenvolvimento em .NET, poderá usar VSTO Add-ins. Se você possui experiência em programação web (HTML5, JavaScript, CSS3, and XML) poderá usar Office Add-ins model.