Главная страница

Информатика VBA. Учебное пособие по дисциплинам Информатика иИнформационные технологии


Скачать 1.05 Mb.
НазваниеУчебное пособие по дисциплинам Информатика иИнформационные технологии
АнкорИнформатика VBA.pdf
Дата28.01.2017
Размер1.05 Mb.
Формат файлаpdf
Имя файлаИнформатика VBA.pdf
ТипУчебное пособие
#900
страница10 из 11
1   2   3   4   5   6   7   8   9   10   11
Меню File (Файл) содержит команды для работы с файлами проекта:
-
Save
Имя_книги_Excel – сохранить текущий проект (рабочую кни- гу Excel) на диске.
-
Import File – добавить существующий модуль, форму или класс из внешнего файла в текущий проект.
-
Export File – сохранить в файле текущий модуль, форму или класс в формате текстового файла для импортирования в другой проект или в целях архивирования.
-
Remove … – удалить модуль или форму из проекта, команда не доступна, если в Project Explorer не выбран никакой элемент.
-
Print – печатать форму или программный код.
-
Close and Return to Microsoft Excel – закрыть окно VBA и перейти на активный лист рабочей книги Excel.
Меню Edit (Правка) содержит команды, предназначенные для редактирования: отмена последней операции, работа с буфером об- мена, поиск и замена фрагмента кода программы и др.
Меню View (Вид) содержит команды вызова окон и панелей среды VBA.
Меню Insert (Вставка) позволяют добавлять различные объек- ты,
такие как модули и формы, в проект.
Меню Format (Формат) содержит команды форматирования объектов в форме.
Меню Debug (Отладка) содержит команды для тестирования и отладки приложения. Режим отладки позволяет непосредственно

115 контролировать выполнение макроса, останавливать и запускать про- грамму в заданных точках и отслеживать выполнение макроса по ша- гам. При этом можно запрашивать текущие значения переменных.
Это можно сделать, наведя курсор на имя переменной, либо задав ее имя в окне Watches (смотреть, наблюдать) командой Add Watch (до- бавить контрольное значение). Точку останова при выполнении про- граммы можно задать клавишей F9, а последующее пошаговое вы- полнение осуществлять клавишей F8 или через команды меню Debug.
Меню Run (Запуск) содержит команды управления запуском приложения,
прерывать или возобновлять его выполнение или воз- вращать прерванный макрос в исходное состояние:
-
Команда Run Sub/User Form (запуск подпрограммы/ запуск фор- мы) запускает макрос, который редактируется в данный момент, то есть VBA запускает программу, на тексте которой находится кур- сор редактирования исходного кода. Если какая-либо форма ак- тивна, VBA запускает эту форму.
-
Команда Break (прервать) прерывает выполнение программы и приводит к тому, что редактор VBA переходит в режим прерыва- ния (Break mode). Break mode используется при отладке кода VBA.
-
Команда Resert
(сброс) устанавливает все переменные модульного уровня и Call Stack (список последовательности вызо- вов) в исходное состояние.
Позиции меню Run продублированы на панели инструментов.
Меню Tools (Сервис) содержит команды управления настрой- ками инструментальной среды VBA.
Меню Add-Ins (Надстройки) содержит команды вызова допол- нительных утилит, часто называемых надстройками (add-ins).
Меню Window (Окно) содержит стандартные команды управ- ления окнами.

116
Меню Help (Справка) содержит команды вызова справочной системы VBA
Интеллектуальные возможности редактора кода
Написание программ существенно облегчается за счет способ- ности редактора кода автоматически завершать написание операто- ров, свойств и параметров. При написании кода редактор сам предла- гает пользователю список компонентов, логически завершающих вводимую пользователем инструкцию. Например, набирая код
Application. после ввода точки на экране отобразится список компонентов (рису- нок А.2), которые логически завершают данную инструкцию. Двой- ной щелчок на выбранном элементе из этого списка или нажатие кла- виши <Таb> вставляет выбранное имя в код программы. При этом использование клавиши <Таb> вместо мышки иногда предпочтитель- ней, т. к. в этом случае можно продолжить ввод компонентов выбо- ром из меню. Так выбор компонента WorksheetFunction открывает новое контекстное меню с перечислением доступных в VBA функций
Excel
(см. Рисунок А.3).
Рисунок А.2 - Выбор варианта возможного завершения команды в VBA

117
Рисунок А.3 – Контекстное меню выбора функций Excel
Список математических функций Excel, доступных в VBA через метод Application, приведен в приложении В. Следует заметить, что использование параметра WorksheetFunction не является обязатель- ным. Если программист знает название функции Excel в английской транскрипции и перечень необходимых для этой функции парамет- ров, то вызвать ее можно без указания свойства: a=Application
.имя_Функции(параметры)
Пример. Функцию для вычисления максимального значения четырех аргументов можно записать двумя способами:
Application.WorksheetFunction.max( a, b, 2*c, 5)
Application.max( a, b, 2*c, 5)
В первом случае функцию можно выбрать из контекстного меню и получить подсказку по использованию этой функции.

