Описание тега vba
Visual Basic для приложений (VBA) - это язык программирования, управляемый событиями, который был впервые представлен Microsoft в 1993 году, чтобы дать Excel 5.0 более надежный объектно-ориентированный язык для написания макросов и автоматизации использования Excel. Он был представлен в Access, PowerPoint и Word в Office 97. Язык и среда его выполнения быстро стали зрелыми и начали лицензироваться и использоваться в продуктах, выходящих за рамки приложений Microsoft Office.
Использование тегов
- VBA не эквивалентен VB.NET; если вы работаете в Visual Studio, используйте vb.net.
- Если ваш вопрос касается программирования Excel, Access, Word, Outlook, PowerPoint или Project, также используйте соответствующий тег приложения: excel, ms-access, ms-word, outlook, powerpoint или microsoft-project.
- Хотя код, написанный на VBA, обычно называется "макросом", тег макросане следует использовать для общих вопросов VBA. Пожалуйста, посетите страницу записи макросов вики для получения дополнительной информации о правильном использовании.
- Если ваш код предназначен для приложения Office ( Excel, Word, Outlook, PowerPoint и т. Д.), Пометьте его одним из тегов для конкретного приложения, указанных ниже, в дополнение к этому.
- Ожидается, что вопросы с меткой vba должны либо содержать код VBA, либо спрашивать, как использовать конкретный код VBA.
Обзор
VBA является производным от классического языка программирования Visual Basic (версия 5.0 и более поздняя 6.0) и использует подмножество функциональных возможностей этого языка. Однако его выполнение полностью зависит от интерфейса хост-приложения и не может работать за пределами этой среды. В отличие от классического VB, VBA не может создавать независимые исполняемые файлы или библиотеки DLL. Библиотеки Visual Basic для взаимодействия с Windows и ее службами (такими как принтеры или буфер обмена) не являются частью VBA.
VBA 6 был выпущен в 1998 году и включает множество лицензированных хостов, среди которых: Office 2000–2007, AutoCAD и PI Processbook. Код VBA 6 будет одинаково хорошо работать на любом хосте, хотя базовые объекты, присущие каждому хосту, будут различаться. Хотя VBA по-прежнему встроен в приложения Microsoft Office, его "родительский", классический VB, перестал быть неотъемлемой частью платформы разработки Microsoft, когда Visual Basic .NET поставлялся с первой версией.NET framework в 2002 году.
VBA редко обновлялся, поскольку в него были включены только новые функции, которые позволяют ему оставаться совместимым с 64-разрядными версиями Windows и Office. Его объектные модели для конкретных приложений регулярно дополняются для поддержки новых функций, добавляемых в основные приложения Office.VBA 7 был выпущен в 2010 году для новой 64-разрядной версии Microsoft Office, выпущенной в 2010 году. В VBA 7 внесено несколько важных изменений, которые отличают его от VBA 6, а именно совместимость с 32-разрядной и 64-разрядной версиями. Офиса. Приложения, использующие VBA 7, должны решать проблемы как с обратной совместимостью, так и с 64-разрядной безопасностью.
В некоторых начальных выпусках приложений Office редактор VBA (VBE) недоступен, и программирование на VBA невозможно. Поддержка VBA также может быть заблокирована (не установлена) сетевыми администраторами в качестве меры безопасности.
Он был удален из Office для Mac 2008, однако Microsoft вернула VBA в Office 2011. Microsoft постоянно задавали вопросы о том, будет ли VBA полностью удален из Office, и неоднократно отвечали "нет", основной причиной являлось большое количество унаследованный код в использовании.
Это по-прежнему остается в силе даже после появления API JavaScript в Office 2013, хотя VBA поддерживается только в версиях Office для настольных приложений.
VBA наследует большую часть своего синтаксиса от языка программирования BASIC, где особенности языка, как правило, явно выражаются словами, например If ... Then ... End If
, Function ... End Function
. Он также имеет множество объектно-ориентированных функций, таких как классы и интерфейсы, и даже имеет некоторые динамические функции вVariant
а также Object
типы. Ниже приведена простая подпрограмма, которая генерирует окно сообщения и выводит сообщение в окно немедленного выполнения:
Sub HelloWorld()
' This is a comment
Dim message As String
message = "Hello World"
MsgBox message
Debug.Print "I just made a message box that says """ & message & """!"
End Sub
Связанные теги:
Часто задаваемые вопросы:
- Как избежать.Activate и.Select в VBA
- Разница между Visual Basic и VBA
- Как заставить VBA/Access требовать определения переменных
- Как я могу отправить HTTP-запрос на сервер из Excel с помощью VBA?
- Создавайте строки SQL в Access/VBA
- Различия между VBA 6 и VBA 7
Ресурсы для начинающих:
Ссылки:
Дополнительная литература:
- Руководство разработчика VBA, 2-е издание, Getz & Gilbert
- Профессиональная разработка в Excel, 2-е издание