Основы офисного программирования и язык VBA

http://artdiscount.com.ua/ широкоформатная Печать на холсте одесса.          

Пример построения документа с собственным меню


Обобщим приведенные сведения по построению меню и создадим документ, в котором все встроенные меню будут отключены и создано собственное иерархическое меню. На верхнем уровне меню будет состоять из одного пункта, оно будет включать два подменю, каждое из которых содержит по одной команде. Приведем процедуру, реализующую создание такого меню:

Пример 11.1.

(html, txt)

Заметьте, вначале, используя свойство Enabled, были отключены все панели. Затем было сформировано головное меню, содержащее всего один пункт, с двумя подменю и командами. Обратите внимание, перед добавлением нового пункта, обычно делается проверка, а не был ли он уже добавлен. Подобная проверка позволяет избежать ошибок, возникающих при попытках добавить уже существующий пункт или удалить несуществующий. Чтобы наш пример был законченным, приведем процедуры, вызываемые в ответ на выбор команд меню Накладная и Счет:

Public Sub Invoice() MsgBox ("Накладная!") End Sub

Public Sub Account() MsgBox ("Счет!") End Sub

Вот как выглядит документ по завершении работы процедуры CreateCustomMenu:


Рис. 11.4.  Документ, имеющий собственное меню

В заключение, приведем процедуру, восстанавливающую стандартное окружение:

Public Sub ResetMainMenu() Dim CstmBar As CommandBar 'Включаем все панели For Each CstmBar In CommandBars CstmBar.Enabled = True Next CstmBar

Set CstmBar = CommandBars.Item("Menu Bar") CstmBar.Visible = True End Sub


Затем было сформировано головное меню, содержащее всего один пункт, с двумя подменю и командами. Обратите внимание, перед добавлением нового пункта, обычно делается проверка, а не был ли он уже добавлен. Подобная проверка позволяет избежать ошибок, возникающих при попытках добавить уже существующий пункт или удалить несуществующий. Чтобы наш пример был законченным, приведем процедуры, вызываемые в ответ на выбор команд меню Накладная и Счет:

Public Sub Invoice() MsgBox ("Накладная!") End Sub

Public Sub Account() MsgBox ("Счет!") End Sub

Вот как выглядит документ по завершении работы процедуры CreateCustomMenu:


Рис. 11.4.  Документ, имеющий собственное меню

В заключение, приведем процедуру, восстанавливающую стандартное окружение:

Public Sub ResetMainMenu() Dim CstmBar As CommandBar 'Включаем все панели For Each CstmBar In CommandBars CstmBar.Enabled = True Next CstmBar

Set CstmBar = CommandBars.Item("Menu Bar") CstmBar.Visible = True End Sub


Содержание раздела