|
Создание объектов CommandBar
Семейство CommandBars используется не
только для вывода имен строк меню
Excel. С помощью данного семейства
можно создать объект CommandBar. С любой строкой меню
работают, используя объект CommandBar. Чтобы редактировать
существующую строку меню или
разработать новую, требуется
сначала создать этот объект.
Для создания
объекта CommandBar используется
метод Add семейства CommandBars. В следующем выражении
вместо имени CommandBarsCollectionObject необходимо
подставить фактическое имя объекта
семейства CommandBars:
CommandBarObject
= CommandBarsCollectionObject.Add _
(Name, Position,
MenuBar, Temporary)
Каждый из
параметров метода Add является
необязательным. Если все аргументы
опущены, то можно также не
указывать открывающую и
закрывающую скобки.
Поскольку
параметры являются
дополнительными, необходимо
указывать их имена. Например, при
компиляции следующей инструкции
возникает ошибка, потому что VBA не
может идентифицировать параметры:
MyCommandBar
= CommandBars.Add ("MyBar",2, True, False)
Данную инструкцию
требуется изменить следующим
образом:
MyCornmandBar
= CommandBars.Add (Name:= "MyBar", _
Position:=msoBarTop, MenuBar:=True,
Temporary:=False)
В табл. 1 и 2
описываются параметры,
используемые в методе Add:
Таблица
1. Параметры метода CommandBars.Add
Параметр |
Описание |
Name |
Задает имя строки
меню. Имя используется для
указания требуемой строки меню
в программе VBA |
Position |
Задает тип
добавляемой строки меню.
Данный аргумент имеет
значения, приведенные в табл.2 |
MenuBar |
Указывает,
заменяет ли новая строка меню
активную строку меню основного
приложения. Если значение
данного параметра равно True, то строка
главного меню заменяется
пользовательской строкой. В
противном случае, новая строка
выводится в позиции, которая
определяется значением
параметра Position |
Temporary |
Определяет,
удаляется ли строка меню после
закрытия основного приложения.
Если значение данного
параметра равно False, то строка меню
остается, пока пользователь не
выберет команду Вид\Панели инструментов\Настройка\Сброс (View\ToolbarsCustomize\Reset), или не удалит ее с
помощью программы VBA |
!
Примечание
В
настоящей главе описывается, как
настроить и создать строки меню
автоматически, используя
программу VBA. Пользователь может
выполнить данные операции и
вручную с помощью диалогового
окна Настройка (Customize Toolbars),
которое выводится при выборе
команды Вид\Панели инструментов\Настройка. Если
нажать кнопку Сброс, то
можно восстановить исходный
формат и содержимое любой строки
меню.
Tаблица
2. Значение параметра Position
Константа |
Значение |
Описание |
msoBarLeft |
0 |
Устанавливает
привязку строки меню к левой
границе окна основного
приложения |
msoBarRight |
2 |
Устанавливает
привязку строки меню к правой
границе окна основного
приложения |
msoBarTop |
1 |
Устанавливает
привязку строки меню к верхней
границе окна основного
приложения |
msoBarBottom |
3 |
Устанавливает
привязку строки меню к нижней
границе окна основного
приложения |
msoBarFloating |
4 |
Задает свободное
размещение строки меню на
экране |
msoBarPopup |
5 |
Указывает, что
строка меню является
контекстным меню (см. ниже
раздел "Программирование
контекстных меню") |
!
Примечание
Свойство
Position играет
важную роль при задании типа
создаваемой строки меню.
Например, значение msoBarFloating
используется для создания панели
инструментов, а значение msoBarTop - для
добавления меню. Ниже приводится
более подробная информация о
создании панелей инструментов,
контекстных и простых меню.
В программе 1
показано использование метода Add. После выполнения
макроса новая строка меню (с именем
"NewBar") заменяет текущую строку
и удаляется только при закрытии
основного приложения. Поэтому,
чтобы восстановить прежнее меню,
необходимо закрыть основное
приложение и перезапустить его.
Программа
1. Создание объекта CommandBar
Sub
CreateCommandBar
Dim MyCommandBar as CommandBar
Set MyCommandBar = CommandBars.Add _
(Name:="NewBar",Position:= soBarTop,
MenuBar:== True, Temporary:= True)
MyCommandBar.Visible = True
End Sub
Задание
свойств CommandBar. После создания
строки меню требуется задать ее
свойства. Строке меню можно
приписать различные
характеристики как при создании,
так и после. В табл. 3 приводится
описание некоторых свойств объекта
CommandBar, а затем примеры
программ, показывающие
использование этих свойств.
Свойство |
Описание |
Enabled |
Определяет
возможность доступа к строке
меню. Если значение данного
свойства равно True, то строка меню
появляется в списке доступных
меню |
Visible |
Указывает,
является ли строка меню
видимой |
Protection |
Задает защиту
строки меню от изменений
пользователем. Данному
свойству можно присвоить
значение или сумму значений
следующих констант: msoBarNoProtection, msoBarNoCustomize,
msoBarNoResize, msoBarNoMove, msoBarNoChangeVisible,
msoBarNoChangeDock, msoBarNoVerticalDock,
msoBarNoHorizontalDock. |
Программа 2
является примером использования
свойств, описанных в
вышеприведенной таблице. После
выполнения макроса создается
строка меню с именем "NewMainMenu",
которая заменяет текущее меню
основного приложения. Значение
свойства Protection задает запрет на
изменение и перемещение строки
меню, а значение параметра Temporary - удаление созданной
строки при закрытии основного
приложения.
Программа
2. Создание строки меню
Public
Sub CreateMenuCommandBar()
Dim NewBar As CommandBar
Dim lng_protection As Long
Set NewBar =
CommandBars.Add("NewMainMenu", _
Position :=msoBarTop, MenuBar:=True,
Temporary:=True)
lng_protection = (msoBarNoCustomize +
msoBarNoResize + msoBarNoMove)
With NewBar
.Protection = lng_protection
.Visible = True
End With
End Sub
Для комментария :
kadan@grsu.grodno.by
|
|