
Информатика_1 / Информатика / VBA Excel 2007
.pdf
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«КАМСКАЯ ГОСУДАРСТВЕННАЯ ИНЖЕНЕРНО-ЭКОНОМИЧЕСКАЯ АКАДЕМИЯ»
РАЗРАБОТКА ПРИЛОЖЕНИЙ В VBA
методические указания для выполнения курсовой работы по дисциплине «Информатика»
Набережные Челны
2012
Макарова, И.В. Разработка приложений в VBA: методические указания для выполнения курсовой работы по дисциплине «Информатика» / И.В. Макарова, А.И. Беляев, В.Г. Маврин. – Набережные Челны: ИНЭКА, 2012. – 52 с.
Методические указания для выполнения курсовой работы по информатике разработаны на кафедре «Сервис транспортных систем» и предназначены для самостоятельной работы во время курсового проектирования для студентов направлений подготовки бакалавров 220100.62 «Системный анализ и управление» и 230400.62 «Информационные системы и технологии».
Рассмотрены основы программирования на VBA, содержится технология создания приложения с использованием возможностей табличного процессора Excel и VBA.
Рецензент: к.пед.н., доцент Ахметзянова Г.Н.
Печатается по решению научно-методического совета Камской государственной инженерно-экономической академии.
© Камская государственная инженерно-экономическая академия, 2012 год.
2
Содержание |
|
1. Использование возможностей VBA для разработки приложений |
..........4 |
1.1. Основные понятия Visual Basic............................................................ |
4 |
1.2. Работа с объектами Excel...................................................................... |
6 |
1.3. Объекты Excel ........................................................................................ |
6 |
1.3.1. Использование коллекции объектов ............................................. |
7 |
1.3.2. Классы ............................................................................................. |
7 |
1.3.3. Методы и свойства объектов ......................................................... |
7 |
1.3.4. События ........................................................................................... |
8 |
1.3.5. Общие свойства и методы семейств объектов ............................. |
8 |
1.3.6. Объектная модель Excel................................................................. |
9 |
2. Основы программирования на VBA ......................................................... |
16 |
2.1. Типы данных и переменные ............................................................... |
16 |
2.2. Операции VBA..................................................................................... |
18 |
2.3. Приоритеты операций ......................................................................... |
18 |
2.4. Операторы VBA................................................................................... |
19 |
2.4.1. Оператор присваивания ............................................................... |
19 |
2.4.2. Оператор With............................................................................... |
19 |
2.4.3. Операторы управления................................................................. |
20 |
2.5. Процедура ............................................................................................ |
27 |
2.6 Организация программы на языке VBA ............................................. |
31 |
2.7. Вызов процедуры................................................................................. |
32 |
2.8. Передача параметров по ссылке и значению .................................... |
33 |
3. Организация взаимодействия с пользователем ....................................... |
34 |
3.1. Вывод сообщений с помощью окон сообщений............................... |
34 |
3.2. Ввод данных пользователем с помощью окон ввода. ...................... |
36 |
3.3. Создание формы и работа со свойствами формы ............................. |
37 |
3.3.1. Использование полей, надписей и кнопок. ................................ |
38 |
3.3.2.Программирование формы и ее элементов управления............ |
41 |
3.3.3. Использование флажков, переключателей и рамок.................. |
44 |
3.3.4. Использование выключателей и счетчиков. .............................. |
47 |
3.3.5. Использование элементов управления набора вкладок и набора |
|
страниц .................................................................................................... |
49 |
3.3.6.Использование элемента RefEdit.................................................. |
53 |
3.4. Управление окружением рабочей области........................................ |
54 |
4. Рекомендации по выполнению курсовой работы .................................... |
56 |
5. Темы курсовых работ ................................................................................. |
64 |
Список рекомендуемых источников............................................................. |
70 |
3
1. Использование возможностей VBA для разработки приложений
1.1. Основные понятия Visual Basic
Visual Basic – это расширение традиционного языка Basic элементами объектно-ориентированного программирования, которые использовались при создании программ для
Microsoft Office. Обычно говорят о Visual Basic for Applications. Это скорее собирательный термин, потому что приложений много и для каждого предназначен свой диалект VB. Общим является то, что в пределах Microsoft Office программирование превратилось в макропрограммирование.
VBA использует технологию визуального программирования, т. е. конструирование рабочей поверхности приложения и элементов его управления непосредственно на экране, а также запись всей программы или ее частей при помощи макрорекордера.
VBA относится к языкам объектно-ориентированного программирования (ООП). ООП можно описать как методику анализа, проектирования и написания приложений с использованием объектов.
Возможность комбинирования объектов, их методов и свойств позволяет создавать практически неограниченное (и, естественно, нигде не описанное) множество операторов с достаточно сложным синтаксисом.
Каждая программа на VB должна начинаться с оператора Sub, а заканчиваться – оператором End Sub.
В новых версиях Excel разработчики отказались от размещения текстов программ на листах-модулях. Теперь для работы с макросами используется так называемый редактор VB. Он предназначен не только для редактирования кода, но и для работы с файлами, отладки и получения справочных сведений по VB. Однако идея модулей оказалась достаточно плодотворной, и они были преобразованы в подобия папок Windows. Левая область окна редактора VB – Окно проекта
4
– содержит древовидную структуру, которая помогает понять организацию рабочей книги. Здесь обычно размещается панель с перечнем свойств рабочей книги. Это происходит после нажатия кнопки Окно свойств. Еще один режим редактора – просмотр всех классов, доступных в текущей рабочей книге. Его можно включить кнопкой Просмотр объектов. В этом случае левая область окна будет содержать список классов, а правая – перечень соответствующих свойств, событий, функций и констант. Пользователю предоставляется возможность перейти к разделу справочной системы, нажав кнопку со знаком вопроса.
Кнопка Конструктор предназначена для отключения редактора. Нажатие на нее активизирует выход из режима конструктора. Панель инструментов будет постоянно находиться на экране, независимо от того, какой режим работы Excel (например, просмотр рабочих листов) изберет пользователь. Отжав кнопку, пользователь закроет редактор VB. На этой панели можно разместить необходимые кнопки, программа запомнит конфигурацию, и будет выводить в дальнейшем панель в расширенном виде.
Для того чтобы отредактировать текст макроса, необходимо выделить содержащий его модуль, а затем из списка выбрать имя нужного макроса.
Если пользователь открыл рабочую книгу и записал новый макрос, то для его размещения будет автоматически создан новый модуль. Появление новых модулей после каждого сеанса работы иногда не очень удобно. Процедуры из одного модуля можно перенести в другой, потому что уникальность имен процедур соблюдается в пределах всей рабочей книги, а список макросов для запуска формируется независимо от их принадлежности к тому или иному модулю. Ненужный модуль можно удалить. Для этого его надо выделить и использовать меню Файл или контекстное меню. Перед удалением программа предложит выполнить экспорт модуля, то есть
5
создать файл с текстом программ, имеющий тип .BAS. Обратная операция – импорт модуля – позволяет вставить модуль в рабочую книгу.
Во время редактирования текста макросов программа обеспечивает режим подсказок. Когда пользователь записывает конструкцию языка, которую программа способна распознать, рядом со строкой ввода возникает подсказкашаблон, дающий пользователю дополнительную информацию о синтаксисе языка.
Система меню редактора VB в общих чертах напоминает Excel. Пользователь получает доступ к стандартным и хорошо знакомым командам работы с файлами, печатью, буфером обмена, а также поиска и форматирования. Системы настройки панелей инструментов, получения справки и управления окнами тоже похожи. Оригинальными являются только команды для запуска, записи и отладки макроса.
1.2. Работа с объектами Excel
Большая часть реальной работы выполняется макросом Excel с помощью объектной модели Excel. Операции в записанном макросе – в основном результаты выполнения методов и модификации свойств встроенных объектов. При записи собственного кода необходимо разобраться в объектной модели Excel, чтобы определить наилучшую последовательность действий в коде.
Объектная модель для приложения описывает структуру и функциональные возможности программы. В Excel есть объекты, представляющие само приложение, рабочие книги, рабочие листы, ячейки и диапазоны.
1.3. Объекты Excel
Объект – это инкапсуляция данных вместе с кодом, предназначенным для их обработки, т.е. объединение данных и кода в единое целое. И хотя в строгом понимании VBA не является объектно-ориентированным языком программирования, объектный подход играет в нем ведущую роль. Все
6
визуальные объекты, такие как рабочий лист, диапазон, диаграмма, форма – объекты. В VBA более 100 встроенных объектов.
1.3.1. Использование коллекции объектов
Многие объекты обычно находятся в коллекциях. Коллекция – это множество элементов, представленных в том порядке, как они определены в Excel. Работать с определенным объектом в коллекции можно с помощью индекса элемента. Кроме числового индекса, в коллекции в качестве индекса можно использовать имя элемента. Этот прием особенно полезен, поскольку многие коллекции изменяются динамически, и номер индекса для элемента может измениться.
1.3.2. Классы
Важнейшее понятие ООП – класс. Он обычно описывается как проект, на основе которого впоследствии будет создан конкретный объект. Таким образом, класс определяет имя объекта, его свойства и действия, над ним выполняемые. В свою очередь, каждый объект, в описанном смысле, является экземпляром класса.
1.3.3. Методы и свойства объектов
Чтобы использовать объект, необходимо работать с его методами и свойствами.
Метод представляет действия, выполняемые объектом, т.е. он подобен предопределенной процедуре, которая выполняет некоторые операции над объектом.
Синтаксис применения метода: Объект.Метод. Метод можно применять ко всем объектам семейства объекта
Многие методы имеют один или несколько аргументов. Аргумент – это вид данных, по которым метод определяет, как он должен работать. Некоторые аргументы необязательны.
Свойство представляет собой атрибут объекта, определяющий его характеристики. Свойство описывает содержимое или другие атрибуты объекта, а также используется для изменения атрибутов объекта. Для поиска доступных свойств
7
объекта можно использовать средство Просмотр объектов. Синтаксис установки значения свойства:
Объект.Свойство = ЗначениеСвойства
Свойство можно изменять сразу у всех объектов семейства. Часто один объект содержит свойства, которые ссылаются на другие объекты, так что можно получить строку с несколькими точками в одном выражении.
1.3.4. События
Событие представляет собой действие, распознаваемое объектом (например, щелчок мышью или нажатие клавиши), для которого можно запрограммировать отклик. События возникают в результате действий пользователя или программы, или же они могут быть вызваны системой.
Суть программирования на VBA заключается в создании кода программ, которые генерируют прямо или косвенно отклики на события.
1.3.5. Общие свойства и методы семейств объектов
Семейства объектов имеют одно общее свойство Count, возвращающее число элементов семейства и три метода:
Метод |
Описание |
|
|
|
|
Add |
Добавляет новый элемент в семейство: object.Add item, key, |
|
|
before, after |
|
|
item - обязательный. Выражение, специфицирующее добав- |
|
|
ляемый элемент |
|
|
key – необязательный. Может использоваться вместо по- |
|
|
рядкового номера элемента |
|
|
before – необязательный, указывает, перед каким элемен- |
|
|
том в семействе размещается добавляемый элемент |
|
|
after – необязательный, указывает, после какого элемента в |
|
|
семействе размещается добавляемый элемент |
|
Item |
Возвращает специфицированный элемент семейства: |
|
|
object.Item(index) |
|
|
где index – порядковый номер элемента в семействе или его |
|
|
идентификатор, заданный параметром key метода Add |
|
Remo |
Удаляет элемент из семейства: Object.Remove index |
|
-ve |
где index – порядковый номер элемента в семействе или его |
|
идентификатор, заданный параметром key метода Add |
||
|
8
1.3.6. Объектная модель Excel
Объектная модель Excel представляет собой иерархию объектов, подчиненных одному объекту Application, который соответствует самому приложению Excel. Многие из них собраны в библиотеке объектов Excel, но некоторые, например Assistant, входят в библиотеку объектов Office, общую для всех офисных приложений.
Полная ссылка на объект состоит из ряда имен вложенных последовательно друг в друга объектов. Их имена в этом ряду разделяются точками. Ряд начинается с объекта Application и заканчивается именем самого объекта.
В неявной ссылке, в отличие от полной, активные в данный момент объекты, как правило, можно опускать.
Объект Application. В Excel объект Application – глав-
ный (корневой), представляющий само приложение. Он используется для обеспечения свойствами и методами, которые ссылаются на Excel как на единое целое, а также для предоставления доступа к остальной части объектной модели Excel.
Можно использовать методы и свойства объекта Application непосредственно с помощью точечной нотации. Объект Application охватывает более 180 методов и свойств.
Свойства объекта Application:
Свойство |
Описание |
|
|
ActiveCell |
Возвращает объект диапазона, ссылающийся |
|
на активную ячейку |
ActivePrinter |
Возвращает или устанавливает активный |
|
принтер |
ActiveSheet |
Возвращает объект листа, ссылающийся на |
|
активный рабочий лист |
ActiveWindow |
Возвращает объект окна, ссылающийся на |
|
активное окно |
ActiveWorkbook |
Возвращает объект рабочей книги, ссылаю- |
|
щийся на активную книгу |
Calculation |
Возвращает или устанавливает режим вы- |
|
числения |
9
Свойство |
Описание |
Caption |
Возвращает или устанавливает текст стро- |
|
ки заголовка Excel |
CommandBars |
Возвращает объект, представляющий панель |
|
команд Excel (строки меню и панели инстру- |
|
ментов) |
DefaultFilePath |
Возвращает или устанавливает местораспо- |
|
ложение, используемое Excel для сохранения |
|
новых книг |
DisplayFormulaBa |
Показывает или устанавливает, отображена |
r |
ли строка формул Excel |
|
|
MailSystem |
Возвращает число, которое определяет уста- |
|
новленную систему электронной почты (если |
|
есть) |
MemoryFree |
Возвращает число байтов свободной памяти |
Name |
Возвращает имя приложения |
OperatingSystem |
Возвращает имя и номер версии операционной |
|
системы |
PreviousSelections |
Возвращает массив последних четырех диапа- |
|
зонов или имена выделенных диапазонов |
RecordRelative |
Указывает, записывался ли макрос с относи- |
|
тельными ссылками |
ScreenUpdating |
Указывает, обновлялся ли экран Excel во время |
|
выполнения макроса |
StatusBar |
Возвращает или устанавливает текст в |
|
строке состояния |
UserName |
Возвращает имя текущего пользователя |
VBE |
Возвращает ссылку на редактор Visual Basic |
Workbooks |
Возвращает коллекцию всех открытых книг |
С помощью методов объекта Application определены действия, которые могут выполняться на уровне приложения:
Метод |
Описание |
|
|
ActivateMicrosoftAp |
Запуск программы Microsoft, например |
p |
Word или Access |
|
|
Calculate |
Проведение вычислений во всех открытых |
|
книгах |
10