Студопедия — Меню и панели инструментов
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Меню и панели инструментов






 

Цель работы: приобретение навыков создания собственных меню посредством языка VBA и работы с панелями инструментов с помощью процедур.

 

1 Теоретические сведения

 

Excel позволяет создавать новые меню и панели инструментов или добавлять новые команды в существующие меню и панели инструментов.

Меню и панели инструментов, отображаемые приложением, образуют интерфейс пользователя приложения, т.е. систему, посредством которой пользователь взаимодействует с приложением.

Все приложения Microsoft Office (в том числе Excel) реализуют строки меню и панели инструментов в виде различных подтипов одного класса объектов: объекта CommandBar. Объект CommandBar может быть одним из трех типов: строкой меню, всплывающим меню или панелью инструментов. Тип панели команд определяется значением, хранящимся в свойстве Type панели команд. В VBA-программе тип панели команд представляется посредством встроенных констант (таблица 4.1).

Таблица 4.1 – Встроенные константы MsoBarType

Имя константы Тип панели команд
   
msoBarTypeMenuBar Строка меню. Этот тип указывает, что панель команд функционирует как строка меню с присущими строке меню особенностями и ограничениями

 

Окончание таблицы 4.1
   
msoBarTypeNormal Панель инструментов. Этот тип указывает, что панель команд функционирует как панель инструментов с присущими панели инструментов особенностями и ограничениями
msoBarTypePopup Всплывающая панель команд. Этот тип указывает, что панель команд помещается в виде элемента управления в другую панель команд; в основном он используется для создания подменю в строке меню

 

Когда свойство Type объекта CommandBar установлено в msoBarTypeMenuBar, объект управляющей панели отображается в виде строки меню. Эта строка размещается поперек верхнего края окна приложения, и в ней приводятся пункты первого уровня меню, доступные в текущий момент.

Объекты CommandBar являются контейнерами: они могут не содержать либо содержать один или несколько элементов управления управляющей панели. Элементы управления управляющей панели – это кнопки, подменю, списки и другие компоненты, появляющиеся в управляющей панели. Коллекция элементов управления может содержать другие объекты CommandBar.

Когда свойство Type объекта CommandBar установлено в msoBarTypeNormal, объект управляющей панели появляется в виде панели инструментов. В отличие от меню в панели инструментов более вероятно наличие таких элементов управления, как поля со списком, списки, поля и всплывающие меню.

Часто используемые объекты CommandВarControl представлены в таблице 4.2.

VBA позволяет в Excel настраивать встроенные и создавать собственные управляющие панели.

Объект CommandBar представляет отдельную управляющую панель. Объектами CommandBar придется манипулировать не только в качестве строк меню и панелей инструментов, но и в качестве подменю и всплывающих меню (таблица 4.3).

В таблице 4.4 представлены методы объекта CommandBar.


Таблица 4.2

Константа типа элемента управления Объект элемента управления Назначение
msoControlButton CommandBarButton В управляющей панели типа меню создает команду пункта меню. В управляющей панели типа панели инструментов создает кнопку
msoControlComboBox CommandBarComboBox В управляющей панели типа панели инструментов создает элемент управления поля со списком. В управляющих панелях типа меню не используется
msoControlDropdown CommandBarComboBox В управляющей панели типа панели инструментов создает элемент управления списка. В управляющих панелях типа меню не используется
msoControlEdit CommandBarComboBox В управляющей панели типа панели инструментов создает элемент управления поля. В управляющих панелях типа меню не используется
msoControlPopup CommandBarPopup В управляющей панели типа меню создает подменю. В управляю-щей панели типа панели инструментов со-здает раскрывающееся меню

 


Таблица 4.3 – Свойства объекта CommandBar

Свойство Описание
   
BuiltIn Только для чтения, Boolean. Имеет значение True, если указанная управляющая панель встроена в вызывающее VBA-приложение
Controls Только для чтения. Возвращает коллекцию Command BarControls, представляющую все элементы управления в управляющей панели (или элементы управления в управляющей панели, являющейся частью элемента управления всплывающего меню)
Enabled Чтение-запись, Boolean. Имеет значение True, если управляющая панель активизирована. Для управляющих панелей типа панели инструментов панель инструментов появляется в списке доступных панелей инструментов, если это свойство имеет значение True
Height Чтение-запись, Long. Возвращает или устанавливает высоту управляющей панели в пикселях. Если управляющая панель прижата к краю окна или защищена от изменения размеров, изменение этого свойства приводит к ошибке
Index Только для чтения, Long. Возвращает номер указателя управляющей панели в коллекции CommandBars
Left Чтение-запись, Long. Возвращает или устанавливает расстояние в пикселях левого края управляющей панели от левого края экрана
Name Чтение-запись, String. Возвращает или устанавливает имя управляющей панели. Если управляющая панель является встроенной, свойство Name возвращает ее имя на английском языке США. Для возвращения имени управляющей панели с учетом локальной (т.е. языковой) версии необходимо использовать свойство NameLocal
NameLocal Чтение-запись, String. Возвращает имя встроенной управляющей панели, отображаемой в языковой версии вызывающего VBA-приложения. Изменение свойства LocalName для нестандартной управляющей панели изменяет свойство Name и другие связанные с ним свойства

 

