Каммингс Стив
Шрифт:
В главах 15 и 16 мы детально остановится на программировании для Word u.Excel соответственно наиболее широко используемых VBA-приложений. В каждой из глав подробно рассматриваются важные средства и приемы программирования для работы с документами и их содержимым с помощью VBA.
Материал остальных глав настоящей части представляет , интерес для всех VBA -программистов, независимо от того, в каком приложении они работают.
В главе 17 мы поговорим о программировании для баз данных на VBA. В главе 18 мы рассмотрим не очень удобные, но более мощные не объектно-ориентированные способы работы с файлами, чем объектно-ориентированные способы, которые рассматриваются нами в главе 20, И наконец, в главе 19 я предлагаю вам расширенно рассмотреть VBA-формы.
Глава 14. VBA для Office.
В этой главе ...
~ Отображение пользовательских панелей инструментов и кнопок с помощью VBA
~ Программирование Помощника по Office
~ Сохранение значений переменных на диске
VBA полезен для создания полноценных приложений не меньше, чем небольших подручных средств. В настоящей главе я познакомлю вас с некоторыми приемами, которые позволят вам профессионально работать с приложениями Office.
Контроль над панелями инструментов и меню
Приложения Office позволяют пользователям настраивать панели инструментов, строки меню и контекстные меню, обходясь безо всякого программирования, поэтому для решения подобных задач в VBA необходимости нет. Однако, если вы хотите, чтобы окно VBA программы содержало определенный набор панелей инструментов или меню либо вам необходимо внести изменения в панели инструментов или меню при, например, запущенной программе, вам нужно написать программный код, который позволял бы в определенных условиях включать или отключать команды меню.
В последних версиях Office граница между панелями инструментов и меню стала исчезать: вы можете добавлять кнопки в меню или раскрывающиеся списка на любую панель инструментов. В VBA главная строка меню и остальные панели инструментов относятся к коллекции объектов CommandBars. Конечно же, каждая панель инструментов является отдельным объектом CommandBar.
Для работы с определенной панелью инструментов вам следует указать ее имя в коллекции CommandBars. Например, приведенный ниже фрагмент кода обращается к панели инструментов под названием VBA4Dummies:
Dim tbar As Toolbar
Set tbar = CommandBars("VBA4Dummies")
Отображение и размещение панелей инструментов
Для отображения или сокрытия панели инструментов предназначено свойство Visible. Приведенный ниже фрагмент кода отображает панель инструментов под названием VBA4 Dummies.
CommandBars("VBA4Dummies").Visible = True
Для сокрытия панели инструментов свойству Visible следует присвоить значение False.
Для переключения состояния отображения панели инструментов - отображения скрытой панели инструментов, и наоборот, следует использовать оператор Not (см. главу 11).
CommandBars("ReBar").Visible = _
Not (CommandBars("ReBar").Visible)
Если вы хотите изменить место расположения отображенной панели инструментов на экране, используйте такие ее свойства, как Position, RowIndex и Left. При необходимости используйте свойство Protection, чтобы исключить возможность перемещения панели инструментов пользователями. Подробные сведения о каждом из этих свойств приведены в следующей таблице.
Свойство | Назначение | Доступные настройки |
Position | Определение того, прикреплена ли панель задач, и если так, определяется сторона, к которой она прикреплена | MsoBarFloating (для неприкрепленной панели инструментов), msoBarTop, msoBarLeft, msoBarRight |
RowIndex | Определение порядка закрепления панели инструментов по отношению к другим панелям инструментов, прикрепленным к той же стороне | Целое число больше 0; msoBar RowFist или msoBar RowLast (длязакрепления панели инструментов первой или последней по порядку соответственно) |
Left | Определяет расстояние от левого края панели инструментов до левого края экрана | |
Protection | Определяет способ защиты панели инструментов от действий пользователей | msoBarNoProtection, msoBarNoCustoraize, msoBarNoResize. msoBarNoMove, msoBarNoChangeVisible, msoBarNoChangeDock, msoBarNoVerticalDock. msoBarNoHorizonalDock |
Настройка кнопок панелей инструментов
Вам не потребуется VBA для создания панели инструментов, содержащей необходимый для вашей работы набор кнопок, - мощные средства настройки методом drag-and-drop, представленные в любом приложении Office, с честью справляются с подобными задачами.
Но если вам необходимо изменить внешний вид панели инструментов или ее реакцию на действия пользователя буквально на лету вследствие возникновения определенных условий.