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