- •Основы офисного программирования и язык vba
- •Офисное программирование
- •Состав Office 2000
- •Инсталляция Office 2000
- •Содержимое диска "Resource Kit"
- •Документ Issues
- •Документ ork9
- •Папка Tools
- •Содержимое диска "Language Pack"
- •Об этой книге и ...
- •Моя благодарность
- •Vba и объекты. Обзор
- •Библиотека объектов Office 2000 - каркас приложений
- •Встраивание вместо наследования
- •Построение каркаса документа
- •Библиотека объектов Office 2000 и Object Browser
- •Объекты Application
- •Свойства-участники
- •Вторая группа терминальных свойств
- •Методы объектов Application
- •События объектов Application
- •Совместная работа приложений. Создание объектов Application. Раннее и позднее связывание
- •Коллекции в Office 2000
- •Коллекции объектов Office 2000
- •Коллекции Excel: Workbooks, Sheets
- •Коллекция Workbooks
- •Коллекция Sheets
- •Коллекции Word: Documents, Paragraphs и другие
- •Коллекция Documents
- •Коллекция Paragraphs
- •Коллекция Sections
- •Коллекции Characters, Words, Sentences
- •Коллекции и конструкция For Each … Next
- •Объекты Range
- •Что определяет объект Range?
- •Метод Range
- •Объекты Selection
- •Метод Select и свойство Selection
- •Активные объекты и метод Activate
- •Проектирование документов
- •Документ и его программный проект
- •Модули - обработчики событий
- •Стандартные модули
- •Модули классов
- •Модуль макросов
- •Структура модуля. Окно проекта и Окно кода
- •Окно проекта
- •Свойства проекта
- •Имя проекта
- •Защита проекта
- •Окно кода
- •Еще раз о "переиспользовании" модулей
- •Проект и область видимости
- •Система документов и ее проект
- •Организация системы документов
- •Как организуются ссылки между проектами
- •Обмен информацией между документами
- •Система документов One - Two - Three
- •Типы данных
- •Простые типы данных.
- •Объявление переменных и констант простых типов
- •Синтаксис объявления простых переменных
- •Объявления по умолчанию
- •Константы
- •Массивы
- •Динамические массивы
- •Записи и тип, определенный программистом
- •Что можно делать с записями?
- •Раздел объявлений
- •Раздел опций
- •Разделы констант, типов и переменных
- •Раздел Declare
- •Правила именования
- •Типы и классы Еще раз о понятии "класс"
- •Что нового в классах "Office 2000"
- •Создание класса "Личность"
- •Объекты и переменные
- •Объекты, класс которых определен пользователем.
- •Объекты "родного" приложения
- •ActiveX-объекты
- •Модуль класса Свойства
- •Сокрытие свойств
- •Конструкторы и деструкторы. Стандартные события
- •Стандартные события Initialize и Terminate
- •Два конструктора класса Rational
- •Процедуры - свойства
- •Как создаются процедуры- свойства
- •Синтаксис Let, Get и Set
- •Классы, как упаковка
- •Семейство классов и процедуры - свойства
- •Friend методы
- •События
- •Классы, объекты With Events и обработчики событий
- •Модуль класса с объектом WithEvents
- •Объект WithEvents
- •События собственных классов
- •Как создать класс с событиями
- •Как зажигаются события
- •Где и как следует создавать обработчики событий для экземпляров класса
- •Связывание объектов
- •Реальные объекты и инициирование событий
- •Семейство классов и реализация интерфейсов
- •Наследование
- •Виртуальные методы и полиморфизм
- •Абстрактные классы
- •Наследование и полиморфизм в Office 2000
- •Наследование интерфейсов
- •Полиморфизм семейства классов
- •Проект "Люди и Машины"
Простые типы данных.
Как и всякий порядочный язык, VBA содержит все привычные встроенные простые типы данных: логические, арифметические и строковые:
Таблица 3.1. Система простых типов языка VBA |
||
Имя типа |
Возможные значения |
Требуемая память |
Boolean |
True, False |
2 байта |
Byte |
0…255 |
1 байт |
Integer |
-32768 …+32767 |
2 байта |
Long |
Примерно: -2000 000 000…+2000 000 000 |
4 байта |
Decimal |
Примерно 30 десятичных цифр. Можно указать число цифр после десятичной точки. |
12 байтов |
Single |
- 3,4E38 …-1,4 E-45 для отрицательных значений 1,4E-45 … 3,4E38 для положительных значений |
4 байта |
Double |
-1,7E308 … -4,9E-324 для отрицательных значений4,9E-324 … 1,7E308 для положительных значений |
8 байтов |
Currency |
Десятичные числа с фиксированной позицией запятой. Возможны 15 цифр до запятой и 4 после. |
8 байтов |
String |
Есть два вида строк: Строки фиксированной длины имеют до 216 символов. Строки переменной длины имеют до 231 символов. |
10 байтов +1 байт на символ в обычной кодировке и 2 байта в кодировке Unicode |
Date |
Даты изменяются в диапазоне от 1 января 100 г. до 31 декабря 9999 г. |
8 байтов |
Object |
Ссылка на объект (указатель) |
4 байта |
Variant |
Универсальный тип, значением которого могут быть данные любого из перечисленных выше типов, объекты, значения NULL и значения ошибок ERROR |
Зависит от контекста, но не менее 16 байтов |
Как видите, в VBA имеется не меньше простых типов, чем в других известных языках программирования. Сделаем несколько замечаний. Переменные типа Decimal нельзя объявлять так, как переменные других типов, - например, оператором Dim. Этот тип является одним из вариантов типа Variant и для его задания используется функция CDec. Тип Currency используется при денежных расчетах.
Замечание:
Иногда, тип Currency используют вместо вещественного типа Single для ускорения расчетов. Вычисления над данными этого типа идут быстрее, чем в случае, когда для проведения вычислений приходится привлекать сопроцессор.
Особо стоит сказать о типе Variant. Такой универсальный тип позволяет превратить язык в бестиповый,- все данные могут иметь один тип (Variant). Конечно, это удобно (думать не надо!), а иногда и полезно, но чревато неприятными ошибками, да и память расходуется не эффективно. VBA провоцирует чрезмерное использование этого типа, так как позволяет, объявляя переменную, не указывать ее тип, и тогда по умолчанию он устанавливается как Variant. Правильно всегда объявлять тип переменной, например, пишите Byte, если Вы знаете, что возможные значения не выходят из этого диапазона. Контроль типов поможет избежать ошибок при выходе значения за возможные пределы. Особого внимания требует работа с массивами, - плата за неэффективное использование памяти здесь может быть чрезмерно высока.
Переменные типа Variant могут получать значения любого типа в зависимости от контекста. Кроме того, они могут принимать и некоторые специальные значения:
-
Empty - переменная не была инициализирована;
-
NULL - данные ошибочны;
-
ERROR - значение содержит код ошибки, который может быть использован для ее обработки в программе;
-
Nothing - переменная типа Object ни на что не ссылается: связь между ней и конкретным объектом прервана или не установлена.