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

Лабораторная работа3_VBA

.pdf
Скачиваний:
10
Добавлен:
14.05.2015
Размер:
662.87 Кб
Скачать

ВГСХА, каф. «Информатика, теоретическая механика и ОНИ»

1

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

Структура редактора VB. Создание и реализация процедуры Sub

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

взадачах структуры Следование.

Цели: Рассмотреть основные этапы создания процедуры Sub на VBA; научиться использовать функции InputBox() и MsgBox() для ввода и вывода информации в процедурах Sub задач структуры Следование.

1) Теоретическая часть

 

 

 

Базовая структура Следование (линейный

 

 

Оператор 1

процесс) – это структура, которая предполагает

 

 

 

 

последовательное

выполнение

действий

 

 

Оператор 2

(операторов). Структура следования определяется

 

 

 

 

блок-схемой.

 

 

 

 

 

 

Оператор n

 

 

 

 

 

 

 

 

Встроенные диалоговые окна

Для ввода и вывода информации в процедурах VBA используются встроенные диалоговые окна: окно ввода и окно сообщения.

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

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

функции

 

 

 

Структура окна

Синтаксис

 

 

 

(аргументы указаны на русском языке)

InputBox (Сообщение, Заголовок,

Поле

ввода,

Хпоз,

Yпоз,

ФайлСправки, Содержание)

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

Составители ст. преподаватели С. И. Калмыкова, М. Н. Елисеева, Е. В. Ширяева

ВГСХА, каф. «Информатика, теоретическая механика и ОНИ»

2

кнопка была выбрана. В случае создания окна без возвращения результата в операторе MsgBox круглые скобки вокруг списка аргументов функции опускаются. Для объединения нескольких текстовых строк в одну используется символ конкатенации &.

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

функции

Структура окна Синтаксис

(аргументы указаны на русском языке)

MsgBox (Сообщение , Кнопки, Заголовок , ФайлСправки, Содержание)

Установки для аргумента Buttons (Кнопки) функции MsgBox

Группа 1. Значения, определяющие отображаемые кнопки в окне

Константа

Значения

Отображаемые кнопки

 

 

 

vbOKOnly

0

 

 

 

 

vbOKCancel

1

 

 

 

 

vbAbortRetryIgnore

2

 

 

 

 

vbYesNoCancel

3

 

 

 

 

vbYesNo

4

 

 

 

 

vbRetryCancel

5

 

 

 

 

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

Константа

 

Значение

Значок сообщения

 

 

 

 

 

vbCritical

 

16

 

 

 

 

 

 

 

vbQuestion

 

32

 

 

 

 

 

 

 

vbExclamation

 

48

 

 

 

 

 

 

 

vbInformation

 

64

 

 

 

 

 

 

 

 

Значения, возвращаемые функцией MsgBox()

 

 

 

 

 

Константа

 

Значение

Нажатая кнопка

 

 

 

 

vbOk

 

1

Ok

 

 

 

 

vbCancel

 

2

Отмена (Cancel)

 

 

 

 

vbAbort

 

3

Прервать (Abort)

 

 

 

 

vbRetry

 

4

Повторить (Retry)

 

 

 

 

vbIgnore

 

5

Пропустить (Ignore)

 

 

 

 

vbYes, vbNo

 

6,7

Да (Yes), Нет (No)

 

 

 

 

 

Составители ст. преподаватели С. И. Калмыкова, М. Н. Елисеева, Е. В. Ширяева

ВГСХА, каф. «Информатика, теоретическая механика и ОНИ»

3

Понятие и типы процедур VBA

Процедура (Procedure) - поименованная, самостоятельно выполняемая компонента программ на VBA. Каждая процедура имеет уникальное имя, по которому она вызывается на выполнение.

В VBA используются процедуры двух типов: процедуры-функции Function и процедуры-подпрограммы Sub.

Процедура Function – это процедура-функция, которая выполняет набор действий и возвращает значение, которое присваивается ее имени внутри процедуры.

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

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

[Private/Public] [Static] Sub Имя_процедуры [список аргументов]

Инструкция описания переменных Dim

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

Инструкция описания констант Const

Const Имя_константы As Тип_данных = Значение

Инструкции операторов

Операторы VBA

End Sub

 

Элементы описания процедуры Sub:

Public

Указывает, что процедура Sub является общей, т. е. доступной для

 

всех других процедур во всех модулях.

Private

Указывает, что процедура Sub доступна для других процедур только

 

того модуля, в котором она написана.

Static

Указывает, что локальные переменные процедуры Sub сохраняются

 

между вызовами этой процедуры.

Sub, End Sub

Начало и конец процедуры

Имя

Имя процедуры Sub, удовлетворяющее стандартным правилам

 

именования переменных.

Список

Список переменных, представляющий аргументы, которые

аргументов

передаются в процедуру Sub при ее вызове. Имена переменных

 

разделяются запятой.

Понятия модуля проекта документа

Проект (Project) - набор всех программных составляющих документа. В редакторе VB окно проекта отражает иерархическую структуру модулей текущего проекта.

