Разница между 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.