Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Часть 2. Основы офисного программирования.doc
Скачиваний:
8
Добавлен:
01.05.2025
Размер:
4.04 Mб
Скачать

8.2.5. Графические объекты

Объект Shape представляет любой графический объект, размещенный в верхнем слое рабочего листа или диаграммы. Все объекты Shape рабочего листа представлены семейством Shapes, которое может содержать такие разные графические объекты, как растровые изображения и другие виды рисунков, прямоугольники, линии, объекты WordArt и даже элементы управления. За исключением элементов управления пользователь может создавать все объекты Shape, используя Панель рисования.

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

Свойства объекта Shape:

  • Left, Top, Width, Height – определяют положение и размер фигуры на рабочем листе или диаграмме;

  • Name – текстовая строка, используемая для идентификации объекта (может использоваться в качестве индекса в семействе); это свойство можно задать «вручную», вписав значение в поле «Имя» строки формул Excel;

  • Type – константа, идентифицирующая тип объекта (например, msoLine, msoPicture и т.п.);

  • Fill – возвращает объект FillFormat, содержащий свойства для задания цвета, типа штриховки и текстуры объекта;

  • Line – возвращает объект LineFormat, содержащий свойства для настройки цвета, толщины и типа граничных линий объекта;

  • Shadow – возвращает объект ShadowFormat, содержащий свойства для настройки тени объекта;

  • TextFrame – возвращает объект, содержащий подобъекты для задания и форматирования текста, находящегося в объекте Shape;

  • Visible – определяет, будет и объект виден пользователю;

  • OnAction – служит ля запоминания имени подпрограммы VBA, которая будет запущена, если щелкнуть на объекте мышью.

Методы объекта Shape:

  • Copy – копирует объект в буфер обмена (Clipboard);

  • Cut – копирует объект в буфер обмена (Clipboard) и удаляет его с рабочего листа или диаграммы;

  • Flip – располагает объект горизонтально или вертикально;

  • Delete – удаляет объект;

  • IncrementLeft – сдвигает объект по горизонтали;

  • IncrementTop – сдвигает объект по вертикали;

  • IncrementRotation – поворачивает объект.

  • Методы семейства Shapes:

  • AddShape – добавляет объект в семейство;

  • AddPicture – добавляет в семейство объект типа рисунка;

  • AddLabel – добавляет в семейство объект типа надписи.

Объект ShapeRange представляет произвольную группу фигур (такая группа получается при множественном выделении), но включенные в него объекты могут быть не выделены, таким образом, объект ведет себя как семейство. Этот объект можно создать с помощью семейства Shapes, вызвав метод Range и передав ему в качестве параметра массив имен объектов Shape. Созданным семейством можно манипулировать как одним объектом. Все объекты группы можно обработать в цикле For Each.

8.2.6. Элементы управления и обработка событий

Кроме свойств и методов элементы управления имеют предопределенный набор «событий». Событие – это действие со стороны пользователя (щелчок мышью, например) или системы (событие таймера и т.п.). Процедура обработки события – это подпрограмма, реализующая реакцию на это действие. Таким образом, обработку события можно реализовать, написав процедуру VBA.

Элементы управления могут находиться в диалоговом окне. Их можно размещать и на рабочем листе.

Объекты, представляющие элементы управления, используются всеми приложениями MS Office. Назначение объектов, представляющих элементы управления, основные их свойства и связанные с ними события рассматривались выше, при обсуждении интерфейса пользователя. Там же было показано, как можно создать диалоговые окна пользователя и получить доступ к стандартным диалоговым окнам.

Элементы управления можно разместить прямо на рабочих листах Excel. Для этого используются панели инструментов «Элементы управления» и «Формы» (рис. 12).

Объекты, доступные через панель «Элементы управления» – это элементы ActiveX, имеющие несколько событий, обработку которых можно организовать через VBA; эти элементы можно использовать на рабочих листах и пользовательских формах. Элементы управления панели «Формы» – это стандартные элементы управления рабочего листа Excel; они имеют фактически только одно событие (Click), на которое может быть установлена реакция, если связать подпрограмму со свойством OnActive; Эти элементы можно использовать на листах и диаграммах.

Для размещения элемента управления на рабочем листе его нужно выбрать на панели щелчком мыши (курсор мыши примет форму значка ‘+’) и «нарисовать» его с помощью мыши, как обычный графический объект.