Составители ст. преподаватели С. И. Калмыкова, М. Н. Елисеева, Е. В. Ширяева

ВГСХА, каф. «Информатика, теоретическая механика и ОНИ»

4

Модуль (Module) - это элемент проекта, содержащий

набор

описаний и процедур на языке VBA.

В VBA используются основные типы модулей: стандартные модули (Module), модули форм и отчетов (UserForm), модули класса (Class), модули рабочих книг (ЭтаКнига), модули рабочих листов (Лист).

В стандартных модулях (Module) хранятся процедуры типа Sub и Function. В проекте документа стандартные модули создаются командой

Insert, Module (Вставка, Модуль).

Этапы создания процедуры Sub Этап 1. Вставка модуля в проект

Активизируйте редактор VB. В окне проекта кликните правой кнопкой мыши на элементе . Выполните команду Insert, Module (Вставка, Модуль). В проекте появится новый модуль Module1 и окно для редактирования кода процедур этого модуля. В окне Properties можно установить значение свойства Name (Имя) модуля.

Этап 2. Вставка процедуры в модуль

Выполните команду Insert, Procedure (Вставка, Процедура) с

помощью команды меню Insert или кнопки на стандартной панели инструментов.

Составители ст. преподаватели С. И. Калмыкова, М. Н. Елисеева, Е. В. Ширяева

ВГСХА, каф. «Информатика, теоретическая механика и ОНИ»

5

В окне Add Procedure (Добавить,

Процедура) введите имя процедуры и

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

Этап 3. Ввод кода процедуры

Введите код процедуры, используя операторы и функции VBA.

Этап 4 . Сохранение и выполнение процедуры.

Для сохранения и выполнения процедуры нажмите соответственно кнопки , стандартной панели инструментов редактора VB.

2) Практическая часть

Пример 1. Создание встроенных диалоговых окон

Создать процедуру СтудентВуза (), которая отображает на экране диалоговые окна.

1

Окно сообщения о действиях пользователя

2

Окно ввода ФИО

3

Окно ввода ВУЗ

Составители ст. преподаватели С. И. Калмыкова, М. Н. Елисеева, Е. В. Ширяева

ВГСХА, каф. «Информатика, теоретическая механика и ОНИ»

6

4

Окно ввода Факультет

5

Окно сообщения о студенте.

Этап 1. Вставка модуля в проект

1)Откройте новую рабочую книгу и активизируйте редактор VB (Alt+F11).

2)В окне проектов нажмите правой кнопкой мыши на элементе

3)Выполните команду Insert, Module (Вставка, Модуль). В проекте появится новый модуль Module1 и окно для редактирования кода процедуры.

4)Установите значения свойства Name (Имя) в окне свойств Properties. Модуль называется Лаб3.

Этап 2. Вставка процедуры в модуль

1)Выполните команду Insert, Procedure (Вставка, Процедура) с помощью команды меню Insert или кнопки на стандартной панели инструментов.

2)Задайте имя процедуры в окне Add Procedure (Добавить, Процедура) и нажмите на кнопку .

Составители ст. преподаватели С. И. Калмыкова, М. Н. Елисеева, Е. В. Ширяева

ВГСХА, каф. «Информатика, теоретическая механика и ОНИ»

7

Этап 3. Ввод кода процедуры. Введите код процедуры:

Символ конкатенации & используется для объединения нескольких текстовых строк в одну.

Этап 4. Сохранение и выполнение процедуры

1)Сохраните рабочую книгу с процедурой под именем Лаб3 в личной папке.

2)Выполните процедуру с помощью кнопки стандартной панели инструментов редактора VB.

Пример 2. Этапы создания процедуры Sub

Создать процедуру ДавлениеШара (), которая вычисляет значение давления N шара c радиусом R и массой m на стену, к которой он подвешен на нитке длиной b.

 

=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 + 2

 

 

Этап 1. Постановка задачи

 

 

 

 

 

 

 

Данные

Обозначение

 

Тип данных

Исходные данные

b - длина нити

 

действительное число

(ввод с клавиатуры)

 

 

 

m - масса шара

 

действительное число

 

 

 

 

 

R - радиус шара

 

действительное число

 

 

 

 

Результат

N - давление

 

действительное число

 

 

 

 

 

 

Этап 2. Построение математической модели

Цель задачи

Исходные данные

Расчетные данные

Ограничения

 

 

 

 

Давление

b, m, R

P mg - момент силы P

b>0; m>0; R>0

шара

 

 

 

g=9.8

N

 

 

PR

 

 

 

 

 

 

 

 

 

 

 

N

 

 

PR

 

 

 

 

 

-давление

N>0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b2

2Rb

 

 

 

 

 

 

 

 

b2

2Rb

 

 

 

 

 

 

 

 

 

 

 

 

Составители ст. преподаватели С. И. Калмыкова, М. Н. Елисеева, Е. В. Ширяева

ВГСХА, каф. «Информатика, теоретическая механика и ОНИ»

