Практически для всех целей программирования VBA и VB 6.0 - это одно и то же.
VBA не может скомпилировать вашу программу в исполняемый двоичный файл. Вам всегда понадобится хост (например, файл Word и MS Word) для хранения и выполнения вашего проекта. Вы также не сможете создавать COM DLL с помощью VBA.
Кроме того, в IDE есть разница - IDE VB 6.0 является более мощным по сравнению. С другой стороны, у вас есть тесная интеграция хост-приложения в VBA. Глобальные объекты приложения (например, «ActiveDocument») и события доступны без объявления, поэтому программирование для конкретного приложения является простым.
Тем не менее, ничто не мешает вам запускать Word, загружать VBA IDE и решать проблему, не имеющую никакого отношения к Word. Я не уверен, что есть что-то, что может сделать VB 6.0 (технически), а VBA - нет. Я ищу сравнительный лист на MSDN, хотя.
VBA расшифровывается как Visual Basic для приложений, так же как и маленький «V для приложений». VBA действительно доступен в Excel, но также и в других офисных приложениях.
С помощью VB можно создать отдельное приложение для Windows, что невозможно с VBA.
Однако разработчики могут «встраивать» VBA в свои собственные приложения в качестве языка сценариев для автоматизации этих приложений.
Изменить : из часто задаваемых вопросов VBA :
Обратите внимание, что VB.NET - это даже другой язык, который использует синтаксис только с VB.
источник
Вот более технический и подробный ответ на старый вопрос: Visual Basic для приложений (VBA) и Visual Basic (до .NET) - это не просто похожие языки, это один и тот же язык. В частности:
В старом справочнике по VB, с которым я сталкивался в прошлом году, автор (Пол Ломакс) даже утверждал, что «VBA» всегда был названием самого языка, независимо от того, используется ли он в автономных приложениях или во встроенных контекстах (таких как MS Office). ):
Незначительные различия
Размещенный или автономный : на практике, когда большинство людей говорят «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.
источник
Хотите сравнить VBA с VB-Classic (VB6 ..) или VB.NET?
VBA (Visual Basic для приложений) - это язык сценариев на основе vb-classic, встроенный в приложения Microsoft Office. Я думаю, что его языковые возможности аналогичны VB5 (ему просто не хватает нескольких встроенных функций), но:
У вас есть доступ к офисному документу, для которого вы написали VBA-скрипт, и вы можете, например,
Пример: установить значение Excel-ячейки
VBC и-.NET не являются языками сценариев. Вы используете их для написания автономных приложений с отдельными IDE, которые вы не можете сделать с VBA (VBA-скрипты просто «существуют» в Office)
VBA не имеет ничего общего с VB.NET (у них просто похожий синтаксис).
источник
На самом деле VBA может использоваться для компиляции DLL. В редакции Office 2000 и Office XP Developer включен редактор VBA, который можно использовать для создания библиотек DLL для использования в качестве надстроек COM.
Эта функциональность была удалена в более поздних версиях (2003 и 2007) с появлением программного обеспечения VSTO (VS Tools для Office), хотя очевидно, что вы все еще можете создавать надстройки COM аналогичным образом без использования VSTO (или VS.Net) используя VB6 IDE.
источник
Это VBA. VBA означает Visual Basic для приложений и используется для макросов в документах Office. Он не имеет доступа к функциям VB.NET, поэтому он больше похож на модифицированную версию VB6 с надстройками для работы с документом (например, с рабочим листом в VBA для Excel).
источник
В.Б. это не язык . VB - это программа, в которой размещается VBA, так же, как в Office размещается VBA. VB - это набор объектов App, как в Word и Excel, и пакет форм, как в Office.
Таким образом, вы можете писать код VBA только на VB.
PS эта информация находится на вкладке INFO на странице вопросов VB для VB.
Из VBA Info
источник
VBA расшифровывается как Visual Basic For Applications и его реализация Visual Basic, предназначенная для использования в Office Suite.
Разница между ними заключается в том, что VBA встроен в документы Office (это функция Office). VB - это иде / язык для разработки приложений.
источник
VB (Visual Basic только до 6.0) - это расширенный набор VBA (Visual Basic для приложений). Я знаю, что другие отчасти ускользали от этого, но я понимаю, что семантика (то есть словарь) VBA включена в VB6 (за исключением объектов, специфичных для продуктов Office), поэтому VBA является подмножеством VB6. Синтаксис (т. Е. Порядок, в котором написаны слова) в VBA точно такой же, как и в VB6, но различие заключается в том, что объекты, доступные для VBA или VB6, различны, поскольку они имеют разные цели. В частности, целью VBA является программная автоматизация задач, которые можно выполнять в MS Office, тогда как целью VB6 является создание стандартных EXE, ActiveX Controls, ActiveX DLL и ActiveX EXE, которые могут работать как отдельно, так и в других программах, таких как MS Office или Windows.
источник