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




1. С использованием функций InputBox и MsgBox напишите программу диалога с пользователем, запрашивающего у него необходимость чтения старого или создания нового файла.

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

3. Напишите с использованием функций InputBox и MsgBox программу, позволяющую вводить данные в файл на основе диалога. Введите данные в диалоге и создайте файл. Считайте данные из файла в таблицу и убедитесь в работоспособности программы.

4. Напишите программу, позволяющую задавать оператору вопрос о выборе способа ввода данных в файл (из таблицы или с помощью диалога).

5. Подключите программы к созданному вами классу. Модифицируйте программу инициализации Sub Class_Initialize() так, чтобы при создании объекта оператору задавался бы вопрос об источнике начальных данных (таблица или файл) и, если это файл, об имени файла.

6. Модифицируйте программу Sub Class_Terminate() своего класса так, чтобы перед удалением объекта оператор получал запрос о необходимости сохранения данных в файле и об имени этого файла, если он сохраняется.

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

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

1. В чем заключается отличие функций InputBox и MsgBox?

2. Каково назначение аргумента title?

3. Каково назначение аргумента prompt?

4. Каково назначение констант аргумента buttons функции MsgBox?

5. Что является результатом работы функции MsgBox?

6. Что является результатом работы функции InputBox?

7. Как функциями InputBox и MsgBox организовать доступ к файлу со стороны объекта?

8. Каков смысл возвращаемых значений функции MsgBox?

9. Как задать комбинацию кнопок на рабочей панели функции MsgBox?

10. Как определить нажатую на рабочей панели функции InputBox кнопку?

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

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

Стандартные классы и объекты при взаимодействии Excel и VBA

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

Элементы управления рабочего листа Excel

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

Программы, подготовленные с помощью VBA, предназначены для выполнения в многозадачной и многооконной операционной среде. Желательно, чтобы взаимодействие с этой средой осуществлялось в стандартном для нее виде. Учитывая то, что, во-первых, средства такого взаимодействия уже созданы, а, во-вторых, созданные средства предусматривают возможность их использования пользовательскими программами, целесообразно пользоваться уже существующими решениями, обеспечивающими взаимодействие оператора и ЭВМ. Реализация подобного взаимодействия существенно облегчена за счет предусмотренного разработчиками операционной среды объектного подхода к программированию.

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

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

Для внедрения объектов на рабочий лист Excel необходимо командой Вид, Панели инструментов, Элементы управления включить панель инструментов Элементы управления. В числе прочих на панели присутствует кнопка Режим конструктора. При ее нажатии можно создавать, видоизменять и задавать свойства объектов управления. Если кнопка Режим конструктора отпущена, то созданные элементы выполняют возложенные на них функции (рабочий режим). На рис. 11 представлен набор классов основных элементов управления, а также изображения кнопок панели Элементы управления с расшифровкой их названий.

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

После установки объекта на лист можно осуществлять действия по редактированию его свойств. Существующий набор свойств объекта можно узнать нажатием кнопки Свойства на панели управления рис. 12. В ответ на экран генерируется таблица, которая содержит полный перечень свойств объекта. Он может быть упорядочен или по алфавиту, или по категориям. Меняя содержимое правых полей этой таблицы, можно задать новые значения свойств. Так, например, можно сделать новую надпись на объекте (Caption), новый идентификатор объекта в программе (Name) и так далее. Значения некоторых свойств (например, размер или положение кнопки) могут быть изменены и с помощью мышки прямо на листе Excel.

Набор методов, применимый к объекту, может быть получен, в частности, за счет всплывающего окна справки. Оно активируется в результате набора в тексте программы имени объекта и ввода символа точки (смотри примечание на стр. 65).

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

Рис. 11. Изображения кнопок управления панели Элементы управления, их названия и символические имена

После внедрения на рабочий лист кнопки окно модуля кода имеет вид рис. 13. Правая часть заголовка окна модуля кода содержит раскрывающийся список, в котором перечислены события, обрабатываемые объектом. Для создания заголовка программы обработки события достаточно щелкнуть его наименование в раскрытом меню. К числу стандартных событий, которые обычно есть у всех элементов, относятся щелчок (Click), двойной щелчок (DblClick), изменение (Change) и некоторые другие.

Рис. 12. Внешний вид рабочего листа с внедренной кнопкой и открытым окном свойств

Рис. 13. Внешний вид окна модуля кода с раскрытым списком обрабатываемых событий

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

Набор свойств и обрабатываемых событий одинаков для всех объектов одного класса. В тоже время объекты другого класса могут иметь свой набор свойств и обрабатываемых событий.

