Разница между Visual Basic 6.0 и VBA
В чем разница между ними. Я всегда думал, что VBA является несколько "искалеченной" версией VB, но когда друг спросил меня на днях, я понятия не имел, каковы фактические различия.
Кроме того, когда вы используете, например, Excel, это VB или VBA?
Ответы
Ответ 1
Для почти всех целей программирования VBA и VB 6.0 - это одно и то же.
VBA не может скомпилировать вашу программу в исполняемый двоичный файл. Вам всегда понадобится хост (например, файл Word и MS Word), чтобы содержать и выполнять ваш проект. Вы также не сможете создавать COM-библиотеки с помощью VBA.
Кроме того, в среде IDE есть разница - более эффективная по сравнению с IDE VB 6.0 IDE. С другой стороны, у вас есть тесная интеграция приложения-хозяина в VBA. Глобальные объекты приложения (например, "ActiveDocument" ) и события доступны без объявления, поэтому программирование, специфичное для приложения, выполняется прямо.
Тем не менее, ничто не мешает вам запускать Word, загружать VBA IDE и решать проблему, которая не имеет никакого отношения к Word. Я не уверен, есть ли что-то, что может сделать VB 6.0 (технически), и VBA не может. Я ищу таблицу сравнения на MSDN, хотя.
Ответ 2
VBA означает Visual Basic для приложений, а также небольшой скрипт сценария для приложений VB.
VBA действительно доступен в Excel, но также и в других офисных приложениях.
С VB можно создать автономное приложение Windows, что невозможно с помощью VBA.
Однако разработчики могут "внедрять" VBA в свои собственные приложения в качестве языка сценариев для автоматизации этих приложений.
Изменить. Из Вопросы VBA:
Q. Что такое Visual Basic для приложений?
A. Microsoft Visual Basic для приложений (VBA) - это встраиваемая среда программирования, предназначенная для того, чтобы разработчики могли создавать пользовательские решения, используя всю мощь Microsoft Visual Basic. Разработчики, использующие приложения, которые размещают VBA, могут автоматизировать и расширить функциональность приложения, сокращая цикл разработки пользовательских бизнес-решений.
Обратите внимание, что VB.NET - это еще один язык, который разделяет только синтаксис с VB.
Ответ 3
Здесь более технический и исчерпывающий ответ на старый вопрос: Visual Basic для приложений (VBA) и Visual Basic (pre -.NET) - это не просто похожие языки, они являются одним и тем же языком. В частности:
- Они имеют одинаковую спецификацию: независимое от реализации описание того, что содержит язык и что это значит. Вы можете прочитать его здесь: [MS-VBAL]: Спецификация языка VBA
- У них есть одна и та же платформа: они компилируются в Microsoft P-Code, который, в свою очередь, выполняется той же самой виртуальной машиной, которая реализован в dll msvbvm [x.0].dll.
В старом справочнике VB, с которым я столкнулся в прошлом году, автор (Пол Ломакс) даже утверждал, что 'VBA' всегда был имя самого языка, независимо от того, используется ли оно в автономных приложениях или во встроенных контекстах (например, MS Office):
"Прежде чем идти дальше, давайте просто проясним фундаментальную точку. Visual Basic for Applications (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-запросов.
Ответ 4
Вы хотите сравнить VBA с VB-Classic (VB6..) или VB.NET?
VBA (Visual Basic для приложений) - это vb-классический script язык, встроенный в приложения Microsoft Office. Я думаю, что его языковые функции аналогичны функциям VB5 (в нем просто не хватает некоторых встроенных функций), но:
У вас есть доступ к офисному документу, на который вы написали VBA- script, и, таким образом, вы можете, например,
- Пишите макросы (= автоматические процедуры для небольших повторяющихся задач в офисе)
- Определить новые функции для формулы excel-cell
- Данные о производственных процессах
Пример: установите значение ячейки excel
ActiveSheet.Cells("A1").Value = "Foo"
VBC и -.NET не являются script языками. Вы используете их для написания автономных приложений с отдельной IDE, которую вы не можете сделать с VBA (VBA-скрипты просто "существуют" в Office)
VBA не имеет ничего общего с VB.NET(они просто имеют похожий синтаксис).
Ответ 5
Фактически VBA может использоваться для компиляции DLL. Издания Office 2000 и Office XP Developer включали редактор VBA, который можно было использовать для создания библиотек DLL для использования в качестве добавлений COM.
Эта функциональность была удалена в более поздних версиях (2003 и 2007) с появлением программного обеспечения VSTO (VS Tools for Office), хотя, очевидно, вы все равно могли бы создавать COM-аддоны аналогичным образом без использования VSTO (или VS.Net) используя VB6 IDE.
Ответ 6
Это VBA. VBA означает Visual Basic для приложений и используется для макросов в документах Office. Он не имеет доступа к функциям VB.NET, поэтому он больше похож на модифицированную версию VB6 с надстройками, позволяющими работать с документом (например, Worksheet в VBA для Excel).
Ответ 7
VB не является языком. VB - это программа, в которой размещается VBA, так же, как Office размещает VBA. VB - это набор объектов App, как и Word и Excel, и пакет форм, как и в Office.
Таким образом, вы можете писать код VBA только в VB.
PS эта информация находится на вкладке INFO на странице VB question для VB.
Из информации VBA
VBA 6, был отправлен в 1998 году и включает в себя множество лицензированных хостов, среди которых: Office 2000 - 2010, AutoCAD, PI Processbook и автономный Visual Basic 6.0
Ответ 8
VBA означает Visual Basic для приложений и его реализацию Visual Basic, предназначенную для использования в Office Suite.
Разница между ними заключается в том, что VBA встроен в документы Office (его функция Office). VB - это идеал/язык для разработки приложений.
Ответ 9
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 и EXE-приложений ActiveX, которые могут работать автономно или в других программах, таких как MS Office или Windows.