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

Основы программирования на Visual Basic и VBA в Excel 2007

.pdf
Скачиваний:
3
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
39. Еще две пользовательские функция Excel
Ðèñ. 39.5
В активной ячейке появится количество значений, превосходя-
ùèõ h.
171
Заключение
Данная книга дает лишь начальное представление о VBA. Что­бы стимулировать продолжение изучения этого алгоритмического языка, приведем цитату из книги [6].
«Примерно 90 % от общего числа пользователей работают толь­ко со средствами рабочего листа Excel, без применения языка про­граммирования VBA, а значит, они используют лишь не более 10 % от реальных возможностей Excel. Таким образом, большая часть средств Excel остается невостребованной просто потому, что многие не знают о наличии VBA или не умеют им пользоваться».
Если при изучении VBA вы не все поймете, это не страшно. Дело в том, что сейчас программирование (в частности на VBA) достигло такого уровня сложности, что часто приходится работать «по образцу». Согласно этому методу, разработчик программы ис­пользует чужие программы или их части, не всегда до конца пони­мая, как они работают.
VBA является мощным средством увеличения возможностей табличного процессора Excel и всей системы Microsoft Office. Продолжить изучение этого алгоритмического языка можно по материалам справочных систем Microsoft Office. Рекомендуем так­же посетить сайт www.ozgrid.com авторов книги [11], а также ис­пользовать поисковую систему www.google.com для поиска гото­вых макросов.
172
Приложение 1
Типы данных Visual Basic
Тип данных
Boolean (логический)
Byte (короткий целый беззнаковый)
Integer
(целый) 2B Целые числа от -32
Long (длинный целый)
Размер ячейки
(B — áàéò)
2B
1B
4B
Currency (денежный)
8B
Значения переменной/константы
True (истина, логическая единица) и
False (ложь, логический нуль)
Целые числа от 0 до 255
Целые числа от -2 2 147 483 647
Числа с четырьмя десятичными знаками от -922 до 922 337 203 685 477.5807
Single (с плавающей точкой одинарной точ­ности)
4B
Числа с дробной частью от
-3.402823•10 для отрицательных чисел и от
1.401298•10 для положительных чисел
Double (с плавающей точкой двойной точно­сти)
8B
Числа с дробной частью от
-1.79769313486231•10
-4.94065645841247•10
для отрицательных чисел и от 4.94065645841247•10 до 1.79769313486232•10 для положительных чисел
Date (äàòà)
String (строковый пе ременной длины)
String (строковый по стоянной длины)
-
-
Задается при
выполнении
оператора
8B
10B+1B
символ
íà
От 1 января 100 года до 31
декабря 9999 года
Длина строки от 0 до 2
Длина строки от 1 до 2
Dim
или примечание
768 äî 32 767
147 483 648 äî
337 203 685 477.5808
38
äî -1.401298•10
-45
äî 3.402823•10
308
äî
-324
-324
308
31
символов
16
символов
-45
38
173
Г. З. Гарбер. Основы программирования на Visual Basic и VBA в Excel 2007
Тип данных
Variant (универсальный)
Object (объект)
Размер ячейки
(B — áàéò)
Для чисел
16
B
Для строк
2
2B+1B
на символ
4Â
Значения переменной/константы
или примечание
Значения соответствуют типу дан­ных
Boolean, Byte, Integer, Long, Currency, Single, Double или Date, определяемому автоматически
Длина строки от 0 до 2
Используется при объявлении объектов;
аналогичен типу Variant
31
символов
174
Приложение 2
Греческий алфавит
Строчная буква Заглавная буква Русское название
aA
bB
gG
dD
eE
zZ
hH
qQ
iI
kK
lL
mM
nN
xX
oO
pP
rR
sS
tT
uU
jF
cC
yY
wW
альфа alpha áåòà beta гамма gamma дельта delta эпсилон epsilon дзета zeta ýòà eta òåòà theta éîòà iota каппа kappa ламбда lambda ìþ mu íþ nu êñè xi омикрон omicron ïè pi ðî rho сигма sigma òàó tau ипсилон upsilon ôè phi õè chi ïñè psi омега omega
Английское
название
175
Приложение 3
Основные математические функции
Основные математические функции Visual Basic
Обращение к функции Возвращаемое значение
Abs(x)
Atn(x)
Cos(x)
Exp(x)
Fix(x)
Int(x)
Log(x)
Sgn(x)
Sin(x)
Sqr(x)
Tan(x)
Результат отбрасывания дробной части x
Наибольшее целое число, не превосходящее x
Натуральный логарифм ln x ïðè x >0
1, 0 èëè -1
tg x ïðè x ¹±
x
arctg x
cos x
x
e
в зависимости от знака x
sin x
ïðè x ³ 0
x
p/2
Операторы пересчета
Ниже приведены операторы Visual Basic, позволяющие рассчи­тывать значения тригонометрической функции ctg x, обратных тригонометрических функций arcsin x, arccos x и arcctg x и деся­тичного логарифма lg x.
ctg_x = Cos(x) / Sin(x) 'åñëè Sin(x) <> 0
Const pi As Double = 3.141592654
176
Приложение 3. Основные математические функции
arcsin_x = Atn(x / Sqr(1-x^2)) 'åñëè Abs(x) <> 1 arcsin_x = Sgn(x) * pi / 2 'åñëè Abs(x) = 1
arccos_x = Atn(Sqr(1-x^2)/x) 'åñëè x <> 0 arccos_x = pi / 2 'åñëèx=0
arcctg_x = Atn(1 / x) 'åñëè x <> 0 arcctg_x = pi / 2 'åñëèx=0
lg_x = Log(x) / 2.302585093 'åñëèx>0
177
Приложение 4
Рекомендации по темам контрольных работ
В конце данного приложения приведена таблица, которая со­держит функции f(x) и соответствующие им отрезки [a, b] из рабо­ты [7], обладающие следующими свойствами:
· функция f(x) непрерывна и монотонна на отрезке [a, b];
· значения функции на левой и правой границах отрезка [a, b]
имеют разные знаки.
На основе этой таблицы легко составить 31 и более вариантов заданий по программированию. Значения f(a), приведенные в таб­лице, нужны для отладки программ.
Ниже приводятся примеры заданий.
1. Разработать программу, которая èç четырех значений
yfa= (),fb(),fa b(. . )05 05+ чения, для которых выполняются следующие условия:
1) Fix(y) = CInt(y) è Fix(y) ¹ Int(y);
2) Int(y) = CInt(y) è Int(y) ¹ Fix(y); Fix(y) = Int(y) = CInt(y) = Round(y);
3)
4) Fix(y) = Int(y) èëè Fix(y) ¹ CInt(y);
5) Fix(y) = CInt(y) èëè Fix(y) ¹ Int(y);
6) Int(y) = CInt(y) èëè Int(y) ¹ Fix(y);
7) Fix(y) = Int(y) èëè Fix(y) = CInt(y);
8) Int(y) = CInt(y) èëè Int(y) = Fix(y);
9) CInt(y) = Fix(y) èëè CInt(y) = Int(y);
10) Fix(y) = Int(y) è Fix(y) ¹ CInt(y).
,
05 05.() .()fa fb+
выбирает такие зна-
В качестве пользовательского интерфейса программы исполь-
зовать
щего не менее чем из 10 строк вида
стандартные окна Windows.
2. Разработать программу создания текстового файла, состоя-
f( )xf
=
ii
178
Приложение 4. Рекомендации по темам контрольных работ
ãäå xiè fi— числовые значения аргумента и функции;
i — номер числового значения, 0 £ i £ n; x
= a; xn= b; x0< x1< x2< ... < x
0
n-2
< x
n-1
< xn.
3. Разработать программу расчета среднего значения функции
на отрезке [a, b] по формуле
fx()
fñð= (0.5f0+ f1+ f2+ ... + f
в которой фигурируют значения функции
n-2
+ f
n-1
+ 0.5fn)/n,
в равноотстоящих
fx()
точках отрезка [a, b]; значение n, превосходящее 100, задается. В качестве пользовательского интерфейса программы использо­вать стандартные окна Windows.
4. Разработать программу нахождения точки минимума функ-
öèè
yx f x() ()=
2
на отрезке [a, b] и расчета значения функции y(x)
в найденной точке. Точку минимума искать путем «шагания» по оси x с шагом h, не превосходящим 0.001. В качестве пользова­тельского интерфейса программы использовать форму, причем шаг h должен относиться к исходным данным программы; при h > 0.001 в форму должно выдаваться сообщение об ошибке.
5. Рассчитать значения функций
fx(),gx xfx() ()=
è
hx x f x() ()=
2
не менее чем в 10 точках отрезка [a, b] (включая a и b) следующими методами:
1) разработав макрос с помощью макрорекордера;
2) разработав пользовательскую функцию Excel;
3) написав текст макроса на VBA.
Средствами Excel построить графики зависимостей
fx()
, g(x)è
h(x).
6. Разработать программу решения уравнения
fx()= 0
íà îò-
резке [a, b] методом деления отрезка пополам. Уравнение решать с
-3
заданной погрешностью h ïî x, не превосходящей 10
. В качестве
пользовательского интерфейса программы использовать форму, причем погрешность h должна относиться к исходным данным программы; при h > 10
-3
должно выдаваться сообщение об ошибке.
Для читателя, не знакомого с методом деления отрезка попо-
лам, приведем его описание.
Пусть fa è fb — значения функции f на соответствующих грани-
цах отрезка [a, b]; эти значения имеют разные знаки. Метод деле­ния отрезка пополам работает следующим образом:
1) по формулам c = (a + b)/2 è fc = f(c) рассчитываются коорди-
ната середины отрезка [a, b] и значение функции в середине от­резка;
179
Г. З. Гарбер. Основы программирования на Visual Basic и VBA в Excel 2007
2) если совпадают знаки fc è fa, то смещается левая граница от-
резка [a, b]: полагается a = c è fa = fc; далее выполняется четвертый пункт;
3) если совпадают знаки fc è fb, то смещается правая граница
отрезка [a, b]: полагается b = c è fb = fc;
4) повторяются три предыдущих пункта до тех пор, пока не вы-
полнится условие b - a < h;
5) при выполнении последнего условия процесс решения урав-
нения f(x) = 0 оканчивается; конечное значение c считается реше­нием этого уравнения.
Задания, приведенные в данном приложении, могут быть ис­пользованы преподавателями при подготовке тем контрольных ра­бот. Эти задания можно также использовать для самопроверки при самостоятельном изучении материала книги.
Варианты заданий
¹
варианта
1
2
3
4
5
6
7
8
9
10
11
12
Функция f(x) Отрезок [a, b] Значение f(a)
(. sin ) .38 3 035--xx
13 36(sin(.))+-xx
cos .103
sin .104
0 25 1 2502
..xx--
2
01
.lnxxx-
34 5xx--ln
xx
ee
---2
xxx++-325.
tg x tg x tg x() ( ) ( ) .-+-
cos( ) sin()()221 1xxx-+
sin(ln ) cos(ln ) lnxx
3
--xx
2
--xx
3
35
3 5 0 3333333
x-+2
180
[2; 3] 0.3905776
[0; 0.85] 0.3333333
[0; 1] 0.5403023
[0; 1] 0.841471
[2; 3] -1.2502
[1; 2] 0.1
[2;
4] -1.772589
[0; 1] -2
[0.4; 1] -0.7307382
[0; 0.8] -0.3333333
[1; 2] -1.099089
[1; 3] -1
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]