Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
EDO_VBA.doc
Скачиваний:
3
Добавлен:
11.08.2019
Размер:
494.08 Кб
Скачать

9.2. Функції перетворення і перевірки типів даних

У програмах на VBA дуже часто доводиться перетворювати значення одного типу даних в інший.

Найчастіше для конвертації типів даних використовуються функції, ім'я яких складається з префікса 'C' (від слова Convert) і імені типу даних.

Перелік цих функцій наступний: CBool(), CByte(), CCur(), CDate(), CDbl(), CDec(), CInt(), CLng(), CSng(), CStr(), CVar(), CVDate(), CVErr(). Проглянути, що у результаті вийшло, можна за допомогою функції TypeName(), яка повертає ім'я використовуваного типу даних, наприклад:

nVar1 = CInt(InputBox("Введіть значення"))

MsgBox TypeName(nVar1)

В даному випадку ця функція поверне "Integer".

Крім того, існує ще декілька корисних для конвертації функцій.

ˆ Str() — дозволяє перевести числове значення в стрічкове. Робить майже те ж саме, що і CStr(), але при цьому вставляє пропуск перед числами.

ˆ Val() — "витягує" з суміші цифр і букв тільки числове значення.

При цьому функція читає дані зліва направо і зупиняється на першому нечисловому значенні (допускається єдине нечислове значенні — точка, яка відділятиме цілу частину від дробової). Дуже зручно, коли у нас упереміж з числовими даними прописуються одиниці виміру або валюта.

ˆ IsNumeric() і IsDate() — перевіряють значення на відповідність, щоб не виникло помилок при конвертації. Для перевірки на відповідність спеціальным значенням можна використовувати функції IsArray(), IsEmpty(), IsError(), IsMissing(), IsNull() і IsObject(). Усі ці функції возвращають True або False залежно від результатів перевірки переданого ним значення.

ˆ Hex() і Oct() — перетворюють десяткові дані в стрічкові представлення шістнадцятиричних і вісімкових значень.

9.3. Стрічкові функції

ˆ Asc() — ця функція дозволяє повернути числовий код для переданого символу. Наприклад, Asc("D") поверне 68. Цю функцію зручно використовувати для того, щоб визначити наступну або попередню букву. Зазвичай вона використовується разом з функцією Chr(), яка робить зворотну операцію — повертає символ по переданому його числовому коду. Наприклад, такий код в Excel дозволяє написати в комірки з A1 по A20 послідовно букви українського алфавіту від A до У:

Dim n, nCharCode As Integer

n = 1

nCharCode = Asc("А")

Do While n <= 20

ActiveWorkbook.ActiveSheet.Range("A" & n).Value = Chr(nCharCode)

n = n + 1

nCharCode = nCharCode + 1

Loop

Варіанти цієї функції — AscB() і AscW(). AscB() повертає тільки перший байт числового коду для символу, а AscW() повертає код для символу в кодуванні Unicode.

ˆ Chr() — повертає символ за його числовим кодом. Окрім того, що використується в парі з функцією Asc() (див. попередній приклад), без неї не обійтися ще в одній ситуації: коли треба вивести службовий символ. Наприклад, нам треба надрукувати в Word значення "Газпром" (у лапках). Лапка — це службовий символ, і спроба використовувати рядок виду :

Selection.Text = "" Газпром""

приведе до синтаксичної помилки. А ось так усе буде в порядку :

Selection.Text = Chr(34) & "Газпром" & Chr(34)

Є варіанти цієї функції — ChrB() і ChrW(). Працюють аналогічно таким же варіантам для функції Asc().

ˆ InStr() і InStrRev() — одні з найпопулярніших функцій. Дозволяють виявити в тілі стрічкової змінної послідовність символів і повернути її позицію. Якщо послідовність не виявлена, то повертають 0. Функція InStr() шукає з початку рядка, а InStrRev() — з кінця.

ˆ Left(), Right(), Mid() — дозволяють узяти вказану вами кількість символів з існуючої стрічкової змінної ліворуч, справа або з середині відповідно.

ˆ Len() — повертає число символів в рядку (довжину рядка). Часто використується з циклами, операціями заміни і т. д.

ˆ LCase() і UCase() — переводять рядок в нижній і верхній регістри відповідно. Часто використовуються для підготовки значення до порівняння, коли регістр не важливий (прізвища, назви фірм, міст і т. п.).

ˆ LSet() і RSet() — заповнюють одну змінну символами іншої без зміни її довжини (відповідно ліворуч і справа). Зайві символи обрізаються, на місце де їх не вистачає підставляються пропуски.

ˆ LTrim(), RTrim(), Trim() — прибирають пропуски відповідно ліворуч, справа або і ліворуч, і справа.

ˆ Replace() — замінює в рядку одну послідовність символів на іншу.

ˆ Space() і String() — повертають рядок з вказаної вами кількості пропусків або символів відповідно. Зазвичай використовуються для форматування виводу спільно з функцією Len(). Ще одна схожа функція — Spc(), яка використовується для форматування виводу на консоль. Вона розмножує пропуски з урахуванням ширини командного рядка.

ˆ StrComp() — порівнює два рядки.

ˆ StrConv() — перетворить рядок (в Unicode і назад, у верхній і нижний регістри, першу букву слів заголовної і т. д.).

ˆ StrReverse() — "перевертає" рядок, розмістивши його символи в зворотному порядку.

ˆ Tab() — ще одна функція, яка використовується для форматування виводу на консоль. Розмножує символи табуляції в тій кількості, в якому ви вкажете. Якщо ніякої кількості не вказано, просто вставляє символ табуляції. Для вставки символу табуляції в стрічкове значення можна також використовувати константу vbTab.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]