8

Этап 3. Разработка алгоритма:

Базовая структура программирования – Следование.

Начало

Ввод

исходных

данных

b,m,R,g

P mg

N

 

PR

 

 

 

 

b2 2Rb

 

 

Вывод

результата

N

Конец

Этап 4. Программирование на VBA

1)В окне проекта нажмите мышью по элементу , чтобы добавить в модуль Лаб3 новую процедуру. В окне редактирования кода процедур этого модуля установите курсор (ниже первой процедуры).

2)Вставьте процедуру с именем ДавлениеШара в модуль Лаб3.

3)Введите код процедуры и исправьте ошибки ввода.

4) Cохранить процедуру из редактора VB комбинацией клавиш Ctrl+S.

Составители ст. преподаватели С. И. Калмыкова, М. Н. Елисеева, Е. В. Ширяева

ВГСХА, каф. «Информатика, теоретическая механика и ОНИ»

9

Этап 5. Тестирование и отладка программы

При выполнении тестирования и отладки программ используется меню

Debug (Отладка).

1)Выполните процедуру кнопкой стандартной панели инструментов для исходных данных: b=0,04; m=0,3; R=0,25.

2)Проверьте логику выполнения процедуры в режиме пошагового выполнения процедуры. Для перехода в этот режим выполните команду Debug Step Into (Отладка, Шаг с заходом), а затем клавишу F8 для перехода на новый шаг. После выполнения всей процедуры выйти из режима клавишей F5.

Этап 6. Анализ результатов решения задачи

1)Проверьте, что найденный результат значения N удовлетворяет ограничениям математической задачи (N>0).

2)Проанализируйте истинность результата с учетом физического смысла.

Этап 7. Сопровождение программы

Сохранение целого модуля как текстового файла (с расширением

.bas) называется экспортированием модуля. Осуществляется командой File, Export File (Файл, Экспорт файла) или комбинацией Ctrl+E.

1)Сделайте резервную копию модуля Лаб3 , сохранив его как текстовый файл Лаб3.bas в личную папку группы.

2)Распечатайте модуль Лаб3 с помощью команды File, Print или комбинации клавиш Ctrl+P.

3) Задания для самостоятельной работы

Процедуры задач самостоятельной работы создайте в модуле

Задачи_СР документа Лаб3.

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

Составители ст. преподаватели С. И. Калмыкова, М. Н. Елисеева, Е. В. Ширяева

ВГСХА, каф. «Информатика, теоретическая механика и ОНИ»

10

2.С крыши падают одна за другой две капли. Через t2=2 с. после начала падения второй капли расстояние между каплями стало s=25 м. Создайте процедуру для вычисления значения t, определяющего насколько раньше первая капля оторвалась от крыши.

=

2

+ 2

 

 

 

2

2

 

 

 

3.Человек, имеющий массу M, прыгает под углом α к горизонту со

скоростью v0. В верхней точке траектории он бросает со скоростью v1 вертикально вниз груз массой m. Создайте процедуру для вычисления значения общей высоты H, на которую подпрыгнул человек.

 

2

2

 

2 2

=

0

 

+

1

 

2

2 2

4.Точечный источник света с силой света I кд (кандела) освещает точку, находящуюся от него на расстоянии s м. Сбоку от источника света на том же расстоянии помещено плоское зеркало, отражающее свет в точку под углом 4 . Вычислить освещенности точки E1, E2 при наличии зеркала и без него.

 

 

 

 

3

 

 

 

I

E1

I

 

 

I cos

 

; E2

 

 

; I=100 кд; s=2,5 м.

 

 

 

 

 

 

2

2

2

(1 cos )

2

s

 

s

s

 

 

 

 

5.Вычислить общее сопротивление R трех параллельных сопротивлений

R1,R2, R3.

R

 

 

 

1

 

 

 

.

 

 

 

 

 

 

 

1

 

1

 

1

 

 

 

 

 

 

 

 

 

R1

R2

 

R3

6.Создайте процедуру для вычисления параметров прямоугольного параллелепипеда со сторонами a, b, c:

 

 

 

 

 

 

 

 

 

a)

длины диагонали d a2 b2 c2 ;

 

 

 

b)

угла между диагональю и плоскостью основания arctg (

 

 

c

 

) ;

 

 

 

 

 

 

 

 

a2

b2

 

 

 

 

 

 

 

c)

объема шара, диаметром которого является диагональ, V d 3 / n , n=6.

7.Определить радиус R круговой орбиты искусственного спутника, период

обращения которого Т равен одним суткам. Радиус Земли R0 принять равным 6400 км.

R 3

gR02T 2

4 2

 

8.Найти период колебаний T с математического маятника длиной l м, подвешенного в вагоне, движущегося горизонтально с ускорением a м/с2.

T 2

 

 

 

l

 

 

 

 

 

 

a2

g 2

 

 

 

Составители ст. преподаватели С. И. Калмыкова, М. Н. Елисеева, Е. В. Ширяева