Продолжение таблицы 4.3
   
Position Чтение-запись, Long. Возвращает или устанавливает позицию указанной управляющей панели. Для указания значения Position используйте класс MsoBarPosition встроенных констант: msoBarLeft, msoBarTop, msoBarRight, msoBarBottom, msoBarFloating, msoBar-Popup или msoBarMenu. (Константа позиции msoBarMenu указывает, что управляющая панель отображается как строка меню)
Protection Чтение-запись, Long. Возвращает или устанавливает способ защиты управляющей панели от настройки пользователем. Может быть одной (или суммой) из встроенных констант MsoBarProtection: MsoBarNoProtection (по умолчанию), MsoBarNoCustomize, Mso-BarNoResize, MsoBarNoMove, MsoBarNoChangeVi-sible, MsoBarNoChangeDock, MsoBarNoVerticalDock, MsoBarNoHorizontalDock
RowIndex Чтение-запись, Long. Возвращает или устанавливает порядок размещения управляющей панели, прижатой к краю окна относительно других управляющих панелей. Может быть целым значением больше нуля или же любой из следующих констант MsoBarRow: MsoBarRowFirst или MsoBarRowLast. Управляющие панели с более низким значением RowIndex прижимаются к краю окна первыми. Если более одной управляющей панели имеют одинаковое значение RowIndex, последняя назначенная управляющая панель будет отображаться первой
Top Чтение-запись, Long. Возвращает или устанавливает расстояние в пикселях от верхнего края управляющей панели до верхнего края экрана
Type Только для чтения, Long. Возвращает тип управляющей панели. Значение этого свойства может быть установлено только при создании объекта CommandBar

 

Окончание таблицы 4.3
   
Visible Чтение-запись, Boolean. Имеет значение True, если управляющая панель видна. По умолчанию это свойство имеет значение False для только что созданных нестандартных управляющих панелей. Прежде чем свойство видимости может быть установлено в True, свойство Enabled управляющей панели должно быть установлено в True
Width Чтение-запись. Возвращает или устанавливает ширину управляющей панели в пикселях

 

Таблица 4.4 – Методы объекта CommandBar

Метод Описание
Delete Удаляет указанную управляющую панель из коллекции CommandBar
FindControl Возвращает ссылку на указанный объект CommandBarControl, соответствующий указанному критерию. Метод FindControl следует использовать для обнаружения элемента управления на основе значений свойств Type, Id, Tag и Visible объекта CommandBarControl. Этот метод может также выполнять поиск всех подменю или всплывающих элементов управления в указанном элементе управления управляющей панели
Reset Заставляет встроенную управляющую панель выполнить собственную перестановку в исходную конфигурацию, удаляя все нестандартные элементы управления и восстанавливая любые удаленные элементы управления встроенной управляющей панели
ShowPoup Отображает управляющую панель в виде контекстного меню. По умолчанию контекстное меню отображается в текущей позиции указателя мыши, хотя при необходимости можно указать позицию отображения контекстного меню. Метод ShowPoup будет генерировать ошибку времени выполнения, если только свойство Position управляющей панели не установлено в msoBarPopup

Первый шаг по созданию нестандартной системы меню или панели инструментов заключается в добавлении нового объекта управляющей панели в коллекцию управляющих панелей приложения. Для этого используется метод Add коллекции CommandBars.

Общий синтаксис для создания новой управляющей панели выглядит следующим образом:

CommandBars.Add([Name, ] [Position, ] [MenuBar, ] [Temporary])

Все аргументы метода Add являются необязательными. Name представляет любое строковое выражение и указывает имя, которое нужно присвоить новой управляющей панели. Это имя используется для доступа к новой управляющей панели. Position представляет численное выражение, определяющее допустимый позиционный номер новой управляющей панели. MenuBar – выражение типа Boolean, указывающее, должна ли новая управляющая панель использоваться в качестве строки меню. Если значение MenuBarTrue, новая управляющая панель инициализируется так, чтобы отображаться на экране в качестве строки меню; если это значение False, новая управляющая панель отображается как панель инструментов. Аргумент Temporary также является выражением типа Boolean, которое в данном случае указывает, является ли новая управляющая панель временной. Если значение аргумента Temporary равно True, управляющая панель не будет сохранена в конце текущего сеанса работы; в противном случае она автоматически сохраняется в рабочей области Excel.

Метод Add создает пустую управляющую панель и добавляет ее в коллекцию CommandBars; по умолчанию новая управляющая панель видима.

