ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 23.03.2025

Просмотров: 1041

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Конкатенация строк

Присоединение одной строки к другой называется конкатенацией (concatenation) строк. Знак « & » можно использовать только для конкатенации строк. Общий синтаксис знака & такой:

Operand1 & Operand2 [& Operand3…]

Operand1 и Operand2 – любые допустимые строковые или численные выражения. VBA преобразует числа в строки перед выполнением операции конкатенации. Тип данных результата конкатенации строк – это всегда тип String.

Логические операторы

Чаще всего логические операторы VBA используются для объединения результатов отдельных выражений сравнения, чтобы создать сложные критерии для принятия решений в процедуре, или для создания условий, при которых группа операторов должна повторяться (табл. 1.5).

Таблица 1.5 – Логические операторы (Е в этой таблице представляет собой любое допустимое выражение с результатом типа Boolean, такое как операция сравнения)

Оператор

Синтаксис

Имя/Описание

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.

34


Приоритеты выполнения операций при вычислении сложных выражений

Сложное (составное) выражение (complex expression) – это любое выражение, образованное из двух или более выражений. Многие из записываемых вами выражений – это сложные выражения, особенно, если они определяют управление последовательностью выполнения кода в процедурах или представляют различные математические формулы (табл. 1.6).

Таблица 1.6 – Иерархия операторов/операций от наивысшего до самого низкого приоритета.

Оператор

Комментарии

знак

^

Возведение в степень, наивысший

Унарный —

*, /

Умножение и деление имеют равные приоритеты;

они вычисляются по мере появления в выражении

\

Деление нацело

Mod

Остаток от деления нацело

+, –

Сложение и вычитание имеют равный приоритет;

они вычисляются по мере появления в выражении

&

Всякая конкатенация строк выполняется после лю-

бых арифметических операций в выражении и перед

любыми операциями сравнения или логическими

<, <=, >, >=,

Все операторы сравнения имеют равные приоритеты

Like, =, <>, Is

и вычисляются по мере появления в выражении сле-

ва направо. Используйте круглые скобки для груп-

Логические

Not And Or Xor Eqv Imp

операторы

Использование функций Visual Basic

Функция (Function) – это встроенная формула, выполняющая действия над выражениями и генерирующая значение. Функция всегда возвращает значение, которое VBA вставляет в программу в том месте, где появляется имя функции. Функции VBA делятся на несколько групп в зависимости от типа операции или вычисления,

35


которое они выполняют. Вы уже пользовались функциями: InputBox и MsgBox - для ввода вывода данных. Не путайте термины функция и процедура. Обычно процедура выполняет определенную задачу (или группу задач) подобно тому, как определенная команда меню в Excel, Word или другом приложении выполняет конкретную задачу. Функция оперирует одним или более значениями и возвращает некоторое результирующее значение (как формула в ячейке рабочего листа Excel). Чтобы использовать функцию, просто вводите имя функции в оператор VBA вместе с любыми аргументами, которые требуются для этой функции, в том месте в операторе, где вам необходимо использовать результат функции. Размещение имени функции в операторе называют вызовом (calling) функции.

Встроенные функции VBA делятся на несколько категорий (математические, преобразования данных, даты и времени, строковые и прочие).

Математические функции

VBA предоставляет стандартный набор математических функций.

Таблица 1.7 – Математические функции (N означает любое численное выражение)

Функции

Возвращает/действие

(аргументы)

Abs(N)

Возвращает абсолютное значение N

Cos(N)

Косинус угла N, где N – это угол, измеренный в радиа-

нах

Sin(N)

Возвращает синус угла; N – это угол, измеренный в ра-

дианах

Tan(N)

Возвращает тангенс угла; N – угол в радианах

Atn(N)

Возвращает арктангенс N как угол в радианах

36

Функции

Возвращает/действие

(аргументы)

Exp(N)

Возвращает константу е, возведенную в степень N е –

это основание натуральных логарифмов и она (при-

близительно) равна 2,718282

Fix(N)

Возвращает целую часть N. Fix не округляет число, а

отбрасывает любую дробную часть. Если N является

отрицательным, Fix возвращает ближайшее отрица-

тельное целое большее, чем или равное N

Int(N)

Возвращает целую часть N. Int не округляет число, а