118
Приложение Б
Операции в VBA и приоритеты операций
В таблице Б.1 приведены обозначения арифметических опера- ций VBA.
Таблица Б.1 - Обозначения арифметических операций
Символы операции
Синтаксис Имя/Описание
Пример Результат
+
N1 + N2
Сложение. Прибавляет
N
1 к N2 2+3 5

N1 N2
Вычитание. Вычитает
N
2 из N1 12-7 5
*
N1 * N2
Умножение. Умножает
N
1 на N2 2*2.5 5
/
N1 / N2
Деление. Делит N1 на
N2.
15/3 21/4 5
5,25
\
Nl \ N2
Целочисленное деление.
Делит N1 на N2, отбра- сывая любую дробную часть так, чтобы резуль- тат был целым числом.
18\3 21\4 5
5
N1 Mod N2
Деление по модулю. Де- лит N1 на N2, возвращая только остаток операции деления.
17 Mod 6 5
^
N1 ^ N2
Возведение в степень.
Возводит N1 в степень
N2.
2^3 8
Оба операнда N1 и N2 должны быть численными выражениями или строками, которые VBA может преобразовать в число.

119
Операции сравнения
Операции сравнения также называют операциями отношения
(relational operators
). Результатом любой операции сравнения явля- ется значение типа Boolean. Символы операций сравнения приведены в таблице Б.2.
Таблица Б.2Операции сравнения
Символ операции
Синтаксис операции
Наименование/описание
=
El =
Е2
Равенство. True, если El равно Е2, иначе –
False
<
El <
Е2
Меньше, чем. True, если El меньше, чем Е2, иначе – False
<=
El <
Е2
Меньше, чем или равно. True, если Е1 меньше или равно Е2, иначе – False
<>
El <>
Е2
Не равно. True, если Е1 не равно Е2, иначе
– False
>
El >
Е2
Больше, чем. True, если Е1 больше, чем Е2, иначе – False
>=
El >=
Е2
Больше, чем или равно. True, если Е1 больше или равно Е2, иначе – False
Операнды Е в этой таблице - любое действительное выражение
VBA
Конкатенация строк
Присоединение одной строки к другой называется конкатена-
цией (concatenation) строк. Знак « & » можно использовать только для конкатенации строк. Общий синтаксис знака & такой:
Operand1 & Operand2 [& Operand3…]
Operand1 и Operand2 – любые допустимые строковые или чис- ленные выражения. VBA преобразует числа в строки перед выполне- нием операции конкатенации. Тип данных результата конкатенации строк – это всегда тип String.

120
Логические операторы VBA
Логические операторы VBA используются для объединения ре- зультатов отдельных логических выражений, чтобы создать сложные критерии для принятия решений в процедуре (таблица Б.3).
Таблица Б.3– Логические операторы VBA
Логический оператор
Синтаксис
Имя/Описание
And
El And E2
Конъюнкция. True, если оба Е1 и Е2 имеют значение True, иначе – False
Or
El Or E2
Дизъюнкция. True, если одно выра- жение или оба (Е1 и Е2) являются равными True; иначе – False
Not
Not El
Отрицание. True, если Е1 имеет зна- чение False; False, если El является равным True
Xor
El Xor E2
Исключение. True, если Е1 и Е2 имеют разные значения; иначе –
False
Eqv
El Eqv E2
Эквивалентность. True,если Е1 име- ет то же самое значение, что и Е2; иначе – False
Imp
El Imp E2
Импликация. False, когда Е1 является равным True и Е2 равно False; иначе
True.
Операнды Е в этой таблице представляет собой любое допустимое выражение с результатом типа Boolean, такое как операция сравне- ния.

121
Приоритеты выполнения операций при вычислении сложных
выражений
Сложное (составное) выражение (complex expression)это любое выражение, образованное из двух или более выражений. В таблице Б.4 собраны операции по группам в порядке убывания приори- тета, то есть чем ниже расположена группа, тем позже выполняются ука- занные в ней операции. Для изменения этого порядка применяются круглые скобки. Операции одного уровня выполняются слева направо в том порядке, в котором они записаны в выражении.
Таблица Б.4 – Приоритеты операций VBA
Оператор или знак
Комментарии
^
Возведение в степень, наивысший приоритет