Рассмотрим подробнее некоторые классы, входящие в общий класс элементов управления. Кнопка (CommandButton) позволяет обрабатывать события, связанные с ее нажатием. Ее основная функция – генерация события Click, которое далее может быть обработано программным путем в результате выполнения соответствующей процедуры (рис. 13). Эта же процедура может быть вызвана и в некоторых других случаях.

Если кнопку можно только нажать, то Флажок (CheckBox) показывает, включено или выключено определенное условие, определяемое свойством Value и отображаемое на изображении флажка. Аналогичные возможности предоставляет элемент управления Выключатель (ToggleButton).

Пример 27. На рабочем листе Excel в режиме конструктора созданы два объекта: флажок (CheckBox1) и поле (TextBox1), а также набрана программа обработки события, возникающего после щелчка мышью по флажку и заключающаяся в проверке состояния флажка (свойство Value) и выдаче соответствующего сообщения в текстовом поле. Ее текст представлен ниже:

Private Sub CheckBox1_Click()

If CheckBox1.Value Then

TextBox1.Value = "Флажок включен"

Else

TextBox1.Value = "Флажок выключен"

End If

End Sub

В отличие от флажка и выключателя Переключатель (OptionButton) предоставляют пользователю выбор из двух или более возможностей. Они всегда работают как часть группы: выбор одного из них немедленно сбрасывает все другие переключатели группы. На каждом листе Excel можно разместить только одну группу переключателей.

Особенностью элементов Список (ListBox) и Поле со списком (ComboBox) является связанный с каждым экземпляром список хранимых значений. Именно этот список и отображается в окне. По умолчанию список имеет только один столбец, хотя, при необходимости, свойством ColumnCount может быть задано несколько столбцов. Если количество элементов в списке превышает количество возможных отображаемых элементов, автоматически появляются полосы прокрутки.

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

В процессе работы со списком пользователь выделяет одну из записей. Номер выбранной записи можно узнать, воспользовавшись свойством ListIndex. Оно доступно только во время выполнения программы. Это свойство устанавливает и возвращает текущий выбранный элемент. Если выбран первый элемент списка, значение свойства равно 0. Следующий элемент списка дает значение свойства 1, следующий 2 и так далее. Если не выбрано ни одно значение списка, то значение свойства -1. Отметим, что установка значения свойства ListIndex вызывает появление события Click для этого списка. Кроме этого, значение текущего выбранного элемента может быть получено с помощью свойства Text.

Еще одна возможность доступа к элементам списка реализуется через свойство List. При его использовании список рассматривается как массив, нижнее значение индексов которого равно 0.

Пример 28. Программа обработки события GotFocus с использованием свойств Clear, ColumnCount, AddItem, List таблицы рис. 12:

Private Sub ListBox1_GotFocus()

Dim Строка_списка As Integer, Колонка_списка _

As Integer, Элементов As Integer, i As Integer

'Задание начального адреса размещения и количества элементов списка

Строка_списка = 3

Колонка_списка = 1

Элементов = 4

'Очистка списка и подготовка к его заполнению

ListBox1.Clear

ListBox1.ColumnCount = 2

'Заполнение списка тем

For i = 0 To Элементов - 1

ListBox1.AddItem (Cells (Строка_списка + i, Колонка_списка).Value)

ListBox1.List(i, 1) = Cells(Строка_списка + i, Колонка_списка + 1).Value

Next i

End Sub

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

Пример 29. Программа обработки события Click:

Private Sub ListBox1_Click()

Dim АА As String, Выбор As Integer

'Определение номера выбранной строки списка

Выбор = ListBox1.ListIndex

'Определение адреса активной ячейки. Адрес возвращается в формате A1

АА = ActiveCell.Address

'Запись в активную ячейку значения из второй колонки списка

Range(АА).Value = ListBox1.List(Выбор, 1)

End Sub

Элемент управления Надпись (Label) предназначен для отображения текста. Текущее значение текста может быть считано и, при необходимости, изменено свойством Caption.

Элемент управления Поле (Text Box) используются как для отображения, так и для ввода текста с клавиатуры в процессе выполнения программы. Содержимое поля может быть считано свойством Text. По умолчанию в текстовом поле отображается только одна строка без полос прокрутки. При необходимости на этапе разработки свойством MultiLine можно задать возможность работы с несколькими строками, а свойством ScrollBars включить полосы прокрутки.

Примечание. В категории Другие элементы управления меню рис. 11 присутствует еще ряд элементов, которые могут быть использованы для организации диалога. Среди них отметим Элемент управления Календарь 10.0 предназначенный непосредственно для чтения и ввода дат.

Задание

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



Поделиться:




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

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


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