VBA — это универсальный объектно-ориентированный языка программирования основных приложений Windows.
Введение
Совокупность приложений Microsoft Office имеет множество возможностей. Известно много различных методов создания, форматирования и управления документами, электронной почтой, базами данных, формами, электронными таблицами и презентациями. Существенным преимуществом программирования на Visual Basic for Applications (VBA) в Office является тот факт, что почти все действия, которые осуществляются при помощи мышки, клавиатуры или диалогового окна, могут быть выполнены при помощи VBA. Если действие может быть выполнено при помощи VBA, значит в дальнейшем оно может легко исполняться хоть сотни раз. Автоматизация повторяющихся задач является одним из наиболее частых использований VBA в Office.
Кроме возможности написания скрипта VBA для оперативного решения повседневных задач, VBA может быть использован для добавления новых функций в приложения Office или формирования запросов и взаимодействия с пользователем документов согласно потребностями в конкретной организации. К примеру, можно сформировать код VBA, который выводит на экран монитора сообщение, напоминающее пользователям о необходимости сохранить документ на заданном сетевом диске при первой попытке его сохранения.
Основы VBA
Программирование на VBA является достаточно эффективным при формировании решений, позволяющих устранить повторяющиеся проблемы форматирования и внесения коррективов. Если появляется изменение, которое необходимо внести более десяти или даже двадцати раз, то оно может быть реализовано при помощи VBA. А когда изменение необходимо вносить несколько сотен раз, тогда определенно нужно рассмотреть только использование VBA. Практически любые изменения форматирования или редактирования, которые выполняются в ручном режиме, могут быть реализованы на VBA.
Часто отдельные действия пользователей с документом или приложением Office обязательны или желательны, но они не являются доступными в стандартном приложении. К примеру, если требуется уведомлять пользователей о необходимости выполнить какие-либо действия при открытии, сохранении или печати документа.
Бывает, что простое копирование и вставка не работают так, как это необходимо, или же эти действия происходят слишком медленно. Имеется возможность использования программирования на VBA для работы с данными в двух и более приложениях Office одновременно, а далее можно изменять содержимое в одном из приложений с учетом содержимого в другом.
Программирование на VBA является мощным решением, но данный подход не всегда может быть оптимальным. Иногда, для достижения поставленных целей, приходится использовать другие методы. Приложения Office имеют множество возможностей, и, вероятно, требуемое решение уже в них предусмотрено. Это означает, что прежде чем начинать программирование на VBA, следует всё-таки подробно изучить возможности Office.
Написание кода на VBA может показаться достаточно сложным и непонятным процессом, но, на самом деле, его основные принципы базируются на использовании повседневной логики и являются вполне доступными. Объекты в приложениях Microsoft Office, сформированные для получения инструкций, являются аналогами кнопок телефона. Когда пользователь нажимает кнопку, телефон выполняет расшифровку команды и включает нужную цифру в набираемую последовательность. При программировании пользователь осуществляет взаимодействие с приложением, путём отправки инструкций разным объектам. Эти объекты могут быть эффективными, но они обладают своими ограничениями. Они способны исполнять лишь то, для чего были созданы, и выполнять только инструкции пользователя.
Разработчики выполняют организацию объектов программирования в виде иерархии, и данная иерархия именуется объектной моделью приложения. В Word, к примеру, имеется объект верхнего уровня Application, содержащий объект Document. Объект Document может содержать объекты Paragraph и так далее. В объектных моделях примерно отображается то, что пользователь может видеть в своём пользовательском интерфейсе. Они могут считаться концептуальной картой приложения и его возможностей.
Уже существующими объектами можно управлять, путём задания их свойств и вызова их методов. Если представить себе, что объект является именем существительным, то свойства могут считаться прилагательными, которые описывают существительное, а методы будут считаться глаголами, приводящими его в действие. Изменение свойства ведёт к модификации определенных характеристик внешнего вида или поведения объекта. Вызов одного из методов объекта способен заставить последний исполнить какое-нибудь действие.
Код VBA способен взаимодействовать с приложениями Office, в которых многие объекты, управляемые кодом, выступают как уже настроенные и работают (к примеру, объекты Application приложения, Worksheet в Excel, Document в Word, Presentation в PowerPoint, объекты Explorer и Folder в Outlook). Используя базовую структуру объектной модели и определённые ключевые свойства объекта Application, которые обеспечивают доступ к его текущему состоянию, возможно осуществить расширение возможностей приложения Office с помощью VBA в Office.
Рассмотрим также использование методов. В Word, к примеру, имеется возможность изменять свойства и вызвать методы текущего документа Word при помощи свойства ActiveDocument объекта Application. Это свойство ActiveDocument способно возвращать ссылку на объект Document, активный в приложении Word. Следует заметить, что слова «возвращает ссылку на» означают «предоставляет доступ к».
В приведенном ниже коде исполняется сохранение активного документа приложения:
VBКопировать
Application.ActiveDocument.Save
Если методу необходимы дополнительные данные, то они именуются параметрами.