Может ли код VBA выполняться вне приложений MS? - PullRequest
4 голосов
/ 17 ноября 2011

Я только начал изучать VBA. Насколько я понял, для написания макросов в MS-Excel используется VBA. Но мне интересно, если это единственная область применения VBA. Может ли он использоваться также, как и многие другие стандартные языки - например, Python.

Если это так, как я могу скомпилировать программу VBA? Должен ли он быть скомпилирован? Как я могу запустить такую ​​программу VBA?

Ответы [ 5 ]

6 голосов
/ 17 ноября 2011

VBA компилируется в p-код.P-код - это промежуточный язык, для выполнения которого требуется дополнительное время выполнения.Эта среда выполнения поддерживается большинством приложений Microsoft Office (включая различные приложения сторонних разработчиков).

Короче говоря, вы не можете написать приложение только для VBA, скомпилированное в .EXE.

2 голосов
/ 30 января 2016

VBA может быть лицензирован, и за пределами офиса существует немало продуктов, использующих VBA. MS больше не выдает новые лицензии. Существуют реализации VBA, отличные от MS, например, из программного обеспечения Summit. В любом случае вам нужен собственный продукт, в котором будет размещен VBA.

2 голосов
/ 18 ноября 2011

Чтобы создать автономную VBA-подобную программу, вам нужно будет использовать Visual Basic 6 или более раннюю версию.Преемником Visual Basic 6, конечно же, является VB.NET, который является совершенно другим животным.

0 голосов
/ 05 апреля 2016

Известным приложением, поддерживающим VBA, является AutoDesk AutoCAD. Он лицензирует среду выполнения VBA и имеет собственную объектную модель.

0 голосов
/ 22 ноября 2011

Если вы не скомпилируете программу заранее (в редакторе Visual Basic нажмите Отладка -> Компилировать), то Microsoft Office скомпилирует ее во время выполнения. Вы действительно должны часто компилировать, потому что именно так вы обнаружите ошибки компиляции.

Способ запуска приложения VBA полностью зависит от того, как вы настроили его для работы. Например, в Excel вы можете использовать событие Workbook_Open для запуска кода при открытии рабочей книги или для создания пользовательских меню, по которым пользователи нажимают для запуска кода. В Access вы можете настроить отображение формы при открытии базы данных или создать макрос autoexec, который будет запускаться при открытии базы данных. и т. д.

Как кто-то другой сказал выше, вы не можете создавать .exe файлы VBA. Код должен выполняться в приложении Microsoft Office.

...