Порядок выполнения работы




1. Создайте модуль формы. С помощью конструктора внедрите на заготовку формы необходимые элементы управления.

2. Перейдите в окно редактора кодов формы и создайте необходимые процедуры обработки событий внедренных в форму элементов управления.

3. Разработайте последовательность действий, которую надо выполнить при активизации формы и оформите ее в виде процедуры UserForm_Activate.

4. Внедрите на рабочий лист кнопку, позволяющую при нажатии запустить создаваемую форму (пример 31).

5. Разработайте последовательность действий, которую надо выполнить при удалении формы и оформите ее в виде процедуры UserForm_Terminate. Предусмотрите в ней действия по приведению в исходное положение кнопки на рабочем листе.

6. Убедитесь в работоспособности созданной программы.

7. Проверьте правильность комментариев с учетом изменений в тексте программы, дополните и, при необходимости, скорректируйте их.

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

1. Зачем нужны формы?

2. Что нужно сделать для того, чтобы создать форму?

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

4. Как задать свойства и методы формы?

5. Как завершить работу с формой?

6. Как обратиться к объекту, находящемуся в форме?

7. Какие события могут быть предусмотрены в форме? Как они программируются?

8. Как изменить значения свойств формы?

9. Как получить список методов формы?

10. Как перейти от режима программирования формы к ее работе и обратно?

Отчет о работе

Подготовьте отчет о выполненной лабораторной работе. Он должен содержать титульный лист, тексты написанных вами процедур обработки событий элементов управления формы, тексты процедур ее активации и удаления и текст программы обработки событий кнопки. Сформулируйте выводы, которые можно сделать по результатам выполненной работы.

 

Лабораторная работа №11

Библиотечные классы VBA, связанные с Excel

Методические указания

Разработчики пакета Microsoft Office не могли обойтись без создания набора собственных классов, позволяющих реализовать те или иные возможности. Некоторые классы этого набора являются общими для всех составляющих пакета, а некоторые отражают специфику конкретной используемой программы. Мы сосредоточимся на библиотечных классах Excel, хотя изложенные далее методы работы с классами могут быть применимы и для других программ пакета, например, Word и Power Point.

В основе библиотеки классов лежит так называемая модель объектов. Она определяет структуру библиотечных классов, каждый из которых может быть непосредственно использован при программировании. Модель объектов Excel показана на рис. 17. Главным классом является сам Excel, рассматриваемый как приложение (Application). В его составе присутствуют вложенные наборы классов и вложенные одиночные классы. Схожие классы могут объединяться в так называемые коллекции. Имена коллекций записываются на английском языке во множественном числе за счет добавления в конце буквы s. Один и тот же класс может относиться к нескольким коллекциям. Классы, отнесенные к одной коллекции, могут иметь общие свойства и методы, присущие именно этой коллекции. С другой стороны, каждый класс характеризуется собственным набором свойств и методов. Конкретные объекты могут создаваться как экземпляры класса и использоваться самостоятельно или в составе объекта боле высокого уровня иерархии.

Рис. 17. Модель объектов Excel.

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

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

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

Пример 36. Модернизируем программу, рассмотренную в примере 23, так, чтобы оператор мог задавать имя файла принятым в рамках пакета Microsoft Office способом. Для этого воспользуемся свойством GetSaveAsFilename объекта Application.

fname = Application.GetSaveAsFilename _

("", "Файлы зарплаты (*.hhh), *.hhh, Все файлы (*.*), *.hhh",, "Зарплата")

If fname <> False Then

Open fname For Output As #1

Print #1, "Иванов В.Н."

Print #1, 1234

Print #1, "Трофимова Л.А."

Print #1, 1234

Print #1, "Семенова Е.Г."

Print #1, 1000

Print #1, "Степанов А.Г."

Print #1, 900

Close #1

Else

End If

Рассмотрим задачу построения диаграммы на основе таблицы рис. 1. Включим режим записи макроса и, отвечая на вопросы мастера, построим график. Изучая его текст и выполняя пошаговую отладку, отметим, что активизация диаграммы осуществляется в момент выполнения строки Charts.Add. Далее задается один из возможных типов графика, диапазон данных, место его размещения, а также значения свойств. В последних строках программы задается его новое положение на листе, а сама диаграмма делается активной.

Пример 37. Текст макроса, записанного во время построения диаграммы.

Sub Построение_диаграммы()

' Построение_диаграммы Макрос

' Макрос записан 28.02.2006 (Администратор)

Charts.Add

ActiveChart.ChartType = xl3DColumnClustered

ActiveChart.SetSourceData Source:=Sheets("Лист2").Range("C2:C5"), PlotBy:= _

xlColumns

ActiveChart.Location Where:=xlLocationAsObject, Name:="Лист2"

With ActiveChart

.HasTitle = True

.ChartTitle.Characters.Text = "Зарплата"

.Axes(xlCategory).HasTitle = True

.Axes(xlCategory).AxisTitle.Characters.Text = "Сотрудник"

.Axes(xlSeries).HasTitle = False

.Axes(xlValue).HasTitle = False

End With

ActiveSheet.Shapes("Диагр. 25").IncrementLeft 231#

ActiveSheet.Shapes("Диагр. 25").IncrementTop -82.5

ActiveSheet.ChartObjects("Диагр. 25").Activate

End Sub

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

Задание

Используйте согласованный с преподавателем вариант задания (табл. 1), выполненную на его основе таблицу Excel, написанные программы вычислений в таблице, созданный вами класс и созданную пользовательскую форму. Напишите программу, позволяющую сохранять результаты вычислений в файл произвольного имени и считывать ранее созданные файлы. Постройте график или семейство графиков, связанных с данными вашей таблицы. Включите созданные программы в состав методов класса и напишите итоговую программу, демонстрирующую возможности работы с классом на основе всех созданных вами методов.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-04-01 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: