Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСНОВЫ ОФИСНОГО ПРОГРАММИРОВАНИЯ И ЯЗЫК VBA - 3....doc
Скачиваний:
37
Добавлен:
17.12.2018
Размер:
1.65 Mб
Скачать

Коллекция CommandBarControls и ее элементы

Эта коллекция обладает только традиционными свойствами и методами. Единственное, что следует рассмотреть - это метод Add и его параметры:

Function Add([Type], [Id], [Parameter], [Before], [Temporary]) As CommandBarControl

Метод позволяет добавлять новые элементы в коллекцию. Параметр Type устанавливает тип элемента и тем самым, как мы говорили ранее, определяет и класс этого элемента, возвращаемый функцией Add. Если значением Type является константа msoControlButton, то возвращается объект класса CommandBarButton, для значений: msoControlEdit, msoControlDropdown, msoControlComboBox - возвращается объект CommandBarComboBox и, наконец, если тип имеет значение msoControlPopup, то возвращаемый класс объекта - CommandBarPopup. Параметр Id задает идентификатор встроенного элемента, добавляемого в коллекцию. Если он опущен, то на панели появится пользовательский, пустой элемент, свойства которого позднее следует определить. Параметр Parameter для встроенных элементов используется приложением при запуске команды, для пользовательских элементов может хранить некотор ую информацию об элементе. Параметр Before задает местоположение элемента на панели, если он опущен, элемент добавляется в конец панели. Значение True булева параметра Temporary говорит о том, что элемент является временным, он будет удален с панели при закрытии приложения. По умолчанию элементы являются постоянными.

Мы уже говорили, что создаваемые элементы панели могут быть одного из трех классов. Кроме того, все они принадлежат к объединяющему классу CommandBarControl. Мы не будем подробно останавливаться на всех свойствах и методах, как отдельных классов, так и объединяющего элементы класса. Рассмотрим только, как решить главную для команд задачу - выполнить некоторую процедуру в ответ на выбор команды меню или щелчок кнопки. Действия, выполняемые командой, должны быть запрограммированы в виде макроса на языке VBA. Напомним, что макрос - это процедура без параметров. Однако есть некоторый способ передачи информации в исполняемый макрос. Для этого можно использовать параметр Parameter, задаваемый при создании элемента или, что удобнее, свойство Parameter. Конечно, для всех встроенных элементов макрос, задающий команду, уже написан. Но для собственных элементов его нужно написать самому, а затем макрос связать с элементом. Свойство OnAction, которым обладают все элементы панели, позволяет связать элемент с исполняемым макросом. Формально свойство является строкой, задающей имя макроса, который и будет вызываться в ответ на выбор пользователя.

О роли интерфейса

Трудно переоценить роль интерфейса пользователя в современных программах. Удачный или неудачный интерфейс во многом предопределяет успех или неудачу всей системы. В еще большей степени это относится к офисным системам, пользователи которых не искушены в программировании и зачастую не имеют большого опыта работы на компьютере. Разработчик таких систем обычно сосредоточивает усилия на создании дружелюбного и удобного интерфейса пользователя. Удобство интерфейса - вещь субъективная: то, что нравится одному пользователю, может оказаться неудобным и даже совершенно неприемлемым для другого. Поэтому при проектировании системы желательно заранее включать в нее возможность настройки интерфейса на различные категории пользователей. Приложения Office 2000 позволяют без труда перестраивать меню и панели инструментов, управлять параметрами окон, выбирать нужные форматы представления данных на экране (цвет, шрифт, размер и т. д.), создавать собственные диалоговые окна и размещать на них разнообразные управляющие элементы. Возможность присоединения ActiveX -объектов к формам и документам сделало перечень элементов управления практически неограниченным, поскольку число ActiveX -объектов в доступных разработчикам библиотеках постоянно растет.

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