Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика VBA.pdf
Скачиваний:
891
Добавлен:
27.03.2016
Размер:
1.1 Mб
Скачать

Операторы пересчета

В таблице В.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 *

Application.acos(x)

Atn(1)

 

 

 

 

 

 

 

 

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, позволяющие рассчитывать значения гиперболических функций.

124

Таблица В.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))

/

Application.tanh(x)

(Exp(X) + Exp(-X))

 

 

 

 

 

 

 

 

 

 

 

HCotan(X)

=

(Exp(X)

+

 

cth 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– натуральный логарифм

Loga x =

Ln x

,

Ln a

 

 

либо через встроенные функции Excel:

-Application.Log10(x) для вычисления десятичного логарифма;

-Application.Log(x,a) для вычисления логарифма по основанию «а».

125

Для определения минимального или максимального значения нескольких элементов можно использовать встроенные функции Excel:

-Application.min(x1, x2 [, x3 [, x4, …] ] ) – определение минимального значения перечисленных переменных;

-Application.max(x1, x2 [, x3 [, x4, …] ] ) – определение максимально-

го значения перечисленных переменных.

Количество аргументов этих функций может быть от двух до 30.

Вычисление корней нечётных степеней (п — произвольное ненулевое нечётное целое число).

 

1

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

,если x 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n x =xn =

| x | 1

 

 

 

 

 

 

 

 

 

 

 

 

,если x <0

 

 

 

 

 

 

 

 

 

 

| x |n

Примеры записи операторов присваивания

 

Математическое

Запись на VBA

 

обозначение

 

 

 

 

 

y = log5x2

Y = Log(X^2)/Log(5)

y =

 

 

 

 

 

 

 

Y = Sqr(X+2.0)

 

x +2

 

y = 3

 

 

 

 

 

 

 

 

 

Y = 4^(1/3)

 

4

 

 

 

 

 

 

 

 

y = 3

 

 

 

Y= Abs(Х)^(1/3)* Sgn (Х)

x

 

 

 

 

 

 

 

 

 

 

Y=(X^2)^(1/3)

или

y = 3 x2

Y=Abs(X)^(2/3)

 

 

 

 

 

 

 

 

 

 

 

 

126

Приложение Г Функции преобразования данных

Функции для преобразования одного типа данных в другой приведены в таблице Г.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

 

 

127

Продолжение таблицы Г.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 – любое строковое выражение, а Е – выражение любого типа.

128

Приложение Д

Встроенные константы VBA функции MsgBox

VBA предоставляет несколько внутренних констант (intrinsic constants), называемых также предопределенными константами (predefined constants). Внутренняя константа – это именованная константа, которая была определена разработчиками VBA. Внутренние константы, определяемые VBA, все начинаются с букв vb для указания того, что они определяются языком Visual Basic for Applications (или Visual Basic). Перечень встроенных константы для функции MsgBox приведен в таблице Д.1.

Таблица Д.1 – Встроенные константы для функции MsgBox

Константа

Числовое

Назначение

 

значение

 

 

 

 

vbOKOnly

0

Отображает только кнопку OK; то же са-

 

 

мое происходит, если не задан аргумент

 

 

Buttons

 

 

 

vbOKCancel

1

Отображает кнопки OK и Отмена (OK,

 

 

Cancel)

 

 

 

vbAbortRetryIgnore

2

Отображает командные кнопки Стоп, По-

 

 

втор, Пропустить(Abort, Retry, Cancel)

 

 

 

vbYesNoCancel

3

Отображает кнопки Да, Нет и Отмена

 

 

(Yes, No, Cancel)

 

 

 

vbYesNo

4

Отображает кнопки Да и Нет (Yes, No)

 

 

 

vbRetryCancel

5

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

 

 

(Retry, Cancel)

 

 

 

vbCritical

16

Отображает в диалоге значок крити-

 

 

 

 

ческого предупредительного сообщения

 

 

(Critical Message) Windows (красный кру-

 

 

жок)

 

 

 

129

Продолжение таблицы Д.1

Константа

Числовое

Назначение

 

значение

 

 

 

 

vbQuestion

32

Отображает значок запроса (Query

 

 

 

 

icon) Windows ("?"); обычно используется,

 

 

чтобы задать пользователю очень важный

 

 

вопрос или выдать предупредительное со-

 

 

общение, требующее ответа

 

 

 

vbExclamation

48

Отображает значок ("!") предупреж-

 

 

 

 

дения (Warning Message); обычно исполь-

 

 

зуется для отображения важной информа-

 

 

ции или предупреждения, не требующего

 

 

ответа

 

 

 

vbInformation

64

Отображает значок ("i") информации

 

 

 

 

(Information Message); обычно использу-

 

 

ется для отображения важной информа-

 

 

ции, кроме предупреждения

 

 

 

vbDefaultButton1

128

Первая командная кнопка в диалоговом

 

 

окне является кнопкой по умолчанию

 

 

 

vbDefaultButton2

256

Вторая командная кнопка в диалоговом

 

 

окне является кнопкой по умолчанию

 

 

 

vbDefaultButton3

512

Третья командная кнопка в диалоговом

 

 

окне является кнопкой по умолчанию

 

 

 

vbDefaultButton4

748

Четвертая командная кнопка в диалоговом

 

 

окне является кнопкой по умолчанию

 

 

 

Результатом функции MsgBox является код нажатой пользователем световой кнопки диалогового окна. Числовые значения и на-

130

именования внутренних констант VBA, возвращаемые функцией MsgBox, приведены в таблице Д.2.

Таблица Д.2 – Возвращаемые значения-константы функции MsgBox

Константа

Числовое

Означает, что пользователь выбирает кнопку

 

значение

 

 

 

 

vbOK

1

Да (OK)

 

 

 

vbCancel

2

Отмена (Cancel)

 

 

 

vbAbort

3

Стоп (Abort)

 

 

 

vbRetry

4

Повтор (Retry)

 

 

 

vbIgnore

5

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

 

 

 

vbYes

6

Да (Yes)

 

 

 

vbNo

7

Нет (No)

 

 

 

Функция MsgBox, отображающая окно с сообщением, имеет следующий синтаксис:

MsgBox (Prompt [, Buttons] [, Title] [, HelpFile, Context])

Аргумент Prompt представляет любое строковое значение (литерал, константу или переменную). MsgBox отображает эту строку в диалоговом окне; необходимо всегда предоставлять аргумент Prompt, по-

скольку это – обязательный аргумент (required argument). Аргумент

Buttons (необязательный аргумент) является численным выражением, определяет отображаемые в диалоговом окне кнопки и сообщений. Аргумент Title представляет любое строковое значение (литерал, константу или переменную). MsgBox отображает текст этой строки в строке заголовка диалогового окна. Если опустить аргумент Title, VBA отображает в строке заголовка диалогового окна MsgBox слово "Microsoft Excel". Аргумент HelpFile – файл справки, Context – раздел в справочном файле. Текст сообщения можно заключать в скоб-

131

ки, но скобки необязательны, когда функция MsgBox используется как оператор.

Пример использования функции MsgBox

Вывести на активный лист рабочей книги Excel диалоговое окно, изображенное на рисунке Д.1.

Рисунок Д.1 – Вид диалогового окна

Текст программы.

Sub Пример_MsgBox()

Kod = MsgBox("Вы уже посмотрели, как работает программа?"& _

Chr(13) & Chr(10) & "Завершить работу сейчас?", _ vbYesNo + vbQuestion, _

"Демонстрация в MsgBox многстрочного сообщения")

If kod = vbYes Then Unload Me 'выгрузить форму

End Sub

132

Учебное издание

Карташов Николай Сергеевич Макаров Алексей Иванович Макаров Дмитрий Алексеевич

Алгоритмизация и программирование на VBA в Microsoft Excel Учебное пособие

Под редакцией проф., к.т.н. Макарова А.И. Оригинал-макет подготовлен редакционно-издательским отделом

Университета машиностроения

По тематическому плану внутривузовских изданий учебной литературы на 2012 г.

Подписано в печать __.__.12. Формат 60х90 1/16 Бумага 80 г/м2 Гарнитура «Таймс». Ризография. Усл. печ. л. 8.3

Тираж 150 экз. Заказ №

Университет машиностроения 107023. г. Москва, Б.Семеновская ул., 38

133