Яка різниця між ними. Я завжди думав, що VBA є дещо «калікою» версії VB, але коли друг запитав мене днями, я не мав уявлення, які насправді відмінності.
Також, коли ви використовуєте, наприклад, Excel, це VB чи VBA?
Яка різниця між ними. Я завжди думав, що VBA є дещо «калікою» версії VB, але коли друг запитав мене днями, я не мав уявлення, які насправді відмінності.
Також, коли ви використовуєте, наприклад, Excel, це VB чи VBA?
Відповіді:
Майже для всіх цілей програмування 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 для додатків, так і малий брат сценарію "для додатків". VBA дійсно доступний в Excel, але також і в інших офісних додатках.
За допомогою VB можна створити автономну програму Windows, що неможливо з VBA.
Однак розробники можуть "вбудовувати" VBA у власні програми, як мову сценаріїв для автоматизації цих програм.
В. Що таке Visual Basic для додатків?
A. Microsoft Visual Basic для додатків (VBA) - це вбудоване середовище програмування, розроблене для того, щоб розробники могли створювати власні рішення, використовуючи всю потужність Microsoft Visual Basic. Розробники, що використовують програми, що розміщують VBA, можуть автоматизувати та розширити функціональність додатків, скорочуючи цикл розробки спеціальних бізнес-рішень.
Зауважте, що VB.NET - це ще одна мова, яка розділяє лише синтаксис з VB.
Ось більш технічний і ретельний відповідь на старе питання: Visual Basic для додатків (VBA) і Visual Basic (pre-.NET) - це не просто подібні мови, вони однакова мова. Конкретно:
У старому довіднику 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) з новою VM (тепер якраз називається VBA7.dll), починаючи з MS Office 2010 року. Єдина основна відмінність полягає в тому, що VBA7 має як 32- 64-розрядна версія та має декілька вдосконалень для вирішення відмінностей між ними, зокрема стосовно зовнішніх викликів API.
Ви хочете порівняти VBA з VB-Classic (VB6 ..) або VB.NET?
VBA (Visual Basic for Applications) - це сценарій на основі vb-класики, вбудований у додатки Microsoft Office. Я думаю, що мовні особливості схожі на VB5 (йому просто бракує декількох вбудованих функцій), але:
У вас є доступ до офісного документа, для якого ви написали VBA-скрипт, і ви можете, наприклад,
Приклад: Встановіть значення комірки excel
ActiveSheet.Cells("A1").Value = "Foo"
VBC і -.NET - це не мови для скриптів. Ви використовуєте їх для написання автономних додатків з окремими IDE, які ви не можете зробити з VBA (сценарії VBA просто "існують" в Office)
VBA не має нічого спільного з VB.NET (вони просто мають подібний синтаксис).
Насправді VBA можна використовувати для компіляції DLL. Видання для розробників Office 2000 та Office XP включали редактор VBA, який можна використовувати для створення DLL-файлів для використання як COM Addins.
Ця функціональність була видалена в пізніших версіях (2003 та 2007 рр.) З появою програмного забезпечення VSTO (VS Tools for Office), хоча, очевидно, ви все ще можете створити COM-добавки подібним чином без використання VSTO (або VS.Net) за допомогою VB6 IDE.
Це VBA. VBA означає Visual Basic для додатків , і він використовується для макросів в документах Office. У нього немає доступу до функцій VB.NET, тому він більше схожий на модифіковану версію VB6, з додатками, щоб мати можливість працювати над документом (як Workheet у VBA для Excel).
VB - це не мова . VB - програма, яка розміщує VBA так само, як Office приймає VBA. VB - це набір об’єктів App, як і Word та Excel, і пакет форм, як і в Office.
Таким чином, ви можете записувати код VBA лише в VB.
PS ця інформація знаходиться на INFO вкладці на питання VB сторінки для VB.
З інформації про VBA
VBA 6 постачався в 1998 році і включає безліч ліцензованих хостів, серед яких Office 2000 - 2010, AutoCAD, PI Processbook та автономна Visual Basic 6.0
VB (Visual Basic лише до 6,0) - це набір VBA (Visual Basic для додатків). Я знаю, що інші ухилялися від цього, але я розумію, що семантика (тобто словниковий запас) VBA включена в VB6 (за винятком об'єктів, характерних для продуктів Office), тому VBA є підмножиною VB6. Синтаксис (тобто порядок написання слів) в VBA точно такий же, як і в VB6, але різниця полягає в тому, що об'єкти, доступні для VBA або VB6, різні, оскільки вони мають різні цілі. Зокрема, мета VBA - це автоматизовано автоматизувати завдання, які можна виконувати в MS Office, тоді як мета VB6 - створити стандартні EXE, ActiveX управління, DLL ActiveX і ActiveX EXE, які можуть працювати як окремо, так і в інших програмах, таких як MS Office або Windows.