- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Офисное программирование - Ирина Фризен
Шрифт:
Интервал:
Закладка:
Для удаления компонента меню надо в диалоговом окне «Настройка» сделать видимым модифицируемое меню, щелкнуть правой кнопкой мыши удаляемый элемент и в появившемся меню выбрать команду Удалить. Чтобы удалить целиком пользовательскую панель меню, нужно перейти на вкладку Панели инструментов диалогового окна «Настройка» и, выбрав в списке Панели инструментов имя удаляемой панели меню, щелкнуть кнопку Удалить.
Восстановление встроенных компонентов меню
Восстановить можно только встроенный элемент меню, который был ранее удален. Как и другие действия над меню, это делается в окне «Настройка». Если при этом восстановится заголовок выпадающего меню или подменю, то вместе с ним восстановятся само меню и все его потомки.
В диалоговом окне «Настройка» нужно сделать видимым модифицируемое меню. Затем, щелкнув правой кнопкой мыши заголовок выпадающего меню или подменю, которое нужно восстановить, выберите в появившемся меню команду Сброс.
Чтобы восстановить встроенную панель меню, перейдите на вкладку Панели инструментов окна «Настройка», выберите в списке Панели инструментов имя восстанавливаемой панели меню и щелкните кнопку Сброс.
Создание меню с помощью VBAНовое меню в Excel, Word или PowerPoint обычно создается средствами VBA, поскольку в этих приложениях диалоговое окно «Настройка» не содержит кнопки Свойства. Новое меню создается методом Add коллекции CommandBars (Панели команд):
Выражение. 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 в меню Проверки из панели Головное меню:
Set mySpell = CommandBars(«Головное меню»).Соntrols(«Проверки»)_.Controls.Add(Id:=2)
Пример 61. Создать документ, в котором будут отключены все встроенные меню и создано собственное иерархическое меню. На верхнем уровне меню будет состоять из одного пункта. Оно будет включать два подменю, каждое из которых содержит по одной команде. Для реализации данных условий создаем простую форму, содержащую две кнопки: Создать и Отмена (рис. 127). Первая кнопка отключает все панели открытого документа и создает собственное меню (рис. 127), вторая кнопка возвращает все панели на место (рис. 128).
Технология выполнения
1. Активизируйте приложение Word и создайте документ.
2. Перейдите в редактор VBA и создайте форму.
3. Создайте процедуру создания собственной панели.
Option Explicit
Public Sub CreateCustomMenu()
Dim CstmBar As CommandBar
Dim CstmPopUpi As CommandBarPopup, CstmPopUp2 As CommandBarPopup
Dim CstmCtrl As CommandBarControl
Dim Exist As Boolean
'Выключаем все панели
For Each CstmBar In CommandBars
CstmBar.Enabled = False
Next CstmBar
'Создаем, включаем и делаем видимой собственную панель
Exist = False
For Each CstmBar In CommandBars
If CstmBar.Name = «Головное меню» Then
Exist = True
Exit For
End If
Next CstmBar
If Not Exist Then
Set CstmBar = CommandBars.Add(Name:="Головнoe меню", Position:=msoBarTop, MenuBar:=True, Temporary:=False)
End If
CstmBar.Enabled = True
CstmBar.Visible = True
'Добавляем меню на панель
Exist = False
For Each CstmCtrl In CstmBar.Controls
If CstmCtrl.Caption = «&Ввод документов» Then
Exist = True
Exit For
End If
Next CstmCtrl
If Not Exist Then
Set CstmCtrl = CstmBar.Controls.Add(Type:=msoControlPopup, Before:=1)
CstmCtrl.Caption = «&Ввод документов»
'Добавляем две команды подменю
Set CstmPopUpi =
CstmCtrl.Controls.Add(Type:=msoControlPopup)
CstmPopUpi.Caption = « о движении товаров»
Set CstmPopUp2 =
CstmCtrl.Controls.Add(Type:=msoControlPopup)
CstmPopUp2.Caption = « финансовых»
'Добавляем команду в каждое подменю
Set CstmCtrl =
CstmPopUpi.Controls.Add(Type:=msoControlButton)
CstmCtrl.Caption = «Накладная»
CstmCtrl.OnAction = «Module1.Invoice»
Set CstmCtrl =
CstmPopUp2.Controls.Add(Type:=msoControlButton)
CstmCtrl.Caption = «Счет»
CstmCtrl.OnAction = «Module1.Account»
End If
End Sub
Пояснения к процедуре. Вначале, используя свойство Enabled, были отключены все панели. Затем было сформировано головное меню с двумя подменю и командами, содержащее всего один пункт. Обратите внимание: перед добавлением нового пункта обычно проверяется, а не был ли он уже добавлен. Подобная проверка позволяет избежать ошибок, возникающих при попытках добавить уже существующий пункт или удалить несуществующий.
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
5. Пропишите обработчик кнопки «Создать».
Private Sub CommandButton1_Click()
Call CreateCustomMenu
End Sub
6. Пропишите обработчик кнопки «Отмена», восстанавливающей стандартное окружение.
Private Sub CommandButton2_Click()
Call ResetMainMenu
End Sub
7. Чтобы пример был законченным, приведем процедуры, вызываемые в ответ на выбор команд меню Накладная и Счет:
Public Sub Invoice()
MsgBox («Накладная!»)
End Sub
Public Sub Account()
MsgBox («Счет!»)
End Sub
8. Откомпилируйте программу, запустите форму на выполнение.
Рис. 127. Форма примера 61 в рабочем режиме. Результат работы кнопки Создать

