Разница между Visual Basic 6.0 и VBA
в чем разница между двумя. Я всегда думал, что VBA-это несколько "искалеченная" версия VB, но когда друг спросил меня на днях, я понятия не имел, каковы фактические различия.
кроме того, когда вы используете, например, Excel, это VB или VBA ?
9 ответов
почти для всех целей программирования VBA и VB 6.0-одно и то же.
VBA не может скомпилировать программу в исполняемый двоичный файл. Вам всегда будет нужен хост (например, файл Word и MS Word), чтобы содержать и выполнять ваш проект. Вы также не сможете создавать com-библиотеки с 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 в свои собственные приложения в качестве языка сценариев для автоматизации этих приложений приложения.
редактировать: от VBA FAQ:
вопрос: что такое Visual Basic для приложений?
А. Microsoft Visual Basic for Applications (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 я наткнулся в прошлом году автор (Пол Ломакс) даже утверждал, что " 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.
вы хотите сравнить VBA с VB-Classic (VB6..) или VB.NET?
VBA (Visual Basic для приложений)-это VB-классический язык сценариев, встроенный в приложения Microsoft Office. Я думаю, что его языковые функции похожи на функции VB5 (ему просто не хватает нескольких встроенных функций), но:
у вас есть доступ к документу office, для которого вы написали VBA-скрипт, и поэтому вы можете, например,
- написать макросы (=автоматические процедуры для небольших повторяющихся задачи в вашем офисе-работа)
- определение новых функций для excel-cell-formula
- обработка данных office
пример: задайте значение ячейки excel
ActiveSheet.Cells("A1").Value = "Foo"
VBC и-.NET не являются языками сценариев. Вы используете их для написания автономных приложений с отдельными IDE, которые вы не можете сделать с VBA (VBA-скрипты просто "существуют" в Office)
VBA не имеет ничего общего с VB.NET (у них просто похожий синтаксис).
на самом деле VBA можно использовать для компиляции DLL. Выпуски Office 2000 и Office XP Developer включали редактор 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, предназначенная для использования в Office Suite.
разница между ними заключается в том, что 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 и ActiveX EXEs, которые могут работать автономно или в других программах, таких как MS Office или Windows.