Вот более технический и подробный ответ на старый вопрос: Visual Basic для приложений (VBA) и Visual Basic (до .NET) - это не просто похожие языки, это один и тот же язык. В частности:
- Они имеют одну и ту же спецификацию : независимое от реализации описание того, что содержит язык и что оно означает. Вы можете прочитать это здесь: [MS-VBAL]: Спецификация языка VBA
- Они имеют одну и ту же платформу : обе они компилируются в Microsoft P-Code , который, в свою очередь, выполняется точно такой же виртуальной машиной, которая реализована в dll msvbvm [x.0] .dll.
В старом справочнике по VB, с которым я сталкивался в прошлом году, автор (Пол Ломакс) даже утверждал, что «VBA» всегда был названием самого языка, независимо от того, используется ли он в автономных приложениях или во встроенных контекстах (таких как MS Office). ):
«Прежде чем идти дальше, давайте просто проясним фундаментальный момент. Visual Basic для приложений (VBA) - это язык, используемый для программирования в Visual Basic (VB). Сам VB является средой разработки; языковым элементом этой среды является VBA. "
Незначительные различия
Размещенный или автономный : на практике, когда большинство людей говорят «VBA», они конкретно означают «VBA при использовании в MS Office», а «VB6» означает «VBA, использованный в последней версии автономного VBA». компилятор (т.е. Visual Studio 6) ". IDE и компилятор в комплекте с MS Office практически идентичны Visual Studio 6, за исключением того, что они не позволяют выполнять компиляцию в автономные файлы dll или exe. Это, в свою очередь, означает, что классы, определенные во встроенных проектах VBA, недоступны для не встроенных потребителей COM, поскольку они не могут быть зарегистрированы.
Продолжение разработки : Microsoft прекратила выпускать автономный компилятор VBA с Visual Studio 6, поскольку они переключились на среду выполнения .NET в качестве предпочтительной платформы. Тем не менее, команда MS Office продолжает поддерживать VBA и даже выпустила новую версию (VBA7) с новой виртуальной машиной (теперь просто называемой VBA7.dll), начиная с MS Office 2010. Единственное существенное отличие состоит в том, что VBA7 имеет 32- и 64-битная версия и имеет несколько улучшений для обработки различий между ними, особенно в отношении внешних вызовов API.