Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

12_Шишкина Л.П., Бояринцева Т.П., Сержант Т.Н_Лаб_практикум по информатике_VBA_2012

.pdf
Скачиваний:
36
Добавлен:
26.03.2016
Размер:
1.01 Mб
Скачать

Министерство образования РФ

ИРКУТСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Л.П.Шишкина, Т.П.Бояринцева, Т.Н.Сержант

ЛАБОРАТОРНЫЙ ПРАКТИКУМ ПО ИНФОРМАТИКЕ

для студентов очной формы обучения

Часть II. Visual Basic for Applications

Издательство Иркутского государственного технического университета

2012

УДК [002.6+681.3](075.8)

ББК 32.97я 73

Л.П.Шишкина, Т.П.Бояринцева, Т.Н.Сержант

Лабораторный практикум по информатике. Часть II. Visual Basic for Applications. – Иркутск: Изд-во Иркутского госуд. техн. ун-та, 2012. - 52 с.

Приводятся основные сведения о программировании на VBA (Visual Basic for Applications), а также лабораторные, контрольные и курсовые работы, позволяющие освоить основные приемы программирования с табличным процессором Excel. Часть II ориентирована на студентов дневной формы обучения. Она должна помочь им получить начальные навыки программирования в современной объектно и событийно-ориентированной визуальной среде программирования. Планируется также издание вариантов заданий на подготовку курсовых работ для студентов ряда факультетов - темы этих работ должны быть приближены к будущим специальностям студентов.

Л.П.Шишкина, Т.П.Бояринцева, Т.Н.Сержант,

Иркутский государственный технический университет, 2012

2

Содержание

 

 

Стр.

Введение

4

1.

Создание интерфейса пользователя

4

2.

Основные понятия

7

3.

Редактор VBA

7

4.

Работа с переменными, массивами, константами и со свойствами

 

 

объектов

9

5.

Основные инструкции языка Visual Basic

14

6.

Создание пользовательских форм

20

7.

Отладка приложений

21

8.

Лабораторные работы

25

9.

Самостоятельные и контрольные работы

34

10.Курсовые работы

36

11.

Дополнительные курсовые работы для студентов горно-геологических

 

 

специальностей

48

ЛИТЕРАТУРА

52

3

Введение

Программирование – это теоретическая и практическая деятельность, связанная с созданием программ. Цель этого практикума – познакомить студентов с современными инструментальными средствами и методами создания программ.

В качестве инструмента для создания приложений в данной работе выбран VBA –Visual Basic for Applications (Visual Basic для приложений). Этот выбор объясняется следующими причинами:

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

-языковые средства VBA по гибкости и полноте не уступают языковым средствам других современных систем программирования и, следовательно, позволяют освоить типовые методы и приемы разработки программных процедур;

-VBA является общей языковой платформой для всех приложений MS Office и позволяет в создаваемых программах работать с объектами Word, Excel, Access, Power Point, OutLook, Binder; мы будем рассматривать VBA во взаимосвязи с Excel,

размещая на листах Excel исходные данные и результаты решения задач.

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

1. Создание интерфейса пользователя

Для создание интерфейса пользователя используются элементы управления и диалоговые окна. С помощью пункта меню Вид/Панели инструментов/Visual Basic разместим панель инструментов VBA рядом с другими панелями инструментов Excel.

На этой панели расположены следующие значки:

Выполнить макрос, Записать макрос, Редактор Visual Basic, Элементы управления и Режим конструктора. Третий значок применяется для переключения на окно редактора. Он нам понадобится позже, во время разработки процедур. А нажатие

на кнопку с четвертым значком приведет к появлению в пределах листа Excel панели, содержащей элементы управления и три кнопки (с левого края): Режим конструктора,

Свойства и Исходный текст.

Флажок поле кнопка переключатель

счетчик надпись

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

Итак, теперь на листе Excel имеется весь необходимый инструментарий для создания

4

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

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 1.

 

 

 

 

 

 

 

 

 

Элементы управления

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Элементы

 

 

 

Свойства

 

 

 

 

 

 

 

 

 

 

 

 