Если элемент выбран с панели «Элементы управления», то все его свойства можно просмотреть и изменить, выполнив команду Свойства в контекстном меню или с помощью кнопки на панели. Для разработки кода процедур обработки событий, связанных с элементом управления, следует выполнить команду Исходный текст в контекстном меню объекта или щелчком по соответствующей кнопке на панели. При этом раскроется окно редактора VBA, в котором можно выбрать из списка имя обрабатываемого события для данного объекта. При выборе события редактор автоматически будет создавать «заготовку» для процедуры обработки события, содержащую заголовок процедуры и завершающую ее инструкцию. После написания кода следует перейти снова в Excel.

При размещении элемента управления и определении его свойств в Excel включен режим конструктора (на панели «нажата» кнопка ). Для запуска процедур, связанных с событиями, определенными для элемента управления, следует выйти из режима конструктора, щелкнув по кнопке Режим конструктора на панели. После этого вставленный элемент управления начнет «работать», будут обрабатываться связанные с ним события.

Для изменения свойств созданных элементов управления нужно снова войти в режим конструктора.

Если элемент выбран на панели «Формы», его свойства также доступны через кнопку Свойства элемента управления на панели или команды Изменить текст и Формат объекта в контекстном меню. Установить процедуру обработки события можно с помощью команды Назначить макрос в контекстном меню или с помощью кнопки Текст программы на панели после выделения объекта (для выделения можно перейти в режим выбора объектов с помощью кнопки на панели рисования, вернуться в рабочий режим можно «отжав» эту кнопку).

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

Основой для создания форм Excel служит объект Worksheet, т.е. форма строится на основе рабочего листа (в отличие от диалоговых окон, которые строятся на основе пользовательских форм, т.е. объекта UserForm). Форма Excel является особым образом отформатированным рабочим листом. Поэтому чаще всего при создании формы используется объект Range и его подобъекты, а также объект Window.

Свойства объектов Workbook и Worksheet рассматривались выше. Далее рассматриваются события, связанные с этими объектами.

Процедуры обработки событий объекта Worksheet находятся в модуле кода каждой рабочей книги. Этот объект поддерживает следующие события:

  • Activate – происходит при активизации листа;

  • BeforeDoubleClick – происходит после двойного щелчка мышью на листе, но перед реакцией Excel по умолчанию (эту реакцию можно отменить, установив аргумент Cancel в True); аргумент Target указывает ячейку, на которой был произведен щелчок;

  • BeforeRightClick – происходит после щелчка правой кнопкой мыши на листе, но перед реакцией Excel по умолчанию (эту реакцию можно отменить, установив аргумент Cancel в True); аргумент Target указывает ячейку, на которой был произведен щелчок;

  • Calculate – происходит после пересчета листа;

  • Change – происходит при изменении данных на листе; аргумент Target указывает ячейку, в которой было произведено изменение;

  • Deactivate – происходит, когда лист перестает быть активным;

  • SelectionChange – происходит при изменении вычисления.

Процедуры обработки событий объекта Workbook находятся в модуле кода “This Workbook”. Этот объект поддерживает следующие события:

  • Activate – происходит при активизации рабочей книги;

  • AddinInstall – происходит при установке рабочей книги как надстройки;

  • AddinUninstall – происходит при отмене установки рабочей книги как надстройки;

  • BeforeClose – происходит перед закрытием рабочей книги (для отмены закрытия можно установить аргумент Cancel в True);

  • BeforePrint – происходит перед печатью или отображением предварительного просмотра книги (для отмены печати можно установить аргумент Cancel в True);

  • BeforeSave – происходит перед сохранением рабочей книги (для отмены сохранения можно установить аргумент Cancel в True);

  • Deactivate – происходит, когда рабочая книга перестает быть активной;

  • NewSheet – происходит при вставке нового листа в рабочую книгу (аргумент Sh является объектом, указывающим на новый лист);

  • Open – происходит при открытии рабочей книги (используется вместо старого макроса Auto_open из предыдущих версий Excel);

  • WindowActivate – происходит при активизации окна рабочей книги;

  • WindowDeactivate – происходит при деактивизации окна рабочей книги;

  • WindowResize – происходит при изменении размера окна рабочей книги (разворачивание, сворачивание, восстановление или изменение размеров вручную).

Порядок создания процедур обработки событий для различных объектов Excel (приложений, рабочих книг и листов) рассматривался выше.