ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 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