
- •Лабораторная работа №5 Общие приемы программирования на vba
- •Основные конструкции и принципы vba
- •Синтаксические описания
- •Переменные
- •Типы данных в vba
- •Переменные: Dim и Static
- •Арифметические операторы и работа с числовыми переменными
- •Конкатенация
- •Преобразование типов данных
- •Функции проверки типа данных
- •Встроенные математические функции
- •Строковые функции
-
Преобразование типов данных
Нередко возникают ситуации, когда данные одного типа надо преобразовать в данные другого. Ярче всего это проявляется тогда, когда нужно преобразовать число, представленное в виде строки и хранящееся в строковой переменной.
Пример 5.
Проведем эксперимент. Создайте форму, назовите ее frm_First, разместите на ней три текстовых поля — txt_First и txt_Second для ввода чисел, и txt_Summ для вывода суммы этих чисел. Добавьте на форму кнопку cmd_First с надписью Сумма и создайте для нее обработчик события Click
.
txt_Summ = txt_First + txt_Second
Рис. 4. Эксперимент: вместо сложения — конкатенация
Как видите, вместо сложения мы получили конкатенацию. Любые значения, вводимые в текстовые поля, по умолчанию рассматриваются как строковые. Чтобы все-таки получить сумму введенных чисел в поле "Сумма чисел", нам нужно превратить строки, пусть и содержащие числовые символы, в настоящие числа, преобразовать их из типа данных String в один из числовых типов.
Для таких "превращений" существуют специальные функции преобразования типов.
-
Val — тип String в тип Double
Функция Val применяется для конверсии строковых переменных в числовые, а именно – переменных типа String в тип Double.
Чтобы пример 5 заработал, код обработчика нажатия кнопки нужно переписать так:
txt_Summ = Val(txt_First) + Val(txt_Second)
Давайте рассмотрим еще несколько примеров использования этой функции.
Val ("12345привет") возвратит число 12345.
Val читает предлагаемую ей строку слева направо, игнорируя пробелы. Она считывает все числовые знаки до первого символьного знака и преобразует считанное в число. В качестве дробных символов функция понимает лишь точки.
Val ("1 2 3") возвратит число 123
Val ("1 2 и 3") возвратит число 12.
-
Str — числовые типы в String
Функция Str конвертирует данные различных числовых типов в тип String.
Особенность функции заключается в том, что первый символ полученного строкового значения зарезервирован для знака числа. Если в строку конвертируется число отрицательное — первый символ полученной строки — знак -. Если конвертируется положительное число, первым символом полученной строки будет пробел, а дальше будут идти числовые символы.
Например, функция Str (12) возвратит строку " 12 "..
Существуют и другие функции, предназначенные для конверсии типов данных. Их названия состоят из сокращенного слова "Convert" и сокращенного же названия типа данных, в который они конвертируют входные значения.
Например, это CBool,CByte, CCur, CDate, CDbl, CDec, CInt, CLng, CSng, CStr, CVar. Скажем, функция CInt конвертирует данные в формат Integer. Учитывая особенности этого типа данных, корректно могут быть сконвертированы лишь значения от -32768 до 32767. Причем, дробные числа округляются при конверсии до ближайшего четного числа — 0.5 округляется до 0, 1.5 — до 2. Если вам понадобятся подробности о каждой из этих функций — обратитесь к справочной системе VBA.