отбрасывает любую дробную часть. Если N является

отрицательным, Int возвращает ближайшее отрица-

тельное целое меньшее, чем или равное

Log(N)

N Возвращает натуральный логарифм N

Rnd(N)

Возвращает случайное число; аргумент является не-

обязательным. Используйте функцию Rnd только

после инициализации VBA-генератора случайных чи-

сел оператором Randomize

Sgn(N)

Возвращает знак числа: –1, если N – отрицательное; 1,

если N –положительное; 0, если N равно 0

Sqr(N)

Возвращает корень квадратный из N. VBA отображает

ошибку исполнения, если N – отрицательное

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

VBA содержит функции для преобразования одного типа данных в другой (табл. 1.8). Эти функции используются для устранения ошибок несовпадения типов, и обеспечения явного контроля за типами данных в выражениях.

37


Таблица 1.8 – Функции преобразования данных (N – это любое численное, S – любое строковое, а Е – выражение любого типа)

Функция

Возвращает/действие

(аргументы)

Asc(S)

Возвращает число кода символа, соответствующее

первой букве строки S. Буква "А", например, имеет

код символа 65

Chr(N)

Возвращает строку из одного символа, соответст-

вующего коду символа N, который должен быть чис-

лом между 0 и 255, включительно. Код символа 65,

например, возвращает букву "А" (Chr(13) – символ

возврата каретки, Chr(10) – символ смещения на одну

строку)

Format(E, S)

Возвращает строку, содержащую значение, представ-

ленное выражением Е, в формате в соответствии с

инструкциями, содержащимися в S

Hex(N)

Возвращает строку, содержащую шестнадцатиричное

представление N

Oct(N)

Возвращает строку, содержащую восьмиричное

представление N

Str(N)

Возвращает строку, эквивалентную численному вы-

ражению N

Val(S)

Возвращает численное значение, соответствующее

числу, представленному строкой S, которая должна

содержать только цифры и одну десятичную точку,

иначе VBA не может преобразовать ее в число. Если

VBA не может преобразовать строку в S, то функция

CBool(N)

Возвращает Boolean-эквивалент численного выраже-

ния N

CCur(E)

Возвращает численное значение типа Currency; E –

любое допустимое численное или строковое выраже-

ние, которое может быть преобразовано в число

CStr(E)

Возвращает значение типа String; E – любое допус-

тимое численное или строковое выражение

CVar(E)

Возвращает значение типа Variant; E – любое допус-

тимое численное или строковое выражение

38


2. Практическая часть.

Задание 1. Напишите процедуру, выводящую сообщение даты вашего рождения (пример 1).

Задание 2. Модифицируйте процедуру HelloStudent (пример 2), используя явное определение переменной и свою Фамилию.

Задание 3. Составить процедуру для выполнения расчетов по формулам своего варианта из таблицы 1.9 (пример 4):

-для первой функции значения задавать в программе с помощью оператора присваивания;

-для второй функции значения задавать в диалоге с использованием функции InputBox.

Таблица 1.9

Ва-

Функция

Значения аргумента

ри-

ант

1

Y = 2x + 5x - 3

-2,1; 1.5; 3.25

F=(x+1)2 + 3(x+1)

-2; -1; 0

2

Y = tg (0,58x + 0,1) - x2

-2,1; 1,5; 3,25

F = (x+1)3 + 2(x+1)

-2; -1; 0

3

Z = (log 2 (x+2))(x-1) - 1

-1,1; 0; 2,32

F=2(x+3)3 + 3(x+3)

-2 ;-1 ;0 2

4

Q=(x-2)22x-1

-3,2; 2,1; 3,45

F=x2(x2+1)

-2 ;-1 ; 0

5

R=x log3(x+1)-2

-0,5; 0; 2,34

F=4x2 + 2(x3+1)2

-2; -1; 0

6

L=(x-3)2 log0,5(x-2) + 1

2,5; 3; 4,15

F=3(x+1)2 + 2(x+1)3+2

-2; -1; 0

7

A=arctg x - 1/3x2

-1; -0,3; 3,12

F=x2 (x2 - 1)

1; 0; 4

8

B=2arctgx-x+3

-1; -0,5; 2,25

F=x/2+(x/2)2

-2; 0; 2

39