Глава 14. VBA для Office.

Глава 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