Разница между Visual Basic 6.0 и VBA
Какая разница между двумя. Я всегда думал, что VBA - это несколько "урезанная" версия VB, но когда друг спросил меня на днях, я понятия не имел, каковы же реальные различия.
Кроме того, когда вы используете, например, Excel, это VB или VBA?
9 ответов
Практически для всех целей программирования 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:
В. Что такое Visual Basic для приложений?
О. Microsoft Visual Basic для приложений (VBA) - это встраиваемая среда программирования, позволяющая разработчикам создавать собственные решения с использованием всех возможностей Microsoft Visual Basic. Разработчики, использующие приложения, в которых размещается VBA, могут автоматизировать и расширять функциональность приложения, сокращая цикл разработки пользовательских бизнес-решений.
Обратите внимание, что VB.NET - это даже другой язык, который использует синтаксис только с VB.
Вот более технический и подробный ответ на старый вопрос: Visual Basic для приложений (VBA) и Visual Basic (до.NET) - это не просто похожие языки, это один и тот же язык. В частности:
- Они имеют одну и ту же спецификацию: независимое от реализации описание того, что содержит язык и что оно означает. Вы можете прочитать это здесь: [MS-VBAL]: Спецификация языка VBA
- Они имеют одну и ту же платформу: обе они компилируются в Microsoft P-Code, который, в свою очередь, выполняется точно такой же виртуальной машиной, которая реализована в dll msvbvm[x.0].dll.
В старом справочнике по VB, с которым я столкнулся в прошлом году, автор (Пол Ломакс) даже утверждал, что "VBA" всегда был названием самого языка, независимо от того, используется ли он в автономных приложениях или во встроенных контекстах (таких как MS Office).):
"Прежде чем идти дальше, давайте просто проясним фундаментальный момент. 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-classic, встроенный в приложения Microsoft Office. Я думаю, что его языковые возможности аналогичны VB5 (ему просто не хватает нескольких встроенных функций), но:
У вас есть доступ к офисному документу, для которого вы написали 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 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 6 был выпущен в 1998 году и включает в себя множество лицензированных хостов, среди которых: Office 2000 - 2010, AutoCAD, PI Processbook и автономный Visual Basic 6.0.
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.