управ-

 

 

 

 

Border

 

 

 

Height,

 

 

Text

 

 

 

ления

Использование/

 

 

Style

 

Caption

Enabled

 

 

 

Align

 

 

Visible

 

описание

 

 

Name

(тип

 

(заголо-

(доступ-

 

Width

Font

 

(вырав-

Text

Value

(види-

 

 

 

 

(имя)

грани-

 

вок)

ный)

 

(ширина

(шрифт)

 

нива-

(текст)

(число)

мый)

 

 

 

 

 

цы)

 

 

 

 

высота)

 

 

ние)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Поле (Text

Ввод, редактирование

TextBox1

 

 

 

 

 

 

 

 

 

 

 

 

Box)

данных или вывод

 

 

 

 

 

 

 

 

 

 

 

 

или

+

 

 

+

 

+

+

 

+

+

+

+

 

результатов програм-

 

 

 

 

 

другое

 

 

 

 

 

 

 

 

 

 

 

 

 

мы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Надпись

Отображает

неизме-

 

 

 

 

 

 

 

 

 

 

 

 

 

(Label)

няемый текст, напри-

Label1

 

 

 

 

 

 

 

 

 

 

 

 

 

мер заголовки

для

или

+

 

+

+

 

+

+

 

+

 

 

+

 

других

элементов

другое

 

 

 

 

 

 

 

 

 

 

 

 

 

управления

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Флажок

Позволяет задать зна-

Check Box1

 

 

 

 

 

 

 

 

 

 

 

 

(Check

чение “Истина” или

или

 

 

+

+

 

+

+

 

 

 

+

 

Box)

”Ложь”

 

 

другое

 

 

 

 

 

 

 

 

 

 

 

 

Поле со

Позволяет

выбрать

Combo

 

 

 

 

 

 

 

 

 

 

 

 

списком

элемент из списка или

Box1

+

 

 

+

 

+

+

 

+

+

+

 

(Combo

ввести данные

вруч-

или

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Box)

ную

 

 

другое

 

 

 

 

 

 

 

 

 

 

 

 

Список

Применяется для хра-

List Box1

 

 

 

 

 

 

 

 

 

 

 

 

(List Box)

нения текстовых

 

или

+

 

 

+

 

+

+

 

 

+

+

 

 

строк – элементов

 

 

 

 

 

 

 

другое

 

 

 

 

 

 

 

 

 

 

 

 

 

списка

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

Элементы

 

Свойства

 

 

 

 

 

 

 

 

 

управ-

 

 

Border

 

 

Hight,

 

Text

 

 

 

ления

Использование/

 

Style

Caption

Enabled

 

Align

 

 

Visible

 

описание

Name

(тип

(заголо-

(доступ-

Width

Font

(вырав-

Text

Value

(види-

 

 

(имя)

грани-

вок)

ный)

(ширина

(шрифт)

нива-

(техт)

(число)

мый)

 

 

 

цы)

 

 

высота)

 

ние)

 

 

 

 

 

 

 

 

 

 

 

 

 

Кнопка

Используется для

Command

 

 

 

 

 

 

 

 

 

(Command

инициирования

Button1

 

 

 

 

 

 

 

 

 

Button)

выполнения некото-

или

 

+

+

+

+

 

 

 

+

 

рых действий, вызы-

другое

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ваемых нажатием

 

 

 

 

 

 

 

 

 

 

 

кнопки

 

 

 

 

 

 

 

 

 

 

Перек-

Позволяет выбрать

Option

 

 

 

 

 

 

 

 

 

лючатель

один вариант из не-

Button1

 

+

+

+

+

+

 

+

+

(Option

скольких

или

 

 

 

 

 

 

 

 

 

 

 

Button)

 

другое

 

 

 

 

 

 

 

 

 

Рамка

Используется для

Frame1

 

 

 

 

 

 

 

 

 

(Frame)

группировки элемен-

или

+

+

+

+

+

 

 

 

+

 

тов упраления

другое

 

 

 

 

 

 

 

 

 

Счетчик

