- •Методические указания к выполнению РГР по курсу «Информатика»
- •ВВЕДЕНИЕ
- •1 ОСНОВЫ ПРОГРАММИРОВАНИЯ НА VBA
- •1.1 Типы данных
- •1.2 Требования к идентификаторам
- •1.3 Приоритет выполнения операций
- •1.4 Встроенные функции
- •1.5 Функции управления процессом выполнения программ
- •2 БАЗОВЫЕ ПОНЯТИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ
- •3 РАЗРАБОТКА ГРАФИЧЕСКОГО ИНТЕРФЕЙСА ПРОГРАММЫ
- •3.1 Интерфейс среды разработки языка VBA
- •3.2 Создание пользовательской формы
- •4 ТРЕБОВАНИЯ К ОФОРМЛЕНИЮ ПОЯСНИТЕЛЬНОЙ ЗАПИСКИ
- •4.1 Структурные элементы пояснительной записки
- •4.2 Оформление элементов пояснительной записки
- •5 ЗАДАНИЕ К ВЫПОЛНЕНИЮ РАСЧЕТНО-ГРАФИЧЕСКОЙ РАБОТЫ
- •БИБЛИОГРАФИЧЕСКИЙ СПИСОК
- •ПРИЛОЖЕНИЕ А ПРИМЕР ИНТЕРФЕЙСА ПРОГРАММЫ
- •ПРИЛОЖЕНИЕ В ПРИМЕРНАЯ ФОРМА ЗАДАНИЯ НА ВЫПОЛНЕНИЕ РГР
- •ПРИЛОЖЕНИЕ Г ПРИМЕРЫ ОПИСАНИЯ ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
- •ПРИЛОЖЕНИЕ И ИСХОДНЫЕ ДАННЫЕ К ВЫПОЛНЕНИЮ РГР
1 ОСНОВЫ ПРОГРАММИРОВАНИЯ НА VBA
1.1 Типы данных
Любая программа оперирует с некоторыми данными, используемыми в расче- тах. Все данные должны быть описаны с помощью типов данных, определяющих возможный набор значений данных и допустимые операции над ними. Основные типы данных приведены в таблице 1.
Таблица 1 — Основные типы данных
Тип |
|
|
Объем |
|
Описание |
Диапазон |
памяти, |
||
данных |
||||
|
|
байт |
||
|
|
|
||
Byte |
Целое число |
От 0 до 255 |
1 |
|
Integer |
Целое число |
От –32 768 до 32 767 |
2 |
|
Long |
Длинное целое число |
От –2 147 483 648 |
4 |
|
|
|
до 2 147 483 647 |
|
|
Single |
Число с плавающей точкой оди- |
Для отрицательных чисел: |
4 |
|
|
нарной точности |
от –3,4Е38 до –1,4E-45. |
|
|
|
|
Для положительных чисел: |
|
|
|
|
от 1,4E-45 до 3,4E38 |
|
|
Double |
Число с плавающей точкой двой- |
Для отрицательных чисел: |
8 |
|
|
ной точности |
от –1,7E308 до –4,9E-324. |
|
|
|
|
Для положительных чисел: |
|
|
|
|
от 4,9E-324 до 1,7E308 |
|
|
Currency |
Число с фиксированной десятич- |
От –922 337 203 685 477.5808 |
8 |
|
(денежный) |
ной точкой |
до 922 337 203 685 477.5807 |
|
|
String |
Строка символов постоянной дли- |
От 0 до 216 |
Длина |
|
|
ны |
|
строки |
|
String |
Строка символов переменной дли- |
От 0 до 231 |
10 + длина |
|
|
ны |
|
строки |
|
Variant |
Универсальный |
Значения любого типа |
от 16 |
|
Boolean |
Логический |
True или False |
2 |
|
Date |
Дата |
От 1.01.100 года до 31.12. 9999 |
8 |
|
|
|
года |
|
VBA может автоматически типизировать данные, однако это приводит к за- медлению выполнения программы из-за неэффективного использования памяти. Поэтому их нужно объявлять явно. Для обеспечения явного объявления данных не- обходимо в качестве первой инструкции включить оператор Option Explicit.
4
Если тип данных не определен, то по умолчанию будет задан тип данных Variant. Данные, которые хранятся в Variant, изменяют свой тип в зависимости от того, какие операции над ними выполняются.
Данные в программе могут быть представлены в виде констант и пере-
менных.
Константа — это именованная область памяти, используемая для хранения фиксированного значения, которое невозможно изменить при выполнении про- граммы.
Переменная – это именованная область памяти, в которой могут храниться изменяющиеся значения.
При мер объ явле ния ко нс та н ты :
Const pi as single = 3.1459
При мер объ явле ния пер еме нн ы х :
Dim a as single, b as integer, c as byte
1.2 Требования к идентификаторам
Обращение к константам и переменным осуществляется по идентификаторам (именам), которые должны удовлетворять следующим требованиям:
−начинаются с буквы;
−не содержат точки, @, #, %, &, !, $, пробел;
−длина не более 255 символов;
−не являются ключевыми словами языка VBA (именами операций, операто- ров, встроенных функций);
−должны быть уникальны внутри области, в которой они определены. Правильные имена: А; Ф1; Prog_1; Баланс.
Неправильные имена: 1А; Prog 1; Баланс#; sin.
5
1.3 Приоритет выполнения операций
Приоритет выполнения операций определяет последовательность вычислений в программе и (см. таблицу 2). Изменить порядок вычисления можно с помощью скобок. Максимальный приоритет — 1, минимальный — 13.
Таблица 2 — Приоритет выполнения операций
|
|
Знак |
|
Пример |
Возвращаемое значение |
|
Приоритет |
|
Описание |
вычисляемого |
при a = 5; b = 2; |
||
|
операции |
|||||
|
|
|
|
выражения |
с = true, d = false |
|
|
|
|
Математические операции |
|
||
1 |
|
|
Вызов функции и скобки |
|
|
|
2 |
^ |
Возведение в степень |
a ^ b |
25 |
||
3 |
− |
Cмена знака |
− a |
-5 |
||
4 |
* |
Умножение |
a * b |
10 |
||
|
/ |
Деление |
a / b |
2.5 |
||
5 |
\ |
Целочисленное деление |
a \ b |
2 |
||
6 |
mod |
Остаток от деления по модулю |
a mod b |
1 |
||
7 |
+ |
Сложение |
a + b |
7 |
||
− |
Вычитание |
a − b |
3 |
|||
|
||||||
8 |
& |
Объединение строк |
a & b |
52 |
||
|
|
|
Операции отношения |
|
||
|
< |
Меньше |
a < b |
false |
||
|
> |
Больше |
a > b |
true |
||
9 |
<= |
Меньше или равно |
a <= b |
false |
||
>= |
Больше или равно |
a >= b |
true |
|||
|
||||||
|
<> |
Не равно |
a <> b |
true |
||
|
= |
Равно |
a = b |
false |
||
|
|
|
Логические операции |
|
||
10 |
Not |
Логическое отрицание |
Not© |
false |
||
11 |
And |
Логическое умножение |
c and d |
false |
||
|
|
(конъюнкция) (И) |
|
|
||
|
|
|
|
|
||
12 |
Or |
Логическое сложение |
c or d |
true |
||
|
|
(дизъюнкция)(ИЛИ) |
|
|
||
|
|
|
|
|
||
13 |
Xor |
Исключающее or |
c xor d |
true |
При мер :
3*9^1/2 = 3× 91 = 13.5. 2
1
Типичная ошибка — 3*9^1/2 = 3×92 = 3×3 = 9
6
1.4 Встроенные функции
В VBA есть ряд встроенных функций, упрощающих вычисления и операции. Информация по ним приведена в справочной системе VB (Visual Basic).
Чтобы получить список функций VBA при написании кода, введите VBA и точку (.). VB отображает список всех вложенных объектов, включая функции. Функции обозначаются зеленым значком (рисунок 1).
Рисунок 1 — Функции VBA
При написании программы также можно использовать большинство функций рабочего листа Microsoft Excel.
Для того чтобы найти нужную функцию и определить правила работы с ней, необходимо в VB нажатием клавиши F1 вызвать справку. В поле Справка по поис-
ку ввести List и нажать кнопку (начать поиск). В окне справки Microsoft Visual
Basic выбрать раздел . В появившемся списке всех доступных функций выбрать нужную.
В Visual Basic функции рабочего листа (worksheet ) Microsoft Excel доступны через объект WorksheetFunction.
Некоторые функции приведены в таблицах 3, 4.
Таблица 3 — Математические функции
Функция |
Возвращаемое значение |
Код в программе |
|
|
|
Abs |
Модуль |
Abs(числ. выражение) |
|
|
|
Acos |
Арккосинус |
WorksheetFunction.Acos(числ. выражение) |
|
|
|
Asin |
Арксинус |
WorksheetFunction.Asin(числ. выражение) |
|
|
|
Atn |
Арктангенс |
Atn(числ. выражение) |
|
|
|
Cos |
Косинус |
Cos(числ. выражение) |
|
|
|
7
Окончание таблицы 3
Функция |
Возвращаемое значение |
Код в программе |
|
|
|
Exp |
Экспонента |
Exp(числ. выражение) |
|
|
Примеры: |
|
|
e записывается как exp(1) |
|
|
ea записывается как exp(a) |
|
|
|
Fix |
Целое значение (дробная |
Fix(числ. выражение) |
|
часть отбрасывается)* |
|
|
|
|
Int |
Целое значение (дробная |
Int(числ. выражение) |
|
часть отбрасывается)* |
|
|
|
|
Log10 |
Десятичный логарифм |
WorksheetFunction.Log10(числ. выражение) |
|
|
|
Ln |
Натуральный логарифм |
WorksheetFunction.Ln(числ. выражение) |
|
|
|
Sin |
Синус |
Sin(числ. выражение) |
|
|
|
Sqr |
Квадратный корень |
Sqr(числ. выражение) |
|
|
|
Tan |
Тангенс |
Tan(числ. выражение) |
|
|
|
* Различие между функциями Int и Fix состоит в том, что для отрицательного значения ар- гумента функция Int возвращает ближайшее отрицательное целое число, меньшее либо равное указанному, а Fix — ближайшее отрицательное целое число, большее либо равное указанному. Например, функция Int преобразует ─5.4 в ─6, а функция Fix преобразует ─5,4 в ─5.
Таблица 4 — Функции преобразования форматов
Функция |
Возвращаемое значение |
|
Код в программе |
||
|
|
|
|
|
|
Val |
Возвращает |
числа, |
содержащиеся |
Val (строковое выражение) |
|
|
в строке, как числовое значение соответ- |
Примеры: |
|
||
|
ствующего типа. |
|
Val(“630091 Новосибирск”) возвра- |
||
|
Функция Val прекращает |
чтение строки |
щает число 630091 |
||
|
на первом знаке, который она не может |
Val(“630 |
091 Новосибирск”) |
||
|
распознать как часть числa |
возвращает число 630091 |
|||
|
|
|
|
Val(“630 |
and 091”) возвращает |
|
|
|
|
число 630 |
|
|
|
|
|||
Str |
Представляет возвращаемое числовое |
Str (числовое выражение) |
|||
|
значение как String. В качестве допус- |
Пример: |
|
||
|
тимого десятичного разделителя функ- |
Str(-459.65) возвращает “-459.65” |
|||
|
ция воспринимает только точку |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
8 |