Офисное программирование
Добавить в закладки К обложке
- Введение - Страница 1
- Часть IОсноные седения о программироании на VBA - Страница 2
- 1.2. Редактор VBA. Первое знакомство - Страница 7
- 1.3. Изменение порядка выполнения операторов - Страница 9
- Глава 2Объект UserForm - Страница 14
- 2.2. Использование форм - Страница 16
- Глава 3Массивы, процедуры, функции - Страница 20
- 3.2. Работа с различными типами данных - Страница 24
- 3.3. Процедуры и функции VBA - Страница 26
- Глава 4Создание VBA-программ - Страница 31
- 4.2. Элементы управления ComboBox, OptionButton и Frame - Страница 34
- 4.3. Элементы управления MultiPage, ScrollBar, SpinButton[2] - Страница 37
- 4.4. Объект DataObject[3] - Страница 41
- Часть IIПрограммирование на VBA в Word - Страница 44
- 5.2. Форматирование документа - Страница 48
- Глава 6Автоматизация стандартных документов - Страница 52
- 6.2. Создание и автоматическое заполнение бланков стандартных документов - Страница 55
- Часть IIIПрограммирование на VBA в Excel - Страница 58
- 7.2. Использование возможностей VBA при непосредственных расчетах - Страница 63
- 7.3. Финансовые функции - Страница 67
- Глава 8Построение диаграмм средстами VBA - Страница 69
- 8.2. Построение круговых диаграмм и гистограмм - Страница 72
- Глава 9Базы данных в Excel - Страница 73
- 9.2. Конструирование пользовательского интерфейса - Страница 76
- Глава 10Создание собственного головного меню[9] - Страница 78
- Литература - Страница 83
Выражение. Add(Name, Position, MenuBar, Temporary),
где выражение – обязательное выражение, возвращающее объект CommandBars, а все параметры в скобках необязательны. Name задает имя нового меню;
Position определяет его положение (значения-константы msoBarLeft, msoBarTop, msoBarRight, msoBarButtom определяют положение меню слева, вверху, справа или внизу окна, msoBarFloating задает «плавающее» меню, msoBarPopup указывает, что новое меню будет всплывающим).
Значение True параметра MenuBar указывает на то, что новое меню заменит текущую активную строку меню (по умолчанию – False). Значение True параметра Temporary означает, что новое меню будет временным и исчезнет, когда закроется содержащее его приложение (по умолчанию – False).
В следующем примере создается новое меню «Головное меню»:
Dim CstmBar As CommandBar
Set CstmBar = CommandBars.Add(Name:="Головнoe меню",
Position:=msoBarTop, MenuBar:=True, Temporary:=False)
Добавление выпадающих меню
Чтобы добавить новое меню программно, надо использовать метод Add коллекции CommandBarControls, применив его к объекту типа CommandBar, который представляет панель нашего меню. Данный метод позволяет помещать на панель кнопки (CommandBarButton), комбинированные списки (CommandBarComboBox) и выпадающие меню (ComandBarPopup). Вызов метода имеет вид:
выражение. Add(Type, Id, Parameter, Before, Temporary),
где Выражение должно возвратить объект типа CommandBarsControl.
Параметры в скобках необязательны. Параметр Туре (Тип) задает тип добавляемого объекта. Его значение msoControlPopup указывает, что добавляемый управляющий элемент – выпадающее меню. Для пользовательских меню параметры Id и Parameter можно опустить. Значение аргумента Before – число, указывающее положение нового элемента в последовательности элементов панели: если его нет, элемент помещается в конец. Определить имя и ключ быстрого доступа к созданному меню можно, задав значение свойства Caption.
Пример добавления выпадающего меню Ввод документов панели Головное меню с ключом быстрого доступа «В»:
Dim CstmCtrl As CommandBarControl
Set CstmCtrl = CstmBar.Controls.Add(Type:=msoControlPopup,
Before:=1)
CstmCtrl.Caption = «&Ввод документов»
Чтобы добавить новое подменю программно, к объекту, представляющему родительское выпадающее меню, нужно применить метод Add коллекции CommandBarControls. В качестве параметра Туре (Тип) надо использовать значение msoControlPopup.
В следующем примере в конец выпадающего меню Ввод документов, расположенного на панели меню Головное меню, добавляется подменю «о движении товаров»:
Dim CstmPopUpi As CommandBarPopup
Set CstmPopUpi =
stmCtrl.Controls.Add(Type:=msoControlPopup)
CstmPopUpi.Caption = «о движении товаров»
Добавление команд
Добавить новую команду в меню можно, применив метод Add коллекции CommandBarControls к объекту, представляющему изменяемое меню. Для того чтобы добавить собственную команду, вставьте ее имя в меню, а затем в качестве значения свойства OnAction задайте имя VBA-процедуры, которая должна вызываться при выборе данной команды. В качестве значения аргумента Туре (Тип) метода Add укажите msoControlButton, означающее, что вставляемый в меню элемент будет командой. Добавим команду «Накладная» в выпадающее меню Ввод документов из панели Головное меню. Выбор этой команды запускает процедуру Invoice:
Set CstmCtrl = CstmPopUpi.Controls.Add(Type:=msoControlButton)
CstmCtrl.Caption = «Накладная»
CstmCtrl.OnAction = «Module1.Invoice»
Метод Add позволяет вставлять в меню и встроенные команды. Для этого при вызове задайте значение параметра Id, равное числовому идентификатору данной команды в Office. Поскольку в Office 2000 количество команд доходит до 4000, в табл. 22 приведем основные команды редактирования.
Таблица 22
Фрагмент таблицы идентификаторов встроенных команд меню
Пример добавления команды проверки правописания Spelling в меню Проверки из панели Головное меню: