Лабораторная работа Работа с объектами Microsoft Excel.Формы.

 

Программирование в Visual Basic реализуется на основе объектно-ори­ен­­ти­ро­ванного программирования (ООП) и его применения в Excel. Для того что­бы ис­пользовать элементы программирования Visual Basic в Excel не­об­ходимо оп­ре­делить понятие: объект, свойства объекта, методы, объек­тов и их ис­поль­зо­ва­ние в программе.

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

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

ООП максимально использует принцип модульности. Программный объект в ООП называют «контейнером». Контейнер включает в себя данные и код, ко­то­рый знает, как манипулировать этими данными.

Объект – совокупность данных вместе с программным кодом, предназначенным для их обработки.

Другими словами, программный объект (контейнер) – это блок, состоящий из кода и данных.

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

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

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

Общими примерами объектов Visual Basic и Excel служат таблицы, области ячеек, командные кнопки, текстовые окна, рабочие папки, диаграммы и модули. Программный объект обладает определенными свойствами и методами.

Свойства - это видимые характеристики объекта. Свойства объекта определяют его внешний вид и поведение.

Методы - это операции преобразования этих данных.

Видимые характеристики – это данные, которые могут быть доступны вне объекта. Свойствами считаются данные, которыми объект манипулирует или ко­то­рые позволяют контролировать, как выглядит объект или как он себя ведет. Например, свойство Value текстового окна – это текст, который вводится в окно.

Когда выполняется метод, он может изменить значения лишь свойств данного объекта, но не других объектов. Метод может только запросить какой-нибудь объект об изменении некоторого свойства.

Вызвать объект, также как процедуру невозможно. Для изменения свойства объекта или выполнения одного из методов, объекту следует послать сообщение. Например, для выполнения операции над данными объекта указывается

Имя объекта. Метод,

а для изменения некоторого свойства

Имя объекта. Свойство=значение.

Пусть имя объекта Power, который имеет свойство Value, тогда возможно изменение этого свойства с помощью инструкции:

Power. Value = 3 ‘Свойство Value –значение – будет равно 3

либо запоминание значения характеристики объекта в переменной

X = Power. Value ‘В переменную x помещается значение свойства value.

Существуют десятки и даже сотни разнообразных объектов в VBA. Однако некоторые из них будут встречаться практически на каждом шагу. Некоторые из них приведены в табл. 4.1.

Таблица 4.1

Объекты VBA Excel

Класс объектов Описание объекта
Application (приложение) Этот объект представляет собой само приложение Excel, в целом включает в себя все встроенные функции MS Excel.
Workbook (рабочая книга) Определяет состояние рабочей книги, например, является ли она открытой для чтения, или какой из методов является активным в настоящий момент. Этому же классу принадлежит объект ActiveWorkBook – представляет активную в настоящий момент книгу.
Worksheets (рабочий лист) Объект используется при копировании или удалении рабочих листов, их скрытии или показе, проведение вычислений для формул рабочего листа. Этому же классу принадлежит объект ActiveWorkSheet - это объект, который представляет собой активный в настоящее время рабочий лист.
Window (окно) Объект этого класса используется при свертке или развертке окна, разбиении его на части и фиксировании подокон. ActiveWindow – представляет активное окно
Range (интервал) Объект этого класс позволяет изменять свойства интервала ячеек, например, используемый шрифт, проверять или изменять содержимое ячеек, вырезать или копировать интервал и т. д. Это наиболее часто используемый класс объектов. К этому же классу относятся объекты: ActiveСell - активная ячейка. Отдельно взятая ячейка представляет собой частный случай Range.

Как уже было сказано, каждый объект имеет целый ряд присущих ему характеристик или свойств. Некоторые из них приведены в табл. 4.2

Таблица 4.2

Свойства некоторых объектов VBA

Объект Свойство Описание
Application ActiveWindow ActiveWorkBook ScreenUpdating StandardFont Активное окно Активная рабочая книга Имя стандартного шрифта для новых рабочих листов
WorkBook ActiveSheet FullName Name Saved Активный рабочий лист Полное имя рабочей книги, включая путь. Имя рабочей книги. Признак того, что состояние рабочей книги сохранено на диске (имеет значение False, если в книге сделаны изменения)
Worksheet Name Previons ProtectContents Visible Имя рабочего листа Предыдущий рабочий лист Режим защиты содержимого ячеек рабочего листа. Режим видимости рабочего листа (скрыт или показан).
Window ActiveCell DisplayGridlines Selection Visible WindowState Активная ячейка Режим отображения линий сетки Текущий выделенный объект. Режим видимости окна. Режим отображения окна (свернуть окно, полноэкранный режим, нормальный размер)
Range Column Font Formula Name Row Value Worksheet Первый столбец интервала Используемый в интервале шрифт Формула интервала Имя интервала Первая строка интервала Значение ячейки Рабочий лист

Приведем несколько примеров, в которых показано как определяются (устанавливаются свойства объектов):

1) установить в активной ячейке шрифт размером в 14 пт.

ActiveCell.Font.Size=14

где Size – свойство объекта Font;

2) установление в активной ячейке шрифта с названием Courier New Cyr

ActiveCell.Font.Name = «Courier New Cyr»

