- •Программирование в среде Microsoft Office 2000
- •1. Основные сведения о vba
- •1.2. Макрорекордер в Office 2000
- •2.Основные сведения о программировании на vba
- •2.1. Алфавит и лексика языка vba
- •2.2.Правила записи текста программы на vba.
- •2.4. Данные в vba
- •2.4.1. Типы данных в vba
- •Т ипы данных в vba
- •Встроенные типы данных показаны в таблице 2.1.
- •2.4.2.Объявление переменных и констант простых типов
- •2.4.3. Массивы
- •2.5.Использование стандартных диалоговых окон для организации ввода-вывода данных
- •2.5.1.Функция MsgBox
- •2.5.2.Функция InputBox
- •2.6. Управляющие конструкции vba
- •2.6.1.Условный оператор if
- •2.6.2.Оператор выбора Select Case
- •2.6.3.Оператор цикла For … Next
- •2.6.4.Оператор цикла While…Wend
- •2.6.5.Оператор цикла Do…Loop
- •2.6.6. Оператор перехода GoTo
- •2.7. Основные сведения об объектах
- •2.7.1.Основные понятия объектно-ориентированного программирования.
- •2.7.2. Особенности использования объектов.
- •2.7.3. Коллекции в vba
- •2.7.4. Объект Application
- •2.7.5. Объекты Range и Selection
- •2.7.6. Оператор With для операций с одним объектом.
- •2.8.Обработка ошибок
- •3.Программирование в приложениях ms Office 2000.
- •3.1.Объекты excel, их свойства и методы.
- •3.1.1. Объектная модель excel
- •3.1.2. Коллекция Workbooks
- •3.1.3. Объект Workbook
- •3.1.4.Объект Worksheet
- •3.1.5.Объект Chart
- •3.1.6.Объекты Range и Selection
- •3.1.7. Пример решения задачи в excel на основе построения vba-кода.
- •3.2. Объекты word, их свойства и методы.
- •3.2.1. Модель объектов word
- •3.2.2.Объект Appication
- •3.2.3. Объект Document
- •3.2.4. Классы, задающие структуризацию текста документа.
- •3.2.5. Классы, составляющие части документа
- •3.2.5.1. Объект Range
- •3.2.5.2. Объект Selection
- •3.2.6. Классы, представляющие структуру документа
- •3.3. Автоматизация работы в Access на основе использования Access vba
- •3.3.1. Средства автоматизации работы в Access.
- •3.3.2. Объектная модель Microsoft Access
- •3.3.3.Особенности программирования в Access vba
- •3.3.3.1. Модель программирования Access
- •3.3.3.2. Особенности работы с объектами в Access vba.
- •3.3.4. Манипулирование в Access объектами Application
- •3.3.5. Объекты доступа к данным
- •3.3.5.1. Объекты dao
- •3.3.5.2. Объекты ado
- •3.3.6. Использование объектов доступа к данным в Access
- •3.3.6.1. Соединение с текущей базой данных
- •3.3.6.2. Открытие базы данных
- •3.3.6.3. Создание базы данных
- •3.3.6.4. Выполнение операций с записями
- •3.3.6.5. Перемещение по набору записей
- •3.3.6.6. Поиск записей в объектах Recordset
- •3.3.7. Пример решения задачи в Access на основе построения vba-кода
- •3.4.Совместная работа приложений Microsoft Office 2000
- •4.Список рекомендуемой литературы
2.4. Данные в vba
2.4.1. Типы данных в vba
Данные в VBA характеризуются своими типами, которые определяют:
формат представления данных в памяти компьютера;
область возможных значений;
множество допустимых операций, применимых к данным.
Укрупненная классификация типов данных VBA показана на рис. 2.2.
Т ипы данных в vba
Простые Структурные
Встроенные Невстроенные
Рис.2.2. Типы данных в VBA.
Встроенные типы данных показаны в таблице 2.1.
Таблица 2.1. Встроенные типы данных VBA
Тип данных |
Описание |
Область значений |
Требуемая память |
Boolean |
Логическое значение |
True (Истина) и False (Ложь) |
2 байта. |
Byte |
Число без знака |
0-255 |
1 байт |
Currency |
Десятичные числа с фиксированным количеством знаков после запятой |
-922337203685477,5808- 9922337203685477,5807 |
8 байт |
Date |
Для хранения дат |
1.01.0100 г.-31.12.9999 г. |
8 байт |
Decimal |
Любое число |
28 знаков |
12 байт |
Double |
Числовые значения с плавающей точкой двойной точности |
-1,7E308 - -4,9E-324 для отрицательных чисел и 4,9E-324 - -1,7E308 для положительных чисел |
8 байт |
Integer |
Короткие целые числовые значения |
–32768 до 32767 |
2 байта |
Long |
Длинное целое числовое значение |
–2147483648 до 2147483647 |
4 байта |
Object |
Ссылка на объект |
|
4 байта |
Single |
Числовое значение с плавающей точкой обычной точности |
–3.402823E 38 до –1.401298E-45 для отрицательных чисел и 1.401298E-45 до 3.402823E 38 для положительных чисел |
4 байта |
String |
Для хранения строковых значений |
от 0 до 64 КБайт |
1 байт на символ |
Variant |
Для хранения всех вышеперечисленных типов |
Значения любого из вышеперечислнных типов |
16 байт, плюс 1 байт на каж-дый символ строковых значений |
2.4.2.Объявление переменных и констант простых типов
Данные, обрабатываемые программой, подразделяются на переменные и константы.
Переменная – это элемент данных, значение которого может задаваться и изменяться программой. Переменным должны быть присвоены имена.
В VBA существуют следующие возможности объявления типа переменной (все объявления переменных должны находиться в начале программного кода):
1) переменная может вообще не объявляться. В этом случае по умолчанию будет установлен тип Variant. Однако это может привести к медленной неэффективной работе программы и нерациональному использованию памяти.
2) переменная может объявляться явно с помощью оператора определения переменной:
Dim имяПеременной [ As типПеременной]
Например:
Dim My_name As String
Dim Число_ворон As Integer, Пи As Double
Dim Яблоко
Dim НомерТелефона As String*12
Примечание: Для объявления переменной кроме оператора DIM могут использоваться операторы PRIVATE, PUBLIC, STATIC, определяющие область видимости и время жизни переменной.
Чтобы переменные всегда объявлялись явно, нужно использовать опцию Option Explicit в секции (General) (Declarations) существующих модулей (см. рис. 2.3).
После установки этой опции VBA требует явного описания переменных и при использовании в коде необъявленной переменной выдаст сообщение об ошибке.
Рис. 2.3. Модуль с опцией Option Explicit в окне редактора кода.
3) переменная может объявляться неявно:
a)с помощью оператора объявления типа:
DefТип Начальная буква [ - Конечная буква]
Вместо Тип в DefТип указывается одно из следующих ключевых слов:
DefInt (для типа Integer);
DefLng (для типа Long);
DefSng (для типа Single);
DefStr (для типа String), и так далее.
Например:
' (General) (Declarations)
DefInt A - Z
Dim A, B As Byte
Dim С, D As Long
Здесь во второй строке определяется, что все переменные, не объявленные явно и начинающиеся с любой буквы в диапазоне от A до Z, будут по умолчанию иметь тип Integer. Т.о. в примере переменная B имеет тип Byte, переменная D имеет тип Long, а переменные A и C - тип Integer.
b) с помощью суффикса:
О типе переменной можно судить ( правда не всегда) по суффиксу, приписываемому к имени переменной. Суффиксы могут быть только у шести типов переменных:
Суффикс |
% |
& |
! |
# |
$ |
@ |
Тип |
Integer |
Long |
Single |
Double |
String |
Currency |
Например:
My_name$ - переменная типа String
Пи# - переменная типа Double
Примечание: Если переменная, тип которой указан неявно с помощью суффикса, встречается в программе многократно, то суффикс можно указывать только один раз при первом использовании этой переменной в программе.
Константа – это элемент данных, не меняющий своего значения.
В программе могут использоваться именованные и неименованные константы.
Существуют два типа именованных констант: встроенные и пользовательские. Имена встроенных констант, относящиеся к объектам EXCEL, начинаются с букв “xl”, а относящиеся к объектам VBA – с букв “vb”.
Например, объект Font (шрифт) имеет свойство Underline (подчеркивание). Для этого свойства имеется ряд встроенных констант, определяющих тип используемого подчеркивания: xlNone, xlSingle, xlDouble, и так далее.
Пример: оператор назначает одиночное подчеркивание текста в активной ячейке.
ActiveCell.Font.Underline=xlSingle
Пример: Const maxLen=30
Пользовательская константа объявляется оператором:
Const ИмяКонстанты [As Тип] = Выражение
В качестве Выражения допускается использование только постоянные значений и их комбинаций, включая арифметические и (или) логические операторы.
Например:
Const Pi = 3.1415926535
Const mName As Sring = "Maria"