
- •Использование visual basic for applications для разработки приложений в ms office
- •Введение
- •1. Общие принципы ооп
- •2. Визуальное программирование. Событийно-управляемое программирование
- •3. Структура программы и иерархия классов в office
- •4. Интегрированная среда разработки vba
- •4.1. Окна интегрированной среды
- •4.2. Меню
- •4.2.1. Меню Файл
- •4.2.2. Меню Вид
- •4.2.3. Меню Вставка
- •4.2.4. Меню Формат
- •4.2.5. Меню Отладка
- •4.2.6. Меню Запуск (Run)
- •4.2.7. Меню Сервис (Tools)
- •4.2.8. Пример создания простейшей формы
- •5. Язык vba, написание программного кода
- •5.1. Общие элементы синтаксиса, операторы
- •5.1.2. Арифметические операторы
- •5.1.3. Оператор конкатенации &
- •5.1.4. Логические операторы
- •5.1.5. Комментарий
- •5.2. Функции, процедуры, макросы, обработчики событий
- •5.2.1. Процедуры
- •5.2.2. Функции
- •5.2.3. Функции MsgBox и DialogBox
- •InputBox (подсказка [, заглавие ] [, по_умолчанию ] [, х_поз][ , у_поз][ , help_file, контекст]).
- •5.2.4. Еще один способ вызова процедуры или функции
- •5.3. Объявление переменных, типы переменных
- •5.4. Преобразованиеданных и типов данных
- •5.5. Массивы
- •5.6. Константы
- •5.7. Область видимости и время жизни переменных, констант и процедур
- •5.7.1. Управление областью видимости
- •5.7.2. Пример создания программного кода формы
- •5.8. Инструкции vba
- •5.8.1. Инструкции присваивания Let и Set
- •5.8.2. Инструкции циклов
- •5.8.3. Инструкции принятия решений
- •6. Создание графического интерфейса с помощью стандартных элементов диалога
- •6.1. Создание формы и размещение в ней элементов управления
- •6.1.1. Объектная модель библиотеки ms Forms
- •6.1.2. События форм и элементов управления
- •6.2. Элементы управления
- •6.2.1.Label (Надпись)
- •6.2.2.TextBox (Поле)
- •6.2.3.RadioButton (Переключатели или радиокнопки)
- •6.2.4.CheckBox (Флажок) и Toggle Button (Выключатель)
- •6.2.5.Frame (Рамка)
- •6.2.6.ListBox (Список)
- •6.2.7.ComboBox (Поле со списком)
- •6.2.14.Свойства элементов управления
- •7. Создание приложений для ms excel
- •7.1. Структура проекта
- •7.2. ОбъектApplication
- •7.3. Работа с книгами
- •7.4. Работа с рабочими листами
- •7.5. Работа с ячейками
- •8. Создание приложений для ms word
- •8.1. Структура проекта
- •8.2. ОбъектApplication
- •8.3. Работа с документами
- •8.4. Работа с абзацами
- •8.5. Работа с текстом
- •8.5.1. Объект Range
- •8.5.2. Объект Selection
- •9. Задания для самостоятельной работы
- •9.1. Создание графического интерфейса
- •9.2. Написание программного кода
- •9.3. Создание приложения дляWord
- •9.4. Написание функции и процедуры
- •9.5. Создание приложения дляExcel
- •Библиографический список
5.4. Преобразованиеданных и типов данных
При создании программы часто возникает необходимость в преобразовании одних данных в другие (например, приведение всех символов строки к заглавному регистру) или преобразование одних типов данных к другим (табл. 6). Такие преобразования часто выполняются компилятором языка автоматически, но в некоторых случаях лучше использовать для этого специальные функции.
Таблица 5
Перечень основных базовых типов языка VBA
Тип данных |
Занимаемый размер памяти |
Диапазон (область изменения) |
Boolean (Логический) |
2 байта |
True (истина) или False (ложь) |
Byte (Байт) |
1 байт |
От 0 до 255 |
Currency (Денежный) |
8 байт |
От –922337203685477.5808 до 922337203685477.5807 |
Date (Дата и время) |
8 байт |
От 1 января 100 г. до 31 декабря 9999 г. |
Double (С плавающей точкой двойной точности) |
8 байт |
От –1.79769313486232е308 до 1.79769313486232е308 |
Integer (Целый) |
2 байта |
От –32768 до +32768 |
Long (Длинное целое) |
4 байта |
От –2147483648 до 2147483 647 |
Object (Объект) |
4 байта |
Указатель на любой объект |
Single (С плавающей точкой обычной точности) |
4 байта |
От –3.402823е38 до 3.402823е38 |
String (Строка постоянной или переменной длины) |
Зависит от длины строки |
От 1 до приблизительно 2 миллиардов |
Variant |
Размер определяется элементами |
Диапазон определяется элементами |
Дополнительные сведения
Функция CVErr применяется для создания ошибок, определяемых пользователем, в создаваемых пользователем процедурах. Например, при создании функции, которая принимает несколько аргументов и обычно возвращает строку, имеется возможность проверить, что введенные аргументы попадают в допустимый диапазон значений. Если это не так, весьма вероятно, что функция не вернет ожидаемое значение. В этом случае функция CVErr позволяет вернуть код ошибки, чтобы знать, какие действия необходимо предпринять.
Различие между функциями Int и Fix состоит в том, что для отрицательного значения аргумента функция Int возвращает ближайшее отрицательное целое число, меньшее либо равное указанному, а функция Fix ближайшее отрицательное целое число, большее либо равное указанному. Так, функция Int преобразует -8.4 в -9, а функция Fix преобразует -8,4 в –8.
Функция Val прекращает чтение строки на первом символе, который она не может распознать в качестве части числа. Символы, которые часто рассматриваются в качестве частей числовых значений, типа знака доллара и запятых, не распознаются. Однако эта функция распознает префикс основания &O (для восьмеричных) и &H (для шестнадцатеричных значений). Пробелы, символы табуляции и символы перевода строк удаляются из значения аргумента.
Таблица 6
Преобразование данных
Действие |
Функция |
Преобразование кода ANSIв строку |
Chr(кодANSIсимвола) |
Преобразование регистра букв |
LCase(Строка) – преобразует строку к нижнему регистру UCase(Строка) – преобразует строку к верхнему регистру |
Преобразование даты в порядковый номер |
DateSerial (Year, Month, Day) – преобразует три числа типа Integer в тип Date DateValue(дата) – преобразует строковое выражение к типуDate |
Преобразование времени в порядковый номер (действуют аналогично двум предыдущим функциям) |
TimeSerial (Hour, Minute, Seconde) Time Value (Время) |
Преобразование в другую систему счисления |
Hex(число) иOct(число) – возвращают строковое выражение, соответствующее данному числу в шестнадцатеричной и восьмеричной системах счисления соответственно |
Преобразование числа в строку |
Str(число) |
Преобразование одного типа данных в другой |
Выполняют, если это возможно, перевод аргумента из одного типа в другой: СBool(аргумент) – в тип Boolean, CByte(аргумент) – в тип Byte, CCur(аргумент) – в тип Currency, CDate(аргумент) – в тип Date, CDbl(аргумент) – в тип Double, CDec(аргумент) – в тип Decimal, CInt(аргумент – в тип Integer, CLng(аргумент) – в тип Long, CSng(аргумент) – в тип Single, CStr(аргумент) – в тип String, CVar(аргумент) – в тип Variant, CVErr(аргумент) – возвращает значение типа Variant с подтипом Error, содержащее код ошибки, указанный пользователем, Fix(аргумент) – в тип Integer, отбрасывая дробную часть числа Int(аргумент) – в тип Integer, отбрасывая дробную часть числа |
Преобразование порядкового номера в дату |
Day,Month,Weekday,Year возвращают числовое выражение типа Integer, представляющее порядковый номер дня, месяца, дня недели или год, соответствующие введенному аргументу, который может иметь типDate,StringилиInteger(последние два должны быть заданы соответствующим образом) |
Преобразование строки в число |
Val(строка) – возвращает числа, содержащиеся в строке, как числовое значение соответствующего типа |
В следующем примере использования функции Val возвращается числовое значение, равное 1615198: Val(" 1615 198-я ул. N.Y."). В другом примере использования этой же функции для указанного шестнадцатеричного значения аргумента возвращается десятичное значение, равное (-1): Val("&HFFFF").
Примечание. Функция Val распознает в качестве разделителя целой и дробной части только точку (.). Для использования других разделителей целой и дробной частей следует применять при преобразования строки в число функцию CDbl.