Разница между Visual Basic 6.0 и VBA



в чем разница между двумя. Я всегда думал, что VBA-это несколько "искалеченная" версия VB, но когда друг спросил меня на днях, я понятия не имел, каковы фактические различия.



кроме того, когда вы используете, например, Excel, это VB или VBA ?

1184   9  

9 ответов:

для почти всех целей программирования, VBA и VB 6.0 это одно и то же.

VBA не может скомпилировать программу в исполняемый двоичный файл. Вам всегда будет нужен хост (например, файл Word и MS Word) для хранения и выполнения вашего проекта. Вы также не сможете создавать com-библиотеки DLL с помощью VBA.

кроме того, есть разница в IDE - VB 6.0 IDE является более мощным по сравнению. С другой стороны, у вас есть тесная интеграция хозяина приложение в VBA. Глобальные объекты приложения (например, "ActiveDocument") и события доступны без объявления, поэтому программирование для конкретных приложений является прямым.

тем не менее, ничто не мешает вам запускать Word, загружать VBA IDE и решать проблему, которая не имеет никакого отношения к Word вообще. Я не уверен, что есть что-то, что VB 6.0 может сделать (технически), и VBA не может. Я ищу лист сравнения на MSDN, хотя.

VBA означает в Visual Basic для приложений а так же маленький" для приложений " скриптовый брат VB. VBA действительно доступна в Excel, но и в других приложениях office.

с помощью VB можно создать автономное приложение windows, что невозможно с помощью VBA.

однако разработчики могут "встроить" VBA в свои собственные приложения в качестве языка сценариев для автоматизации этих приложений приложения.

Edit: от VBA FAQ:

вопрос: что такое Visual Basic для приложений?

А. Microsoft Visual Basic для приложений (VBA) - это встраиваемая среда программирования, предназначенная для того, чтобы разработчики могли создавать пользовательские решения, используя всю мощь Microsoft Visual Basic. Разработчики, использующие приложения, которые размещают VBA, могут автоматизировать и расширить приложение функциональность, сокращение цикла разработки пользовательских бизнес-решений.

обратите внимание, что VB.NET это даже другой язык, который разделяет синтаксис только с VB.

вот более технический и подробный ответ на старый вопрос: Visual Basic для приложений (VBA) и Visual Basic (pre-.NET) это не просто похожие языки, это то же самое язык. В частности:

  • у них же спецификация: независимое от реализации описание того, что содержит язык и что он означает. Вы можете прочитать его здесь: [MS-VBAL]: спецификация языка VBA
  • они есть же платформа: Они оба компилируются в Microsoft P-Code, который в свою очередь выполняется точно такой же виртуальной машиной, которая реализована в dll msvbvm[x.0].файл DLL.

на старый справочник VB я наткнулся в прошлом году автор (Paul Lomax) даже утверждал, что " VBA " всегда было именем самого языка, независимо от того, используется ли он в автономных приложениях или во встроенных контекстах (таких как MS Офис):

"прежде чем мы пойдем дальше, давайте просто проясним фундаментальный момент. 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.

вы хотите сравнить VBA с VB-Classic (VB6..) или VB.NET?

VBA (Visual Basic для приложений)-это VB-классический язык сценариев, встроенный в приложения Microsoft Office. Я думаю, что его языковые функции похожи на функции VB5 (ему просто не хватает нескольких встроенных функций), но:

у вас есть доступ к документу office, для которого вы написали VBA-скрипт, и поэтому вы можете, например,

  • написать макросы (=автоматизированные процедуры для мало повторяющихся задачи в вашем офисе-работа)
  • определите новые функции для excel-cell-formula
  • процесс управления данными

пример: установите значение excel-ячейки

ActiveSheet.Cells("A1").Value = "Foo"

VBC и-.NET не являются языками сценариев. Вы используете их для написания автономных приложений с отдельными IDE, которые вы не можете сделать с VBA (VBA-скрипты просто "существуют" в Office)

VBA не имеет к этому никакого отношения VB.NET (у них просто похожий синтаксис).

на самом деле VBA может использоваться для компиляции DLL. Выпуски Office 2000 и Office XP для разработчиков включали редактор VBA, который можно было использовать для создания библиотек DLL для использования в качестве надстроек COM.

эта функция была удалена в более поздних версиях (2003 и 2007) с появлением программного обеспечения VSTO (VS Tools for Office), хотя, очевидно, вы все еще можете создавать com-надстройки аналогичным образом без использования VSTO (или VS.Net) с помощью VB6 IDE.

Это VBA. VBA означает в Visual Basic для приложений, и он используется для макросов в документах Office. Он не имеет доступа к VB.NET особенности, так что это больше похоже на модифицированную версию VB6, с надстройками, чтобы иметь возможность работать над документом (например, рабочий лист в VBA для Excel).

VB-это не язык. VB-это программа, которая размещает VBA, так же как Office размещает VBA. VB-это набор объектов приложения, таких как Word и Excel, и пакет форм, как в Office.

таким образом, вы можете писать только код VBA в VB.

PS эта информация находится на INFO на VB вопрос страница для VB.

от VBA Info

VBA 6, было погружено в 1998 и включает в себя множество лицензированных хостов, среди которых: Office 2000 - 2010, AutoCAD, Pi Processbook и автономный Visual Basic 6.0

VBA означает Visual Basic для приложений и его реализацию Visual Basic, предназначенную для использования в офисном пакете.

разница между ними заключается в том, что VBA встроен в документы Office (его функция Office). VB-это ide / язык для разработки приложений.

VB (Visual Basic только до 6.0) является надмножеством VBA (Visual Basic для приложений). Я знаю, что другие вроде бы ускользнули от этого, но я понимаю, что семантика (т. е. словарь) VBA включена в VB6 (за исключением объектов, специфичных для офисных продуктов), поэтому VBA является подмножеством VB6. Синтаксис (т. е. порядок, в котором написаны слова) точно такой же в VBA, как и в VB6, но разница заключается в том, что объекты, доступные для VBA или VB6, являются разные, потому что у них разные цели. В частности, цель VBA заключается в программной автоматизации задач, которые могут быть выполнены в MS Office, в то время как цель VB6 заключается в создании стандартных EXE, ActiveX элементы управления, ActiveX DLL и ActiveX EXEs, которые могут работать автономно или в других программах, таких как MS Office или Windows.

Comments

    Ничего не найдено.