Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции по VBA.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.34 Mб
Скачать

Преобразования численных типов

VBA преобразует численные типы данных в выражении в тип наибольшей точности, который затем дает результату выражения. Например, операндами выражения являются числа 10 (Integer) и 20.89 (Single) - результат выражения будет иметь тип Single.

Но, если переменной типа Integer попытаться присвоить численное выражение типа Single, то VBA произведет округление до необходимой точности.

Преобразование строк и чисел

При преобразовании числа в строку VBA создает строку, содержащую все цифры этого числа и десятичный знак (если таковой имеется). Например, число 123.849 будет преобразовано в строку "123.849".

Если число очень большое или очень маленькое - VBA создаст строку в экспоненциальном виде. Например: 123000000 преобразуется в "123Е6".

Обратное преобразование возможно, если только строка содержит символьное представление числа в десятичном формате или экспоненциальном, при этом в качестве разделителя дробной части используется точка (но не запятая).

Преобразования Boolean

Когда VBA преобразует значения типа Boolean в числа, значение True преобразуется в 1, а False - в 0.

Когда происходит обратное преобразование, то VBA преобразует 0 в False, а любое другое число - в True.

Если происходит преобразование типа Boolean в строки, то VBA использует строку "True" для логического значения True и строку "False" - для False. Обратного преобразования строки в тип Boolean не предусмотрено.

Преобразование Date

Когда VBA преобразует тип данных Date в число, результатом является численное значение - число типа Double, которое содержит количество дней от 30 декабря 1899 (отрицательное число представляет дату, более раннюю чем 30 декабря 1899). Десятичная часть числа выражает время дня как часть дня; 0 - это полночь, 0.5 - это полдень.

Преобразование численных типов данных в типы Date является просто обратным преобразованию типа Date в число.

Арифметические операторы vba

Оператор присваивания (=)

Оператор присваивания используется для присваивания результата выражения переменной.

Операция присваивания имеет две синтаксические формы: 

varname = expression

varname - любая переменная VBA

expression - любое выражение VBA

При выполнении оператора присваивания VBA сначала вычисляет выражение справа от оператора присваивания, а затем сохраняет результат выражения в переменной, имя которой находится слева от знака равенства.

X = 5 + 7; Y = X + 5 ; Z = X - Y; A = B; I = I + 1

Начинающим пользователям иногда непонятен смысл последней операции присваивания, когда и в левой, и в правой частях операции стоит одна и та же переменная. В этом случае сначала в промежуточную ячейку памяти помещается результат вычисления выражения правой части оператора присваивания, а затем этот результат присваивается переменной в левой части.

Например, если в операторе присваивания А = А +5, переменная А до операции присваивания содержала значение 7, то после операции она будет содержать значение 12 (7+5).

Следует запомнить:

  • Можно присваивать любую численную переменную (или выражение) любой другой переменной численного типа (или переменной типа Variant);

  • Если присваивается численное выражение типизированной переменной с меньшей точностью (например, Double - Long), VBA округляет значение выражения для совпадения с точностью переменной, принимающей новое значение;

  • Если переменной типа String присваивается переменная типа Variant, содержащая число, VBA автоматически преобразует это число в строку.

Оператор сложения (+)

Оператор сложения выполняет простое сложение. Оба операнда должны быть численными выражениями или строками, которые VBA может преобразовать в число. Оператор сложения можно также использовать для выполнения арифметических операций с данными типа Date.

Тип данных результата выражения сложения обычно тот же, что и наиболее точный тип в этом выражении. Но, есть исключения:

  • Результатом сложения типа Single и Long будет Double;

  • Результатом сложения типа Date с любым другим типом данных всегда будет Date;

  • Если результат превышает диапазон типа Integer, то VBA преобразует его в Long;

  • Если результат превышает типы Long, Single, Date, то VBA преобразует его в Double;

  • Если любой операнд в выражении сложения является Null, то результатом выражения сложения также будет Null.

Напомним порядок увеличения точности для численных типов данных: Byte, Integer, Long, Single, Double, Currency.

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