Пример 1:

For IDCount = 1 To MaxItems

Application.StatusBar = “Adding ID” & IDCount

CmdBar.Controls.Add ID: =IDCount

Next IDCount

Цикл создает MaxItems новых элементов управления управляющих панелей. Каждому новому элементу управления присваивается значение идентификатора, соответствующее текущему значению счетчика цикла.


 

Пример 2

Set CmdBar = Commandbars.Add(Position: =msoBarFloating, _ MenuBar: =False, Temporary: =False)

В этом случае содержится инструкция, которая использует метод Add коллекции CommandBars приложения для добавления новой управляющей панели. Новая управляющая панель не прижата к краю экрана панелью инструментов, не является строкой меню (т.е. она отображается как стандартная панель инструментов) и не является временной (т.е. созданные процедурой DisplayAllFaceIDs панели инструментов будут автоматически сохраняться в рабочей области Excel). Метод Add возвращает объектную ссылку на только что созданную управляющую панель, которая присваивается переменной CmdBar.

Если было выполнено редактирование или модификация встроенной управляющей панели, на отдельном этапе можно потребовать удалить из управляющей панели нестандартные команды или меню.

Общий синтаксис восстановления встроенной управляющей панели следующий:

CommandBarObject.Reset.

CommandBarObject представляет любую допустимую объектную ссылку на объект управляющей панели. При выполнении метода Reset управляющая панель, на которую осуществляется ссылка, восстанавливается в своей конфигурации по умолчанию – все нестандартные элементы управления удаляются из нее независимо от времени или способа их создания.

Пример:

Sub ResetWorkSheetMenuBar()

CommandBars(“WorkSheetMenuBar”).Reset

CommandBars(“WorkSheetMenuBar”).Visible = True

End Sub

Коллекция CommandBars Excel используется для возвращения ссылки на WorkSheet MenuBar (строка меню листа), которая переустанавливается, а затем делается видимой.

Для добавления элемента управления в управляющую панель используется следующий общий синтаксис:


 

CommandBar.Controls.Add([Type, ] [Id, ] [Parametr, ] [Before, ] [Temporary])

CommandBar представляет любую допустимую ссылку на объект CommandBar. Все аргументы метода Add являются необязательными.

 

2 Практическая часть

 

З а д а н и е 1

Создайте процедуру, которая должна создать и вывести на экран панель инструментов с тремя кнопками: Создать (ID равен 2530), Открыть (ID равен 23) и Сохранить (ID равен 3).

Создайте также процедуру, которая будет удалять созданную панель. Выполните и протестируйте эти процедуры.

 

З а д а н и е 2

Напишите процедуру, которая создавала бы и выводила на экран строку меню, содержащую пункты Файл, Правка и Справка.

Напишите еще одну процедуру для удаления этой строки меню. На свободном рабочем листе создайте две командные кнопки, которые выполняли бы эти процедуры. Выполните и протестируйте процедуры.

 

3 Контрольные вопросы

 

3.1 Какой коллекции принадлежат панели инструментов как элементы?

3.2 Какой коллекции принадлежат кнопки панелей инструментов как элементы?

3.3 Какой метод применяется для удаления панелей инструментов?

3.4 Какое свойство применяется для задания значка, выводимого на кнопке?

3.5 Какой метод используется для создания меню?

3.6 Какой тип элемента управления задает пункт меню?

3.7 Как вывести на экран панель инструментов с помощью кода VBA?


 

Лабораторная работа 5

 







Дата добавления: 2014-11-10; просмотров: 1215. Нарушение авторских прав; Мы поможем в написании вашей работы!



Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Классификация ИС по признаку структурированности задач Так как основное назначение ИС – автоматизировать информационные процессы для решения определенных задач, то одна из основных классификаций – это классификация ИС по степени структурированности задач...

Внешняя политика России 1894- 1917 гг. Внешнюю политику Николая II и первый период его царствования определяли, по меньшей мере три важных фактора...

Оценка качества Анализ документации. Имеющийся рецепт, паспорт письменного контроля и номер лекарственной формы соответствуют друг другу. Ингредиенты совместимы, расчеты сделаны верно, паспорт письменного контроля выписан верно. Правильность упаковки и оформления....

Ведение учета результатов боевой подготовки в роте и во взводе Содержание журнала учета боевой подготовки во взводе. Учет результатов боевой подготовки - есть отражение количественных и качественных показателей выполнения планов подготовки соединений...

Сравнительно-исторический метод в языкознании сравнительно-исторический метод в языкознании является одним из основных и представляет собой совокупность приёмов...

Концептуальные модели труда учителя В отечественной литературе существует несколько подходов к пониманию профессиональной деятельности учителя, которые, дополняя друг друга, расширяют психологическое представление об эффективности профессионального труда учителя...

Studopedia.info - Студопедия - 2014-2024 год . (0.01 сек.) русская версия | украинская версия