Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SrrazOffpril_Vecher.rtf
Скачиваний:
9
Добавлен:
18.09.2019
Размер:
1.9 Mб
Скачать

4.4. Модификация системы меню на этапе разработки

Модификацией системы меню на этапе разработки считаются любые изменения, вносимые в эту систему до запуска программы на Visual Basic. К ним относятся добавление, удаление, перемещение и восстановление компонентов меню, а также присвоение их свойствам таких значений, которые не изменяются в период выполнения.

4.4.1. Добавление пользовательской строки меню

Если необходим набор меню, существенно отличающихся от тех, что доступны в стандартных строках меню приложения Office, вероятно, придется создать новую строку.

Для создания новой строки меню предназначен метод Add набора CommandBars; аргумент MenuBar определяет, нужно ли отображать создаваемый объект CommandBar как строку меню:

Set cstm = CommandBars.Add(Name := ”Custom Menu _

Bar”, Position := msoBarTop, MenuBar := True, _

Temporary := False)

В Microsoft Excel, Word и Power Point новая строка меню создается только из программы на Visual Basic, а в Microsoft Access можно использовать и диалоговое окно Customize (Настройка).

4.4.2. Добавление меню

Меню можно добавить к любой встроенной или пользовательской строке меню. Поскольку приложения Office показывают разные строки меню в зависимости от контекста, то не исключено, что один и тот же компонент придется включить в несколько строк меню, чтобы сделать его доступным в любом контексте. Добавляя меню, можно указать клавишу доступа к нему, и тогда в его названии будет подчеркнута соответствующая буква.

Добавить меню к объекту CommandBar, представляющему конкретную строку меню, позволяет метод Add набора CommandBarControls. При присвоении аргументу Type значения msoControlPopup, сообщается, что добавляемый элемент управления должен показывать меню. Такие элементы управления называют раскрывающимися (pop-up controls). Аргумент Before определяет позицию нового меню в строке. Чтобы указать название и клавишу доступа для нового меню, необходимо присвоить соответствующее значение свойству Caption объекту CommandBarPopup, возвращаемого методом Add:

Set cstmAccounting = CommandBars(“Worksheet Menu _

Bar”).Controls.Add(Type:=msoControlPopup, Before:=9)

cstmAccounting.Caption = “&Учет”

Символ & в названии меню обозначает, что буква, перед которой он стоит, используется как клавиша доступа к этому меню.

4.4.3. Добавление подменю

Подменю можно добавлять к обычным и контекстным меню, а также к другим подменю. Подменю формируются аналогично меню. Пример:

Set cstmAcctProduct = CommandBars(“Worksheet Menu Bar”). _ Controls (“Учет”).Controls.Add(Type:= msoControlPopup)

cstmAcctProduct.Caption = “&Продукт”

4.4.4. Добавление и группировка команд

Во всех приложениях Office предусмотрена возможность добавления к любому встроенному или пользовательскому меню/подменю, изменять их внешний вид и разбивать на логические группы.

Добавить элемент меню к объекту CommandBar, представляющему конкретное меню или подменю, позволяет метод Add набора CommandBarControls. Чтобы добавить встроенную команду, необходимо указать ее идентификатор в аргументе Id:

Set mySpell = CommandBars(“Custom Menu Bar”). Controls _ (“Quick Tools”). Controls.Add(Id:=2)

Чтобы добавить пользовательскую команду, необходимо создать элемент меню и установить свойство OnAction на процедуру Visual Basic, которая будет запускаться при каждом щелчке этого элемента. Значение msoControlButton аргумента Type метода Add сообщает, что данный элемент меню является командой:

Set databaseItem = CommandBars(“Worksheet Menu _ Bar”).Controls(“File”).Controls.Add(Type:=msoControlButton, _ Before:=3)

With databaseItem

.Caption = “Open Database”

.OnAction = “OpenDatabaseProc”

End With

Visual Basic позволяет программно изменять внешний вид элементов меню, открывая доступ ко множеству свойств этих объектов. Чтобы начать группу в меню (т.е. отчеркнуть линией данный элемент меню), достаточно присвоить значение True свойству BeginGroup объекта CommandBarButton, CommandBarPopup или CommandBarComboBox, который представляет соответствующий элемент меню. Чтобы удалить линию, следует установить это свойство как False. Получить объект, представляющий конкретный элемент меню, позволяет выражение вида Controls(index), где index – название или индекс элемента меню:

Set databaseItem = CommandBars(“Worsheet Menu _ Bar”).Controls(“File”).Controls(“Open Database”)

databaseItem.BeginGroup = True

4.4.5. Создание и модификация контекстных меню

Создать контекстное меню позволяет метод Add набора CommandBars. Присваивая аргументу Position значение msoBarPopup, сообщается, что данный объект CommandBar следует отображать как контекстное меню:

Set cstm = CommandBars.Add(Name:=”Shortcuts1”, _ Position:=msoBarPopup, MenuBar:=False, Temporary:=False)

Модификация пользовательских или встроенных контекстных меню в любом приложении Office осуществляется по тем же принципам, что и добавление элементов в меню. Сначала следует получить объект CommandBar, представляющий контекстное меню, с помощью выражения вида CommandBars(name), где name – имя контекстного меню, а затем добавить или изменить элементы набора Controls, доступного из объекта CommandBar.

4.4.6. Удаление компонентов меню

Visual Basic позволяет удалять встроенные или пользовательские элементы из меню, встроенные или пользовательские элементы из строк меню и пользовательские строки меню. Несмотря на то, что из контекстных меню и стандартных строк меню можно убрать все элементы, сами контекстные меню или стандартные строки меню удалить нельзя. Удаление встроенных компонентов меню помогает подстраивать пользовательский интерфейс программы, написанной на Visual Basic. Например, вполне допустимо убрать из меню встроенную команду и заменить ее своей версией, позволяющей выполнять сугубо специфические операции. Или удалить ряд элементов меню, не используемых в программе, и тем самым упростить ее интерфейс. Модифицированные стандартные строки меню, сами меню и их элементы можно вернуть в исходное положение. Но удаление пользовательских компонентов меню необратимо – восстановление таких компонентов потребует их повторного создания.

Для удаления пользовательской строки меню, пользовательских и встроенных меню или их элементов предназначен метод Delete. Стандартные строки меню и контекстные меню удалять не разрешается:

CommandBars(“Chart Menu Bar”).Controls(“Edit”).Delete

4.4.7. Восстановление встроенных компонентов меню

Восстановить можно любые встроенные компоненты меню: строки, меню, их элементы.

Для восстановления встроенных компонентов системы меню предназначен метод Reset:

CommandBars(“Chart Menu Bar”).Controls(“Edit”).Reset

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]