Desde 1993, o Excel tem incluído o Visual Basic for Applications (VBA), uma linguagem de programação baseada no Visual Basic que adiciona a capacidade de automatizar tarefas no Excel e prover funções definidas pelo usuário (UDF, user defined functions), para uso em pastas de trabalho. O VBA é um complemento poderoso ao aplicativo que, em versões posteriores, inclui um ambiente integrado de desenvolvimento (IDE, integrated development environment). A gravação de macros pode produzir código VBA que replica ações do usuário, desse modo permitindo automação simples de tarefas cotidianas. O VBA permite a criação de formulários e controles dentro da pasta de trabalho para comunicação com o usuário. A linguagem suporta o uso (mas não a criação) de DLLs ActiveX(COM); versões posteriores adicionaram suporte a módulos de classe, permitindo o uso de técnicas básicas de programação orientada a objetos (POO).
A funcionalidade de automação provida pelo VBA fez com que o Excel se tornasse um alvo para vírus de macro. Esse foi um problema sério no mundo corporativo, até os produtos antivírus começarem a detectar tais ameaças. A Microsoft adotou tardiamente medidas para prevenir o mau uso, com a adição da capacidade de desativar as macros completamente, de ativar as macros apenas quando se abre uma pasta de trabalho ou confiar em todas as macros assinadas com um certificado confiável.Fonte de referência: http://pt.wikipedia.org/wiki/Microsoft_Excel