~ Программирование Помощника по 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, с честью справляются с подобными задачами.
Но если вам необходимо изменить внешний вид панели инструментов или ее реакцию на действия пользователя буквально на лету вследствие возникновения определенных условий.
VBA - именно то, что вам нужно.
Например, предположим, что вам нужно создать кнопку, которая позволит немедленно отправлять копию открытого документа Word определенному человеку или только при работе с документом определенного типа. Кнопка должна срабатывать только в определенных условиях.
Если вы знаете, как написать VBA-код, который сможет определять тип открытого документа, все, что вам необходимо,-- это присвоить свойству Enabled значение True или False в той или иной ситуации.
Работа с определенными кнопками
Если вам необходимо настроить параметры определенной кнопки, вам необходимо идентифицировать эту кнопку в VBA-коде.
Вы можете указать кнопку одним из следующих способов.
Читать дальше