Применяется для из-

Spin

 

 

 

 

 

 

 

 

 

(Spin

менения числового

Button1

 

 

+

+

 

 

 

+

+

Button)

значения

или

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

другое

 

 

 

 

 

 

 

 

 

Рисунок

Используется для ото-

Image1

 

 

 

 

 

 

 

 

 

(Image)

бражения графиче-

или

 

 

 

 

 

 

 

 

 

 

ских файлов

другое

 

 

 

 

 

 

 

 

 

6

2. Основные понятия

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

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

Модуль – совокупность описаний, процедур и функций.

Инструкция (оператор) – единица кода, которая является операцией или описанием. Описание – это инструкция, используемая для описания переменных, массивов, констант,

типов данных, а также ссылок на внешние функции.

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

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

Длина имени не должна превышать 256 символов.

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

Имена не должны включать точек, пробелов и следующих символов: % & ! # @ $

Имена должны быть уникальны внутри области определения.

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

VBA позволяет создавать три типа процедур Sub, Function и Property. При запуске процедуры Sub выполняются команды процедуры, а затем управление передается в приложение или процедуру, которая вызвала процедуру Sub. Function (функция) также решает определенную задачу. Различие заключается в том, что функция возвращает единственное значение, поэтому обычно используется для выполнения вычислений. Property используется для ссылки на свойство объекта. Применяется для установки или получения значения пользовательских свойств форм и модулей. Процедуры Sub подразделяются на процедуры, связанные с элементами управления (событийные) и процедуры общего назначения.

Объект - это программный элемент, который имеет свое отображение на экране, содержит некоторые переменные, определяющие его свойства и некоторые методы для управления объектом. Кроме элементов управления, имеется много встроенных объектов. Например, Worksheet - рабочий лист, Sheet - лист, Range - диапазон ячеек, Cells -ячейка, Dialogsheet -

диалоговое окно.

3. Редактор VBA

Разработка модулей (процедур) выполняется в редакторе VBA с использованием одного из двух основных методов.

Автоматическая запись макроса и его редактирование. Этот метод позволяет записать выполняемые пользователем действия, а затем в любое время воспроизвести их, т.е. автоматизировать работу. При записи макроса основное приложение создает процедуру с именем макроса, которую можно просмотреть и отредактировать. Требуется выбрать кнопку Записать макрос, выполнить требуемую последовательность действий и остановить макрос. Затем выбрать записанный макрос в списке макросов и нажать кнопку Изменить. Запускается окно редактора VBA и в окне модуля выводится текст макроса. Запись макросов очень полезна для ознакомления с приемами программирования. Например, вы не знаете как запрограммировать вычерчивание отрезка прямой линии: включаете запись макроса,

7

выполняете графические операции с помощью панели инструментов Рисование и смотрите, как выглядят соответствующие инструкции VBA.

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

На рисунке 1 представлено окно проекта, в котором элементы отображаются в виде иерархической структуры, включающей формы, модули, объекты основного приложения (листы книги Excel) и рабочее окно редактора VBA.

Ввод инструкций в редакторе VBA:

В одной строке можно записать одну или несколько инструкций,

Несколько инструкций в одной строке разделяются символом : (двоеточие),

Для продолжения инструкции в следующей строке надо ввести пробел и символ _ (подчерк) в конце строки,

Комментарии начинаются с символа ' (апостроф), комментарии служат для пояснения,

они могут записываться как в отдельных строках, так и строке с инструкцией. Инструкция VBA состоит из элементов, среди которых могут присутствовать:

1)Ключевое слово - это слово или символ, которые распознаются как элементы языка программирования, например, If, Else, Sub, For и т.д.

2)Выражение - комбинация ключевых слов, переменных и констант; результатом выражения является строка, число или логическое значение.

3)Переменная - поименованная область памяти, отведенная для временного хранения данных, которые могут изменяться при выполнении программы.

4)Массив - поименованная область памяти состоящая из набора элементов (обычно - переменных) определенного типа, каждый элемент имеет свой порядковый номер. Порядковый номер называется индексом элемента в массиве.

