# Visual Basic for Applications

O Visual Basic for Applications (VBA) é uma implementação do Visual Basic da Microsoft incorporada em todos os programas do Microsoft Office - dentro desse pacote estão os famosos aplicativos (Word, Excel, Power Point, Access, etc), incluindo o Office para Mac OS X (exceto a versão 2008) bem como em outras aplicações da Microsoft, como o Visio.
O VBA está integrado em outros aplicativos da Microsoft, incluindo o Microsoft MapPoint e o Microsoft Visio, estando também presente, pelo menos parcialmente, em aplicativos publicados por outras empresas que não a Microsoft, incluindo ArcGIS, AutoCAD, Collabora Online, CorelDraw, Kingsoft Office, LibreOffice, Reflection, SolidWorks, WordPerfect e UNICOM Arquiteto de Sistema (que suporta VBA 7.1).
Ele substitui e estende as capacidades de anteriormente existentes linguagens de programação de macros específicas para as aplicações e pode ser usado para controlar a quase totalidade dos aspectos da aplicação anfitriã, incluindo a manipulação de aspectos do interface do usuário tais como menus e barra das ferramentas e o trabalho com formulários desenhados pelo usuário ou com caixas de diálogo.

## Funcionalidade

O Visual Basic for Applications permite criar funções definidas pelo usuário (UDFs), automatizar processos e acessar a API do Windows e outras funcionalidades de baixo nível por meio de bibliotecas de vínculo dinâmico (DLLs). Ele substitui e expande as habilidades das linguagens de programação de macro específicas de aplicativos anteriores , como o WordBASIC do Word. Ele pode ser usado para controlar muitos aspectos do aplicativo host, incluindo a manipulação de recursos da interface do usuário, como menus e barras de ferramentas, e o trabalho com formulários de usuário ou caixas de diálogo personalizados.
Como o nome sugere, o VBA é muito parecido com o Visual Basic, mas só pode rodar código de dentro da aplicação, em vez de executar como aplicação separada. Pode no entanto ser usado para controlar uma aplicação a partir de outra (por exemplo para criar um relatório no Microsoft Word a partir de dados no Excel).
O VBA é rico em funcionalidade e extremamente flexível, mas tem importantes limitações, incluindo o suporte limitado de funções callback.

## Visual Basic Script

Um derivado do VBA é o VBScript (Microsoft Visual Basic Scripting Edition), concebido pela Microsoft para ser concorrente, juntamente com o JScript, do JavaScript da Netscape. O VBScript possibilita o conteúdo interativo e dinâmico em páginas de internet.

## Preocupações com Segurança

Como acontece com qualquer linguagem de programação comum, as macros VBA podem ser criadas com intenções maliciosas. Usando o VBA, a maioria dos recursos de segurança está nas mãos do usuário, não do autor. As opções do aplicativo host VBA estão acessíveis ao usuário. O usuário que executa qualquer documento contendo macros VBA pode predefinir o software com as preferências do usuário. Os usuários finais podem se proteger contra ataques desabilitando a execução de macros em um aplicativo ou concedendo permissão para um documento executar código VBA somente se tiverem certeza de que a origem do documento é confiável.
Em fevereiro de 2022, a Microsoft anunciou seu plano de bloquear macros VBA em arquivos baixados da Internet por padrão em uma variedade de aplicativos do Office devido ao seu uso generalizado para espalhar malware.

## Histórico de versões

* O VBA foi lançado pela primeira vez com MS Excel 5.0 em 1993. Tornou-se um sucesso instantâneo entre os desenvolvedores criar soluções corporativas usando Excel. A inclusão do VBA no Microsoft Project, Access e Word substituindo Access BASIC e WordBASIC respectivamente o tornou mais popular.
* VBA 4.0 é o próximo lançamento famoso com uma versão totalmente atualizada em relação à anterior. Lançada em 1996, foi escrita em C++ e se tornou uma linguagem orientada a objetos.
* O VBA 5.0 foi lançado em 1997 junto com todos os produtos MS Office 97. A única exceção para isso foi o Outlook 97 que usava VBScript.
* O VBA 6.0 e o VBA 6.1 foram lançados em 1999, principalmente com suporte para suplementos COM no Office 2000. O VBA 6.2 foi lançado junto com o Office 2000 SR-1.
* O VBA 6.3 foi lançado após o Office XP, o VBA 6.4 seguiu o Office 2003 e o VBA 6.5 foi lançado com o Office 2007.
* O Office 2010 inclui o VBA 7.0. Não há novos recursos no VBA 7 para desenvolvedores em comparação com o VBA 6.5, exceto o suporte de 64 bits. No entanto, após o VBA 6.5/Office 2007, a Microsoft parou de licenciar o VBA para outros aplicativos.
* Office 2013, Office 2016, Office 2019 e Office 2021 incluem VBA 7.1.