цКЮБЮ
8.
оПНЦПЮЛЛХПНБЮМХЕ
ОЮМЕКХ ХМЯРПСЛЕМРНБ
оПНЦПЮЛЛХПНБЮМХЕ
ОЮМЕКХ ХМЯРПСЛЕМРНБ ОНГБНКЪЕР ЯНГДЮБЮРЭ ДКЪ ОПХКНФЕМХИ ОНКЭГНБЮРЕКЪ ЯНАЯРБЕММШИ
ХМРЕПТЕИЯ, МЮОПХЛЕП, ХЯЙКЧВХРЭ ХГ ЛЕМЧ Х ОЮМЕКЕИ ХМЯРПСЛЕМРНБ НЯМНБМНЦН ОПХКНФЕМХЪ
ЙМНОЙХ Х ЙНЛЮМДШ, МЕ НРМНЯЪЫХЕЯЪ Й ПЮГПЮАЮРШБЮЕЛНЛС ОНКЭГНБЮРЕКЕЛ ОПХКНФЕМХЧ
Х ДНАЮБХРЭ МНБШЕ МЕНАУНДХЛШЕ ЯПЕДЯРБЮ.
нАЗЕЙР
CommandBar Х ЯЕЛЕИЯРБН CommandBars
нАЗЕЙР CommandBar
Х ЯЕЛЕИЯРБН CommandBars ХЯОНКЭГСЧРЯЪ ДКЪ ОПНЦПЮЛЛХПНБЮМХЪ ЯРПНЙ ЛЕМЧ Х ОЮМЕКЕИ
ХМЯРПСЛЕМРНБ. б ЯЕЛЕИЯРБЕ CommandBars УПЮМЪРЯЪ БЯЕ ЯРПНЙХ ЛЕМЧ Х ОЮМЕКХ ХМЯРПСЛЕМРНБ
ЙНМЙПЕРМНЦН ОПХКНФЕМХЪ.
яЕЛЕИЯРБН
CommandBars ЯНДЕПФХРЯЪ Б НАЗЕЙРЕ Application. нМН ОПЕДЯРЮБКЪЕР ЯНАНИ ОЮМЕКХ
ЙНЛЮМД. б ЯБНЧ НВЕПЕДЭ ЙЮФДШИ НАЗЕЙР CommandBar ЯНДЕПФХР ЯЕЛЕИЯРБН commandBarControls,
ЯНЯРНЪЫЕЕ ХГ БЯЕУ ЩКЕЛЕМРНБ СОПЮБКЕМХЪ ДЮММНИ ОЮМЕКХ ХМЯРПСЛЕМРНБ. яБНИЯРБН
controls НАЗЕЙРЮ CommandBar БНГБПЮЫЮЕР ЯЕЛЕИЯРБН CommandBarControls. щКЕЛЕМРШ
ЯЕЛЕИЯРБЮ CommandBarControis НРМНЯЪРЯЪ Й НДМНЛС ХГ РПЕУ РХОНБ.
CommandBar But
ton |
йМНОЙЮ ХКХ ЩКЕЛЕМР
ЛЕМЧ, БШГШБЮЧЫХИ БШОНКМЕМХЕ ЙНЛЮМДШ ХКХ ОНДОПНЦПЮЛЛШ |
||
CommandBarComboBox |
яКНФМН НПЦЮМХГНБЮММШЕ
ЛЕМЧ, РЮЙХЕ ЙЮЙ ОНКЕ ББНДЮ, ПЮЯЙПШБЮЧЫХИЯЪ ЯОХЯНЙ ХКХ ОНКЕ ЯН ЯОХЯЙНЛ |
||
CommandBarPopUp |
лЕМЧ ХКХ БКНФЕММНЕ
ЛЕМЧ |
||
мЮ ПХЯ. 8.1
ОНЙЮГЮМЮ ХЕПЮПУХВЕЯЙЮЪ ЯУЕЛЮ НАЗЕЙРЮ CommandBar.
пХЯ.
8.1. хЕПЮПУХВЕЯЙЮЪ ЯУЕЛЮ НАЗЕЙРЮ CommandBar
нАЯСДХЛ МЮХАНКЕЕ
ВЮЯРН ХЯОНКЭГСЕЛШЕ ЛЕРНДШ Х ЯБНИЯРБЮ НАЗЕЙРЮ CommandBar. мЮВМЕЛ Я ЕЦН ЛЕРНДНБ.
Add Delete |
яНГДЮЕР МНБСЧ
ОЮМЕКЭ ЙНЛЮМД Х ДНАЮБКЪЕР ЕЕ Б ЯЕЛЕИЯРБН CommandBars яХМРЮЙЯХЯ: Add (Name, Position,
MenuBar, Temporary)
|
||
ShowPopUp |
нРНАПЮФЮЕР ЙНМРЕЙЯРМСЧ ОЮМЕКЭ ЙНЛЮМД Б ЯОЕЖХТХЖХПНБЮММНЛ ЛЕЯРНОНКНФЕМХХ, ЕЯКХ СЙЮГЮМШ ЙННПДХМЮРШ, КХАН Б ЛЕЯРЕ ПЮЯОНКНФЕМХЪ СЙЮГЮРЕКЪ, ЕЯКХ НМХ НОСЫЕМШ. яХМРЮЙЯХЯ: ShowPopUp (У, С)
|
||
Reset |
бНЯЯРЮМЮБКХБЮЕР
Б ХЯУНДМНЕ ЯНЯРНЪМХЕ (ОН СЛНКВЮМХЧ) БЯРПНЕММСЧ ОЮМЕКЭ ХМЯРПСЛЕМРНБ |
||
оЕПЕИДЕЛ
Й НАЯСФДЕМХЧ МЮХАНКЕЕ ВЮЯРН СОНРПЕАКЪЕЛШУ ЯБНИЯРБ НАЗЕЙРЮ CommandBar.
Enabled |
нОПЕДЕКЪЕР БНГЛНФМНЯРЭ
ДНЯРСОЮ Й ОЮМЕКХ ЙНЛЮМД |
||
Visible |
нОПЕДЕКЪЕР,
БХДХЛЮ КХ ЯРПНЙЮ ОЮМЕКХ ЙНЛЮМД. мЮОПХЛЕП, ЯЙПШРЭ ОЮМЕКЭ ХМЯРПСЛЕМРНБ
тНПЛЮРХПНБЮМХЕ (Formatting) ЛНФМН Я ОНЛНЫЭЧ ЯКЕДСЧЫЕИ ХМЯРПСЙЖХХ: Application. CommandBars
("Formatting" ) .Visible = False нРНАПЮГХРЭ БЯЕ
ОЮМЕКХ ХМЯРПСЛЕМРНБ ЛНФМН Я ОНЛНЫЭЧ ЯКЕДСЧЫЕИ ХМЯРПСЙЖХХ: Application. CommandBars
.Visible = True |
||
Controls |
бНГБПЮЫЮЕР ЯЕЛЕИЯРБН
commandBarControis, ЯНЯРНЪЫЕЕ ХГ БЯЕУ ЩКЕЛЕМРНБ СОПЮБКЕМХЪ ЙНМЙПЕРМНИ
ОЮМЕКХ ХМЯРПСЛЕМРНБ |
||
Position |
бНГБПЮЫЮЕР ЛЕЯРНОНКНФЕМХЕ ОЮМЕКХ ЙНЛЮМД. дНОСЯРХЛШЕ ГМЮВЕМХЪ:
|
||
Protection |
сЯРЮМЮБКХБЮЕР ГЮЫХРС ЯРПНЙХ ЛЕМЧ НР ХГЛЕМЕМХИ ЯН ЯРНПНМШ ОНКЭГНБЮРЕКЪ. дНОСЯРХЛШЕ ГМЮВЕМХЪ: msoBarNoProtection,
msoBarNoCustomize, msoBarNoResize, msoBarNoMove, msoBarNoChangeVisible,
msoBarNoChangeDock, msoBarNoVerticalDock Х msoBarNoHorizontalDock |
||
йЮЙ НРЛЕВЮКНЯЭ
БШЬЕ, Б ЯЕЛЕИЯРБЕ CommandBars УПЮМЪРЯЪ БЯЕ ЯРПНЙХ ЛЕМЧ Х ОЮМЕКХ ХМЯРПСЛЕМРНБ
ЙНМЙПЕРМНЦН ОПХКНФЕМХЪ. б РЮАК. 8.1 ОПХБЕДЕМШ МЮГБЮМХЪ МЮХАНКЕЕ ВЮЯРН ХЯОНКЭГСЕЛШУ
БЯРПНЕММШУ ОЮМЕКЕИ ХМЯРПСЛЕМРНБ Excel.
рЮАКХЖЮ
8.1. мЮГБЮМХЪ ОЮМЕКЕИ ХМЯРПСЛЕМРНБ
мЮГБЮМХЕ
(ЮМЦК.) |
мЮГБЮМХЕ
(ПСЯ.) |
||
Formatting |
тНПЛЮРХПНБЮМХЕ |
||
Standard |
яРЮМДЮПРМЮЪ |
||
Visual Basic |
Visual Basic |
||
Drawing |
пХЯНБЮМХЕ |
||
Web |
Web |
||
WordArt |
WordArt |
||
External Data |
бМЕЬМХЕ ДЮММШЕ |
||
Chart |
дХЮЦПЮЛЛШ |
||
Picture |
мЮЯРПНИЙЮ ХГНАПЮФЕМХЪ |
||
Worksheet Menu
Bar |
яРПНЙЮ ЛЕМЧ
КХЯРЮ |
||
Reviewing |
пЕЖЕМГХПНБЮМХЕ |
||
PivotTable |
Сводные таблицы |
||
Control Toolbox |
Элементы управления |
||
Clipboard |
Буфер обмена |
||
Custom 1 |
Настраиваемая
1 |
||
Stop Recording |
Остановка записи |
||
Shadow Settings |
Настройка тени |
||
3-D Settings |
Настройка объема |
||
Circular Reference
. |
Циклические
ссылки |
||
Full Screen |
Во весь экран |
||
Chart Menu Bar |
Строка меню
диаграммы |
||
Auditing |
Зависимости |
||
Семейство
CommandBarControls и объект CommandBarControl
Семейство
CommandBarControls содержит все элементы конкретной панели инструментов или
меню. Важнейшим методом этого семейства является метод Add, создающий новый
элемент. Рассмотрим синтаксис метода Add.
Add |
Добавляет новый элемент на панель управления или в меню. Возвращает объект CommandBarButton, CommandBarComboBox или CommandBarPopup. Синтаксис: Add (Type, Id,
Parameter, Before, Temporary)
|
||
Обсудим вкратце
основные свойства объекта CommandBarControi.
Caption |
Текстовая строка,
отображаемая в заголовке |
||
DescriptionText |
Возвращает описание
элемента управления |
||
Enabled |
Устанавливает,
является ли допустимым выбранный пользователем элемент управления |
||
FacelD |
Возвращает номер
встроенной кнопки, используемой в качестве элемента управления. Если
это свойство равно нулю, то возвращается пустой элемент управления |
||
OnAction |
Возвращает имя
макроса, выполняемого при активизации элемента управления |
||
ShortcutText |
Возвращает комбинацию
горячих клавиш, назначенных элементу управления |
||
Style |
Только для объекта CommandBarButton. Устанавливает . внешний вид кнопки. Допустимые значения:
|
||
TooltipText |
Текст, отображаемый в окне всплывающей подсказки |
||
Visible |
Устанавливает режим отображения (видимость) на экране кнопки |
Пример
создания панели инструментов пользователя
Приведем
пример проекта, который создает интерфейс приложения, состоящего из строки меню
и одной панели инструментов. В панель инструментов входят две кнопки и раскрывающийся
список. На поверхности одной из кнопок выводится рисунок, а другой ≈ надпись
(рис. 8.2).
Рис.
8.2. Пользовательский интерфейс
Каждая из
кнопок связана с макросом таким образом, что их активизация приводит к выполнению
соответствующего макроса. Кроме того, эти кнопки снабжены пояснительными надписями,
которые отображаются в окне всплывающей подсказки. При закрытии приложения данная
панель инструментов удаляется, а ее место занимают панели инструментов Стандартная
(Standard) и Форматирование (Formatting).
В окне Проект
≈ VBAProject (Project - VBAProject) выберите лист ThisWorkbook и наберите
следующие две процедуры.
Private Sub
Workbook_WindowActivate(ByVal Wn As Excel.Window)
'
' Процедура
создания новой панели инструментов при
' открытии рабочей книги
'
' При открытии
рабочей книги панели инструментов Форматирование
' и Стандартная скрываются
'
'
With Application
.CommandBars("Formatting").Visible
= False
.CommandBars("Standard").Visible
= False End With
' Создание новой панели инструментов с именем
' МояПанельИнструментов,
которая будет
' удаляться при закрытии приложения
'
With Application.CommandBars
.Add(Name:="МояПанельИнструментов",
Position:=msoBarTop, MenuBar:=False, Temporary:=True)
.Visible = True
With .Controls
' Создание кнопки
с рисунком
With .Add(Type:=msoControlButton, Id:=2950)
.TooltipText = "КнопкаДейства!" .OnAction = "Действо 1"
End With
'
' Создание кнопки
с надписью
With .Add(Type:=msoControlButton,
Id:=l)
.Caption = "Действо"
.TooltipText
= "КнопкаДейства2"
.Style = msoButtonCaption
.OnAction =
"Действо 2" End With
' Создание
раскрывающегося списка
With .Add(Type:=msoControlDropdown)
.Addltem "Приедет", 1 .Addltem "Уедет", 2
.Addltem "Еще не решил", 3
.Listlndex = i
End With
End With
End With
End Sub
'
Private Sub
Workbook_WindowDeactivate(ByVal Wn As Excel.Window)
' Процедура,
отображающая панели инструментов Форматирование
' ' и Стандартная
при закрытии приложения
'
With Application
.CommandBars("Formatting").Visible
= True
.CommandBars("Standard").Visible = True
End With
End Sub
А на листе
модуля введите следующие две процедуры, которые будут выполняться при нажатии
на соответствующие кнопки.
Sub Действо1()
MsgBox "Результат действа 1"
End Sub
Sub Действо
2()
MsgBox " Результат действа 2"
End Sub
Пример
создания строки меню пользователя
Приведем
пример проекта, который создает интерфейс приложения, состоящего из пользовательской
строки меню. Пользовательская строка меню включает два пункта меню, причем первый
пункт содержит в себе также раскрывающееся меню (рис. 8.3). Каждый пункт связан
с макросом так, что при их выборе выполняется -соответствующий макрос. При закрытии
приложения пользовательская строка меню удаляется.
Рис.
8.3. Интерфейс с пользовательской строкой меню
В окне Проект
≈ VBA Project (Project - VBAProject) выберите лист Thisworkbook и введите
на нем следующие две процедуры.
Private Sub Workbook_WindowActivate(ByVal Wn As Excel.Window)
'
' Процедура
создания новой строки меню при
' открытии рабочей
книги. При закрытии приложения
' подданная строка удаттететея
'
With Application.CoimnandBars.Add(Name:="МоеМеню",
MenuBar:=True, Temporary:=True) .Visible = True
With .Controls
'
' Создание меню Меню!
'
With .Add(Type:=msoControlPopup)
.Caption = "&Меню1"
With .Controls
With .Add (Type :=msoControlButtoj»)
.Caption = "Пункт&1"
.OnAction = "АтьДва!"
End With
'
' Создание подменю
Меню1
With -Add(Type:=msoControlPopup)
.Caption = "&ПодМеню1" With
.Controls
With .Add(Type:=msoControlButton)
.Caption = "Пункт&2" .OnAction = "АтьДва2"
End With
With .Add(Type:=msoControlButton)
.Caption = "Пункт&З"
.OnAction = "АтьДваЗ"
End With
End With
End With
End With
End With
'
' Создание меню Меню2
'
With .Add(Type:=msoControlPopup)
.Caption = "&Меню2"
With .Controls
With .Add(Type:=msoControlButton)
.Caption = "Пункт&4"
.OnAction = "АтьДва4"
End With
End With
End With
End With
End With
End Sub
А на листе модуля
введите следующие четыре процедуры, которые будут выполняться при выборе соответствующего
пункта меню.
Sub АтьДва!()
MsgBox "Стой!
Стоять! Буду стрелять!"
' End Sub
'
Sub АтьДва2
()
MsgBox "Стой! Стоять! Стреляю в воздух!"
End Sub
Sub АтьДваЗ()
MsgBox "Стой!
Стоять! Последний раз стреляю в воздух!"
End Sub
'
Sub АтьДва4()
MsgBox "Стой! Стоять! Стреляю!"
End Sub
Создание
пользовательской панели инструментов вручную
Иногда бывает удобнее проектировать собственную панель вручную, чем ее программировать.
Создается
панель пользователя по следующему алгоритму.
Шаг 1 |
Выберите команду
Вид, Панели инструментов, Настройка (View, Toolbars, Customize) или
переместите указатель на любую панель инструментов и сделайте щелчок
правой кнопкой мыши, а затем выберите команду Настройка (Customize). |
||
Шаг 2 |
В появившемся
диалоговом окне Настройка (Customize) нажмите кнопку Создать (New)
(рис. 8.4). |
||
Рис.
8.4. Диалоговое окно Настройка
ШагЗ |
В появившемся
диалоговом окне Создание панели инструментов в поле Панель инструментов
(Toolbars) введите имя новой панели инструментов, например моя панель
(рис. 8.5). |
||
Рис.
8.5. Диалоговое окно Создание панели инструментов
Шаг 4 |
Нажмите кнопку
ОК. Это приведет к появлению новой панели инструментов (рис. 8.6).
Пусть вас не смущает ширина панели инструментов. Она будет автоматически
расширяться по мере ее заполнения элементами управления. |
||
Рис.
8.6. Новая панель инструментов и диалоговое окно Настройка
Шаг 5 |
Раскройте вкладку
Команды (Commands) диалогового окна Настройка (Customize) и перетащите
на новую панель нужные кнопки из списка Команды (Commands). Итак,
панель инструментов создана (рис. 8.7). Программно та же панель инструментов
создается следующими инструкциями: Application. CommandBars .Add (Name :=" Моя панель" ) .Visible = True Application. CommandBars ( "Моя панель") . Controls .Add Type : =msoControlButton, Id:=23, Before:=l Application. CommandBars ( "Моя панель") . Controls. Add Type:=msoControlButton, Id:=211, Before:=2 Application. CommandBars ( "Моя панель").Controls. Add Type:=msoControlButton, Id:=1031, Before :=3 Application. CommandBars ("Моя панель") .Controls. Add Type:=msoControlButton,
Id:=166, Before:=4 |
||
По указанному
выше алгоритму, опустив шаги со второго по четвертый, можно также добавлять
элементы управления в уже существующие панели инструментов.
Рис.
8.7. Новая панель инструментов Моя панель
Удаление
элемента управления из панели инструментов вручную
Вручную элемент
управления удаляется из панели инструментов по следующему алгоритму.
Шаг 1 |
Выберите команду
Вид, Панели инструментов, Настройка (View, Toolbars, Customize) или
переместите указатель на любую панель инструментов и сделайте щелчок
правой кнопкой мыши, а затем выберите команду Настройка (Customize). |
||
Шаг 2 |
После появления
диалогового окна Настройка (Customize) выберите удаляемую кнопку и
перетащите ее за пределы панели инструментов в область рабочего листа,
но так, чтобы она не попала на другую панель инструментов. |
||
ШагЗ |
Отпустите кнопку
мыши. Элемент управления удален. Удалите по указанному выше алгоритму,
например, четвертую кнопку из панели инструментов моя панель. Программно
тот же результат достигается инструкцией: Application.
CommandBars ("Моя панель") .Controls (4) .Delete |
||
Удаление
пользовательской панели инструментов вручную
Вручную пользовательская
панель инструментов удаляется по следующему алгоритму.
Шаг 1 |
Выберите команду
Вид, Панели инструментов, Настройка (View, Toolbars, Customize) или
переместите указатель на любую панель инструментов и сделайте щелчок
правой кнопкой мыши, а затем выберите команду Настройка (Customize). |
||
Шаг 2 |
Раскройте вкладку
Панели инструментов (Toolbars) диалогового окна Настройка (Customize).
Выделите пользовательскую панель и сбросьте соответствующий флажок,
а затем нажмите кнопку Удалить (Delete). Программно тот же результат
достигается инструкцией: Application. CommandBars ("Моя панель") .Delete
|
||
Назначение
вручную макроса кнопке
Вручную элементу
управления на панели инструментов макрос назначается по следующему алгоритму.
Шаг 1 |
Выберите команду
Вид, Панели инструментов, Настройка (View, Toolbars, Customize) или
переместите указатель на любую панель инструментов и сделайте щелчок
правой кнопкой мыши, а затем выберите команду Настройка (Customize). |
||
Шаг 2 |
Раскройте вкладку
Команды (Commands) диалогового окна Настройка (Customize) и выберите
элемент управления, который требуется связать с макросом. Нажмите
кнопку Изменить выделенный объект (Modify selection). В появившемся
меню выберите команду Назначить макрос (Assign Macro) (рис. 8.8). |
||
Рис.
8.8. Меню с командой Назначить макрос
ШагЗ |
Появится диалоговое
окно Назначить макрос (Assign Macro) (рис. 8.9). В списке Имя макроса
(Macro Name) выберите имя макроса, назначаемое элементу управления.
Нажмите кнопку ОК диалогового окна Назначить макрос (Assign Macro)
и кнопку Закрыть (Close) диалогового окна Настройка (Customize). Теперь
макрос назначен кнопке. |
||
Рис.
8.9. Диалоговое окно Назначить макрос
Изменение
и создание вручную изображения на кнопке
Вручную можно изменить изображение любой кнопки. В Excel имеется коллекция из 42 встроенных кнопок. Кроме того, при помощи встроенного редактора можно создать любой рисунок на поверхности кнопки и изменить уже существующий. Для этого надо воспользоваться следующим алгоритмом.
1 Шаг |
Выберите команду
Вид, Панели инструментов, Настройка (View, |
Шаг 2 | Раскройте вкладку Команды (Commands) диалогового окна Настройка (Customize) и выберите кнопку, которую следует видоизменить. Нажмите кнопку Изменить выделенный объект (Modify selection). Выберите команду Выбрать значок для кнопки (ChangeButton Image) и один из значков в появившемся меню (рис. 8.10). Нажмите кнопку Закрыть (Close) диалогового окна Настройка (Customize). Теперь изображение на кнопке изменилось. |
Рис.
8.10. Диалоговое окно со значками
Если необходимо
создать пользовательское изображение на кнопке или подкорректировать уже существующее,
шаг 2 алгоритма должен быть следующим.
Рис.
8.11. Диалоговое окно Редактор кнопок
Шаг 2 |
Раскройте вкладку
Команды (Commands) диалогового окна Настройка (Customize) и выберите
кнопку, которую следует видоизменить. Нажмите кнопку Изменить выделенный
объект (Modify selection). Выберите команду Изменить значок на кнопке
(Edit Button Image). |
||
ШагЗ |
Появится диалоговое
окно Редактор кнопок (Edit Button) (рис. 8.11). Используя средства
этого редактора можно создать любое изображение на поверхности кнопки.
Нажмите кнопку OK диалогового окна Редактор кнопок (Edit Button) и
кнопку Закрыть (Close) диалогового окна Настройка (Customize). Теперь
изображение на кнопке изменилось. |
||