5)Константа - поименованный элемент, сохраняющий постоянное значение втечение выполнения программы.

6)Методы и свойства объектов: методы - это действия, которые выполняются объектом, а свойства - это переменные, описывающие характеристики объекта. Методы и

свойства записываются через точку после имени объекта, например, TextBox1.Text. Переключение на окно Excel

Создание формы в редакторе VBA

Рис. 1. Окно Visual Basic, в нем окна проекта и редактора

8

Структура процедуры:

[Private] Sub имя ([аргументы]) - заголовок процедуры

Инструкции

- тело процедуры

End Sub

- конец процедуры

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

Private - процедура может использоваться только модулем в котором она находится.

Структура функции:

[Private] Function имя ([аргументы]) [As Type] - заголовок функции

Инструкции

- тело функции

Имя= выражение

- возвращаемое значение

End Function

- конец функции

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

As Type - выражение, определяющее тип результата, возвращаемого функцией.

Пример функции: вычисление длины окружности. Имя - Circle, аргумент -R (радиус окружности).

Function Circle (R as Double) as Double Const Pi as Double= 3.14159 Circle=2*Pi*R

End Function

Вызов функции Circle из другой функции или процедуры: R2=5: S2 =Circle (R2) ' Значение S2 будет равно 31.4159

Аргумент, описанный в функции или в процедуре (в этом примере – это переменная R), называют формальным параметром, а значение аргумента, фактически передаваемое функции или процедуре при ее вызове (в этом примере – переменная R2) , называют фактическим параметром.

Пример процедуры: вычисление длины окружности.

Имя - Circle, аргументы: R(радиус окружности), S(длина окружности). Sub Circle (R as Double, S as Double)

Const Pi as Double= 3.14159 S=2*Pi*R

End Sub

Вызов процедуры Circle из функции или другой процедуры: Circle R2, S2

4.Работа с переменными, массивами, константами

исо свойствами объектов

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

9

 

 

 

 

Таблица 2.

 

 

 

Встроенные типы данных VBA

 

 

 

 

Тип

Размер

Разрядность

Диапазон, пояснение

данных

в

(цифр)

 

байтах

 

 

Boolean

2

1

 

True, False - логические значения

Byte

1

≤ 3

 

0, 255 - целые положительные числа

Integer

2

≤ 5

 

-32768, 32767 – целые числа

Long

4

≤ 10

 

-2147483648, 2147483647 – длинные целые

Single

4

≤ 7

 

-3.402823.1038, -1.401298.10-45– отрицательные числа

 

 

 

 

1.401298.10-45, 3.402823.1038 – положительные числа

Double

8

≤ 15

 

Действительные числа с двойной точностью

Currency

8

≤ 19

 

Действительные числа с 4 знаками после десятичной

 

 

 

 

точки. Используются для точных денежных расчетов

Date

8

 

 

01.01.0100, 31.12.9999 - даты

String

1+L

 

 

Строка из L символов; L≤ 65535

Object

4

 

 

Объект – фактически, ссылка на него, т.е. адрес его

 

 

 

 

размещения в оперативной памяти

Variant

 

 

 

Может принимать любой тип данных, т.е. настройка

 

 

 

 

на тип операнда происходит во время исполнения

 

 

 

 

инструкций или процедур

 

 

 

 

 

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

Dim ИмяПеременной As ТипДанных

Для определения глобальной переменной вместо Dim пишут Public. Пример описания переменных:

Public Nprof, X0 As Single, Y0 As Single

Dim I As Integer, J As Integer, Date1 As Date, Date2 As Date, ФИО As String*32 Nprf=40

При описании переменной ФИО, кроме ее имени и типа, указана длина в байтах. Длину можно назначать (хотя это не обязательно) для строковых переменных. Для переменной Nprof тип вообще не указан – по умолчанию ей будет назначен тип Variant – это удобно для программиста, но не экономично: число в формате Variant занимает 16 байт, а строка – 22 байта плюс по 1 байту на каждый символ. Переменные типа Variant могут хранить следующие значения:

10