где Name – свойство объекта Font;

3) установление в активной ячейке для шрифта начертание – курсив

ActiveCell.Font.Italic=True.

Кроме того, каждый объект имеет присущие ему методы (Метод – описывает действие, которое можно совершить над объектом). Некоторые методы объектов представлены в табл. 4.3.

Таблица 4.3

Таблица некоторых методов объектов VBA

Объект Метод Описание
Application Quit Undo Завершение MSExsel Отменяет последнее выполнение действия
Workbook Activate Close Save SaveAs Активизирует рабочую книгу. Закрывает рабочую книгу. Сохраняет рабочую книгу. Сохраняет рабочую книгу под другим именем.
Worksheet   Activate Calculate Delete Protect Unprotect Активизирует рабочий лист. Заново вычисляет значение рабочего листа. Удаляет рабочий лист. Защищает рабочий лист. Отменяет защиту рабочего листа.
Window Activate Close Активизирует окно. Закрывает окно.
Range Clear ClearContents ClearFormats Offset   Select Полностью очищает интервал с форматированием. Очищает содержимое ячейки. Очищает форматирование ячейки. Возвращает интервал, с указанным смещением относительно первоначального интервала. Выделяет интервал

Рассмотрим решение нескольких задач.

Задача 4.1

Получить информацию об имеющихся свойствах рабочей книги: количество листов в книге, имя книги и имя третьего листа этой книги. Результат вывести в ячейки рабочего листа.

Решение

Sub Info()

'Подсчет количества листов и результат помещается в B1

Worksheets("Лист1").Range("B1").Value =Worksheets.Count

'Определяет имя активной книги и помещается в B2

Worksheets("Лист1").Range("B2").Value=AktiveWorkBook.FullName

'Определяет имя третьего листа книги и помещает в B3.

Worksheets("Лист1").Range("B3").Value = Worksheets(3).Name

End Sub

Задание 4.1

Написать код, используя объекты и методы, который пересчитывает количество листов в текущей книге, прибавляет ещё один лист и последний лист называет «Привет», на новый лист выводит размер шрифта, имя шрифта.

Указание

Метод добавления: add.

Задание 4.2

Написать код, удаляющий последний лист из книги.

Информация

Одними из основных объектов Microsoft Excel являются рабочая книга и рабочий лист.

Создавая, открывая или сохраняя файл в Microsoft Excel, фактически создается, открывается и сохраняется рабочая книга. Для работы с рабочей книгой в Visual Basic используются методы объекта WorkBook или набора WorkBooks.

Инструкция With

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

With <объект>

<инструкции>

End With

где With ,End With – ключевые слова,

<объект> – любой объект Excel,

<инструкции> – инструкции VBA, использующие свойства и методы <объекта>. Каждая инструкция должна начинаться с точки.

Следующий фрагмент программы устанавливает для диапазона А1:С8 полужирный шрифт красного цвета с высотой символов 20пт и не использует инструкцию With.

Range(“А1:С8” ).Font.Bold=True

Range(“А1:С8” ).Font.ColorIndex=3

Range(“А1:С8” ).Font.Size=20

 

Следующий пример демонстрирует использование инструкции With для присвоения значений нескольким свойствам одного объекта.

With Range(“А1:С8” ).Font

.Bold=True

.ColorIndex=3

.Size=20

End With

Формы как объект

VBA позволяет организовать удобный и интуитивно понятный интерфейс пользователя с данными при помощи форм.

Формы – это объекты, которые обладают свойствами, определяющими их внешний вид, методами, определяющими их поведение, и событиями, которые определяют их взаимодействие с пользователем. Установкой свойств формы и разработкой кода VBA для отклика формы на события создается объект, удовлетворяющий требованиям определенного приложения.

Элементы управления – это объекты, содержащиеся внутри объектов-форм. Каждый тип элемента управления имеет свой собственный набор свойств, методов и событий, что делает его пригодным для определенной цели. Некоторые элементы управления, используемые в приложениях, лучше всего подходят для ввода или отображения текста. Другие элементы управления обеспечивают доступ к другим приложениям и данным процессов таким образом, как будто бы удаленное приложение является частью самого приложения.

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

VBA обладает встроенным набором элементов управления. Используя это набор и редактор форм не трудно создать любой пользовательский интерфейс, который будет удовлетворять всем требованиям, предъявляемым к интерфейсу в среде Windows. Элементы управления являются объектами. Поэтому, как любые объекты, они обладают свойствами, методами и событиями.

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

Для размещения элемента управления на листе или в форме нажмите соответствующую кнопку панели инструментов Элементы управления и с помощью мыши перетащите рамку элемента управления в нужное место. После этого элемент управления можно перемещать, изменять его размеры, копировать в буфер обмена и вставлять из буфера.

Элемент управления Имя Кнопка для создания элемента
Поле TextBox
Надпись Label
Кнопка CommandButton
Список ListBox
Поле со списком ComboBox
Полоса прокрутки ScrollBar
Счетчик SpinButton
Переключатель OptionButton
Флажок CheckBox
Выключатель ToggleButton
Рамка Frame
Рисунок Image
RefEdit RefEdit
Набор страниц MultiPage
Набор вкладок TabStrip