Информационные технологии
.pdfVariant (числовые или строковые подтипы) и тип данных,
определяемый пользователем.
Описание переменных.
Описание каждой переменной делает программу надежнее и убыстряет ее работу. Инструкция Dim предназначена для описания типа данных переменной на уровне модуля или процедуры, а также для описания объектного типа переменных. Для каждой описываемой переменной следует использовать отдельное предложение AsТип. Если тип данных переменной или объекта не задан явно, по умолчанию переменной присваивается тип Variant.
Пример3. Описание переменных стандартного типа.
DimNAsInteger |
‘целочисленная переменная |
DimSAsString |
‘строковая переменная |
В VBA можно |
использовать массивы. Массив в программе |
обрабатывается поэлементно с использованием операторов цикла. Пример 4. Описание массивов различной размерности
(одномерного массива (вектора), состоящего из действительных чисел и двумерного массива 5х5 (матрицы), состоящего из целых чисел).
DimA (15) AsInteger |
‘одномерный массив (вектор), |
|
‘состоящий из 15 целых чисел |
DimB (5, 5) AsSingle |
‘двумерный массив (матрица) 5х5, |
|
‘состоящий из действительных чисел |
Примеp 5. Использование оператора цикла для обработки элементов одномерного массива.
For i=1 to n
A[ i ] = A[ i ]^2 Nexti
Использование констант.
Использование констант в программах делает их более читаемыми и позволяет легко вносить исправления. Константы, в отличие от переменных, не изменяют своих значений. Синтаксис объявления константы:
[Public | Private] ConstИмяКонстанты [As Тип] = Выражение,
где
231
Public – ключевое слово, используется на уровне модуля для описания констант, доступных всем процедурам во всех модулях, не допускается в процедурах;
Private –ключевое слово, используемое на уровне модуля для описания констант, доступных только внутри модуля, в котором выполняется описание, не допускается в процедурах;
ИмяКонстанты – имя константы, соответствующее стандартным правила именования констант;
Тип – один из поддерживаемых типов данных;
Выражение – литерал, константа, либо любое сочетание, которое включает все арифметические или логические операторы, кроме Is.
Организация ввода/вывода информации.
Ввод/вывод информации средствами VBA можно организовать двумя способами:
1)непосредственный ввод в ячейки рабочего листа с клавиатуры;
2)ввод с использованием диалоговых окон.
Примеp 6. Присвоить переменной Xзначение свойства Value ячейки C5.
Способ 1. X=Cells(5,3).Value Способ 2. X=Cells(5,3) Способ 3. X=Range(“C5”)
Пример 7. Присвоить переменнойXзначение ячейки, номер строки и столбца которой определяется значениями выражения 1+i и 1+j соответственно.
X=Cells(1+i,1+j)
Пример 8. В ячейке D8 вывести значение выражения x+2y.
Cells(8,4)=x+2*y
Второй способ организации ввода/вывода предполагает использование окна ввода InputBox (для ввода данных с клавиатуры) и окна сообщений MsgBox (для вывода информации на экран).
Здесь и в последующем необязательные элементы заключены в квадратные скобки. При наборе текстов программ квадратные скобки задавать не следует.
232
Синтаксис диалоговых окон:
MsgBox( prompt [,buttons] [,title] [helpfile, context] )
InputBox ( prompt [,title] [,default] [,xpoz] [,ypoz] [helpfile, context] )
Аргументы:
prompt — строковое выражение, которое выводится в диалоговом окне. Если оно состоит из нескольких строк, в качестве разделителя их используют символы возврата каретки (Chr(13)), перевода строки (Chr(10)) или комбинацию этих символов
(Chr(13)&Chr(13));
title — строковое выражение, отображаемое в строке заголовка окна. По умолчанию в строку заголовка помещается имя приложения;
helpfile — строковое выражение, задающее имя файла справки, содержащего справочную информацию о данном диалоговом окне. В случае указания этого аргумента необходимо задать context, определяющий номер соответствующего раздела справочной системы;
default — строковое выражение, размещаемое в поле ввода как значение по умолчанию;
xpos — расстояние по горизонтали от левого края экрана до левой границы окна. По умолчанию диалоговое окно центрируется по горизонтали;
ypos — расстояние по вертикали от верхнего края экрана до верхней границы окна. По умолчанию диалоговое окно позиционируется приблизительно на одну треть высоты экрана;
buttons — целое число, представляющее собой значение, которое определяет число и тип отображаемых в диалоговом окне кнопок, вид используемого значка, основную кнопку, модальность окна сообщений. Символические константы и их числовые значения, применяемые в качестве параметра buttons, приведены в таблице 87.
233
Таблица 87 – Символические константы аргумента buttons
Константа |
Значение |
|
Описание |
|
||
vbOKOnly |
0 |
Только |
кнопка |
"OK" |
(по |
|
умолчанию) |
|
|
|
|||
|
|
|
|
|
||
vbOKCancel |
1 |
Кнопки "OK" и "Отмена" (Cancel) |
||||
|
|
|
||||
|
|
Кнопки "Прервать" (Abort), |
||||
vbAbortRetryIgnore |
2 |
"Повторить" |
(Retry) |
и |
||
|
|
"Пропустить" (Ignore) |
|
|||
vbYesNoCancel |
3 |
Кнопки "Да" (Yes), "Нет" (No) |
||||
и "Отмена" (Cancel) |
|
|||||
|
|
|
||||
vbYesNo |
4 |
Кнопки "Да" и "Нет" |
|
|||
vbRetryCancel |
5 |
Кнопки "Повторить" и "Отмена" |
||||
|
|
Значок |
|
|
|
|
vbCritical |
16 |
"Критическое |
|
|
||
|
|
сообщение" |
|
|
|
|
|
|
Значок |
|
|
|
|
vbQuestion |
32 |
"Предупреждаю |
|
|
||
|
|
щий запрос" |
|
|
|
|
|
|
Значок |
|
|
|
|
vbExclamation |
48 |
"Предупреждаю |
|
|
||
|
|
щее сообщение" |
|
|
||
|
|
Значок |
|
|
|
|
vbInformation |
64 |
"Информационн |
|
|
||
|
|
ое сообщение" |
|
|
||
vbDefaultButton1 |
0 |
Основная |
— первая кнопка |
|||
(по умолчанию) |
|
|
||||
|
|
|
|
|||
vbDefaultButton2 |
256 |
Основная — 2-я кнопка |
|
|||
vbDefaultButton3 |
512 |
Основная — 3-я кнопка |
|
|||
vbDefaultButton4 |
768 |
Основная — 4-я кнопка |
|
|||
|
|
Модальное |
окно |
сообщения |
||
vbApplicationModal |
0 |
на уровне приложения (по |
||||
|
|
умолчанию) |
|
|
|
|
vbSystemModal |
4096 |
Модальное |
окно |
сообщения |
||
на уровне системы |
|
|
||||
|
|
|
|
|||
|
234 |
|
|
|
|
|
Функция MsgBox возвращает одно из значений, приведенных в таблица 88.
Таблица 88 – Значения функции MsgBox
Константа |
Значение |
Нажатая кнопка |
vbOK |
1 |
OK |
vbCancel |
2 |
Отмена (Cancel) |
vbAbort |
3 |
Прервать (Abort) |
vbRetry |
4 |
Повторить (Retry) |
vbIgnore |
5 |
Пропустить |
|
|
(Ignore) |
vbYes |
6 |
Да (Yes) |
vbNo |
7 |
Нет (No) |
Пример 9. Создать программу для вычисления значения функции y(х)=3х2+2x-1. Значение переменной х ввести с клавиатуры при помощи окна ввода InputBox. Результат расчета вывести при помощи окна сообщения MsgBox (вывести в окне значок «Информационное сообщение»). Для заголовка окон диалога использовать строку вида: «Функция Y(X)= 3X^2 + 2X -1».
Решение.
В окне редактора программного кода VBA необходимо записать код процедуры (рисунок 104). Для выполнения программы использовать команду меню Run – RunSub/UserForm или клавишу F5. В процессе выполнения ввести значение переменной x (рисунок 105) и оценить полученный результат (рисунок 106).
235
Рисунок 104 – Код программы на языке VBA
Рисунок 105 – Окно диалога InputBox для ввода значения переменнойx
Рисунок 106 – Окно диалога MsgBox для вывода полученного результата
Пример 10.Создать процедуру для построения графика функции
y(x)=2x+5sin(x/2),x [-10; 10].
Решение. Предварительно подготовить исходные данные на рабочем листе, построив таблицу значений функции в диапазоне А1:В22 (рисунок 107).
236
Рисунок 107 – Таблица значений функции
В редакторе VBA в отдельном модуле записать следующий программный код:
Public Sub Grafik() Range("A1:B22").Select Charts.Add
ActiveChart.ChartType = xlXYScatterSmooth ‘точечнаядиаграмма
ActiveChart.SetSourceData Source:= _ Sheets("Лист1").Range("A1:B22"), PlotBy:= xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Лист1"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Графикфункции y(x)"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text =
"X"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Y" EndWith
EndSub
Вызов программы построения графика функции можно
237
осуществить разными способами:
1)использовать команду MS Excel Сервис – Макрос, в диалоговом окне выбрать макрос Grafik и нажать кнопку
Выполнить;
2)создать на рабочем листе командную кнопку (или автофигуру, рисунок 108), использовать для нее в контекстном меню команду Назначить макрос и выбрать созданный макросGrafik.
Рисунок 108 – Кнопка для вызова процедуры построения графика функции
Задания для выполнения работы
1. Создать программу для вычисления значений функции согласно варианту (таблица 89). Для ввода значения аргумента x, использовать окно диалога InputBox, а для отображения полученного результата –MsgBox. Для заголовка окон диалога использовать строку вида: «Фамилия и инициалы, № варианта». Содержание текста сообщения (подсказки) в каждом окне и
значок в окне вывода задать самостоятельно.
Таблица 89 – Исходные данные для выполнения задания 1
Вариант
1.
2.
3.
Функция
y 5x 2 3sin( x / 2) |
, |
при x [-10; 10] |
||
|
|
|
||
y 2x2 |
x 2cos(x / 3) , при x [-10; 10] |
|||
y 5x |
2 |
2x 4sin( x / 2) |
, при x [-10; 10] |
|
|
||||
4.
y 4 |
3 |
|
x
x |
2 |
|
2cos(3x)
, при x [-10; 10]
5. |
y 2x |
3 |
2x |
2 |
3sin( 5x) , при x [-10; 10] |
|
|
|
|
6.y 2x3 2x2 3cos(x / 6) , при x [-10; 10]
238
Окончание таблицы 89
Вариант
7.
8.
9.
10.
11.
12.
Функция
y 3x |
2 |
2sin( x /3) 2 |
3 |
x |
2 |
, при x [-10; 10] |
|||||||||||||
|
|
|
|
||||||||||||||||
y |
1 |
x |
3 |
|
1 |
x |
3cos(x / 2) |
, при |
x [-10; 10] |
||||||||||
|
|
|
|||||||||||||||||
3 |
|
2 |
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x [-10; 10] |
|||
y 12x 2x2 |
|
5sin( x / 2), при |
|||||||||||||||||
y 6x |
3 |
|
2x 3cos(x /3) |
, |
|
при |
x [-10; 10] |
||||||||||||
|
|
|
|||||||||||||||||
y |
4x |
2 |
2x |
4 |
sin( 2x) , при |
x [-10; 10] |
|||||||||||||
|
|
||||||||||||||||||
y |
5x |
4 |
3x |
3 |
cos(3x) , при |
x |
[-10; 10] |
||||||||||||
|
|
|
|||||||||||||||||
2. Разработать программу для построения графика функции согласно варианту из задания 1 (таблица 89). Создать на рабочем листе кнопку для ее вызова.
Контрольные вопросы:
1.Основные понятия VBA: объект, семейство, класс, метод, свойство, событие.
2.Основные объекты VBA.
3.Типы данных VBA.
4.Описание констант, переменных, массивов.
5.Способы ввода-вывода информации.
239
РАЗДЕЛ 3. ОСНОВЫ ПРОЕКТИРОВАНИЯ РЕЛЯЦИОННЫХ БАЗ ДАННЫХ СРЕДСТВАМИ СУБД
MICROSOFT ACCESS
Лабораторная работа №1
ОБЩЕЕ УПРАВЛЕНИЕ СУБД MS ACCESS. РАБОТА С СУЩЕСТВУЮЩИМИ РЕЛЯЦИОННЫМИ БАЗАМИ
ДАННЫХ
Цель работы:
1)получить начальные навыки работы с СУБД MS Access;
2)изучить основные понятия теории баз данных, назначение основных элементов оконного интерфейса;
3)приобрести практический опыт модификации существующей базы данных и работы со справочной системой MS
Access.
Задания для выполнения работы:
1.Запустить СУБД MS Access (Пуск | Все программы | Microsoft Office | Microsoft Access 2010).
2.Открыть учебную базу данных «Борей» (вкладка Файл,
Доступные шаблоны, Борей).
3. Изучить структуру окна базы данных Борей, назначение основных элементов (рисунок 104). Изучить количественный состав объектов БД Борей, их содержание и назначение.
240