Унарный минус - изменение знака числа
*, /
Умножение и деление имеют равные приоритеты; они вы- числяются по мере появления в выражении слева направо
\
Деление нацело
Mod
Остаток от деления нацело
+, –
Сложение и вычитание имеют равный приоритет; они вы- числяются по мере появления в выражении слева направо
&
Всякая конкатенация строк выполняется после любых арифметических операций в выражении и перед любыми операциями сравнения или логическими операциями
<, <=, >, >=,
=, <>, Is
Все операторы сравнения имеют равные приоритеты и вы- числяются по мере появления в выражении слева направо.
Используйте круглые скобки для группирования операто- ров сравнения в выражениях
Логические операторы
Not And Or Xor Eqv Imp – имеют низший приоритет

122
Приложение В
Математические функции VBA
VBA предоставляет стандартный набор математических функ- ций приведенный в таблице В.1.
Таблица B.1 – Математические функции VBA
Функции
Возвращает / действие
Abs(N)
Возвращает абсолютное значение N
Cos(N)
Косинус угла N, где N – это угол, измеренный в ра- дианах
Sin(N)
Возвращает синус угла; N – это угол, измеренный в радианах
Tan(N)
Возвращает тангенс угла; N – угол в радианах
Atn(N)
Возвращает арктангенс N как угол в радианах
Exp(N)
Возвращает константу е, возведенную в степень N (е – это основание натуральных логарифмов и она (при- близительно) равна 2,718282
Fix(N)
Возвращает целую часть N. Fix не округляет число, а отбрасывает любую дробную часть. Если N является отрицательным, Fix возвращает ближайшее отрица- тельное целое большее, чем или равное N
Int(N)
Возвращает целую часть N. Int не округляет число, а отбрасывает любую дробную часть. Если N является отрицательным, Int возвращает ближайшее отрица- тельное целое меньшее, чем или равное N
Log(N)
Возвращает натуральный логарифм N
Rnd(N)
Возвращает случайное число; аргумент является не- обязательным. Используйте функцию Rnd только после инициализации VBA-генератора случайных чи- сел оператором Randomize
Sgn(N)
Возвращает знак числа: –1, если N – отрицательное;
+1, если N –положительное; 0, если N равно 0
Sqr(N)
Возвращает корень квадратный из N. VBA отображает ошибку исполнения, если N – отрицательное

123
Операнд N означает любое численное выражение? допустимое в
VBA.
Аргумент тригонометрических функции (синуса, косинуса и тангенса) задается в радианах, а не в градусах. Обратная тригонометри- ческая функция A t n ( x ) возвращает в программу значение угла в ра- дианах от -π/2 до π/2, тангенс которого равен значению арифметиче- ского выражения х.
Связь между радианной и градусной мерами угла выражается через иррациональное число π ≈ 3,14159265358979323846.
π
π
180
Радианы
Градусы
180
Градусы
Радианы
×
=
×
=
Для перевода градусов в радианы можно также использовать встроенную функцию Excel - Application.Radians(x), где x – угол, за- данный в радианах.
Для получения числового значения константы π с точностью 15 цифр мантиссы можно использовать встроенную функцию Excel Ap- plication.Pi(), либо функцию VBA арктангенс
Pi= Application.Pi() либо Pi=4*Atn(1)
Примеры записи тригонометрических функций
Алгебраическая запись
Запись на VBA sin 15
°




)
n.Pi()/180
Applicatio
*
Sin(15
)
15)
n.Radians(
Applicatio
Sin(
80)
3.141593/1
*
Sin(15
tg
2
x
3
Tan(X^3)^2
Cos
2
(
х + 0,2)
3
Cos( (X + 0.2)^3 )^2

124
Операторы пересчета
В таблице В.2 приведены операторы VBA и встроенные функции
Excel
, позволяющие рассчитывать значения остальных тригонометри- ческих функций и обратных тригонометрических функций.
Таблица В.2 – Вычисление тригонометрических и обратных тригоно- метрических функций
Математическая запись функции
Запись функции на VBA
Встроенная функция
Excel ctg x
Cos(X) / Sin(X)
- sec x
1 / Cos(X)
- cosec x
1 / Sin(X)
-
Обратные тригонометрические функции arcsin x
Atn(X / Sqr(-X * X + 1))
Application.asin(x) arccos x
Atn(-X / Sqr(-X * X + 1)) + 2 *
Atn(1)
Application.acos(x) arcctg x
Atn(X) + 2 * Atn(1)
- arcsec x
Atn(X / Sqr(X * X – 1)) +
Sgn((X) – 1) * (2 * Atn(1))
- arccosec x
Atn(X / Sqr(X * X - 1)) +
(Sgn(X) – 1) * (2 * Atn(1))
-
В таблице В.3 приведены операторы VBA и встроенные функ- ции Excel, позволяющие рассчитывать значения гиперболических функций.

125
Таблица В.2 – Вычисление гиперболических функций
Математическая запись функции
Запись функции на VBA
Встроенная функция Ex- cel sh x
(Exp(X) – Exp(-X)) / 2
Application.sinh(x) ch x
(Exp(X) + Exp(-X)) / 2
Application.cosh(x) th x
(Exp(X)

Exp(-X)) /
(Exp(X) + Exp(-X))
Application.tanh(x) cth x
HCotan(X) = (Exp(X) +
Exp(-X)) / (Exp(X) – Exp(-
X))
- sech x
2 / (Exp(X) + Exp(-X))
- csch x
2 / (Exp(X) – Exp(-X))
- arsh x
Log(X + Sqr(X * X + 1))
Application.Asinh(x) arch x
Log(X + Sqr(X * X – 1))
Application.Acosh(x) arth x
Log((1 + X) / (1 – X)) / 2
Application.Atanh(x) arcth x
Log((X + 1) / (X – 1)) / 2
- arsch x
Log((Sqr(-X * X + 1) + 1) /
X)
- arcsch x
Log((Sgn(X) * Sqr(X * X +
1) + 1) / X)
-
Значения логарифмов, отличных от десятичных и натуральных, мо- гут быть вычислены через функцию VBA – натуральный логарифм
a
Ln
x
Ln
x
Log
a
=
, либо через встроенные функции Excel:
-
Application.Log10(x
) для вычисления десятичного логарифма;
-
Application.Log(x,a
) для вычисления логарифма по основанию «а».

126
Для определения минимального или максимального значения нескольких элементов можно использовать встроенные функции Ex- cel:
-
Application.min(x
1
, x
2
[, x
3
[, x
4
, …] ] ) – определение минимального значения перечисленных переменных;
-
Application.max(x
1
, x
2
[, x
3
[, x
4
, …] ] ) – определение максимально- го значения перечисленных переменных.
Количество аргументов этих функций может быть от двух до 30.
Вычисление корней нечётных степеней (п — произвольное ненуле- вое нечётное целое число).





<


=
=
0
,
|
|
0
,
|
|
1 1
1
x
если
x
x
если
x
x
x
n
n
n
n
Примеры записи операторов присваивания
Математическое обозначение
Запись на VBA y = log
5
x
2
Y = Log(X^2)/Log(5) y =
2
+
x
Y = Sqr(X+2.0) y =
3 4
Y = 4^(1/3)
3
x
y
=
Y= Abs
(Х)^(1/3)* Sgn (Х)
3 2
x
y
=
Y=(X^2)^(1/3) или
Y=Abs(X)^(2/3)

127
Приложение Г
Функции преобразования данных
Функции для преобразования одного типа данных в другой при- ведены в таблице Г.1.
ТаблицаГ.1 – Функции преобразования данных
Функция
Возвращает/действие
Asc(S)
Возвращает число кода символа, соответствующее первой букве строки S
Chr(N)
Возвращает строку из одного символа, соответст- вующего коду символа N, который должен быть чис- лом между 0 и 255, включительно. Код символа 65, например, возвращает букву "А" (Chr(13) – символ возврата каретки, Chr(10) – символ смещения на одну строку)
Format(E, S)
Возвращает строку, содержащую значение, представ- ленное выражением Е, в формате в соответствии с инструкциями, содержащимися в S
Val(S)
Возвращает численное значение, соответствующее числу, представленному строкой S, которая должна содержать только цифры и одну десятичную точку, иначе VBA не может преобразовать ее в число. Если
VBA не может преобразовать строку в S, то функция
Val возвращает 0
CBool(N)
Возвращает Boolean-эквивалент численного выраже- ния N

128
Продолжение таблицы Г.1
Функция
Возвращает/действие
CByte(E)
Возвращает численное значение типа Byte (от 0 до
255); Е – любое допустимое численное или строковое выражение, которое может быть преобразовано в число
CCur(E)
Возвращает численное значение типа Currency; E – любое допустимое численное или строковое выраже- ние, которое может быть преобразовано в число
CDate(E)
Возвращает значение типа Date. E может быть лю- бым допустимым выражением (строкой или числом), представляющим дату в диапазоне 1/1/100 –
12/31/9999, включительно
CDbl(E)
Возвращает численное значение типа Double; E – любое допустимое численное или строковое выраже- ние, которое может быть преобразовано в число
CSng(E)
Возвращает численное значение типа Single; E – лю- бое допустимое численное или строковое выражение, которое может быть преобразовано в число
CStr(E)
Возвращает значение типа String; E – любое допус- тимое численное или строковое выражение
Операнд N – это любое численное выражение, допустимое в
VBA, S – любое строковое выражение, а Е – выражение любого типа.

129
1   2   3   4   5   6   7   8   9   10   11


написать администратору сайта