Основы офисного программирования и язык VBA

         

Основы офисного программирования и язык VBA


Подвижный VBA'стик в кислотной ActiveX-среде
Use Case с точки зрения программиста
Use Case с точки зрения пользователя и заказчика
Постановка задачи
Дополнительные условия
Вопросы для системного администратора
Об Office 2000
Офисное программирование
Состав Office 2000
Инсталляция Office 2000

Содержимое диска "Resource Kit"
Документ Issues
Документ ORK9
Папка Tools
Содержимое диска "Language Pack"
Microsoft Office 2000 Developer

Основы офисного программирования и язык VBA

VBA и объекты. Обзор
Библиотека объектов Office 2000 - каркас приложений
Встраивание вместо наследования

Macrorecorder
Построение каркаса документа
Библиотека объектов 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
Пример 1.1
Проектирование документов
Документ и его программный проект

Модули - обработчики событий
Стандартные модули
Модули классов
Модуль макросов
Структура модуля. Окно проекта и Окно кода
Окно проекта
Свойства проекта
Имя проекта

Защита проекта
Окно кода
Еще раз о "переиспользовании" модулей
Проект и область видимости
Система документов и ее проект
Организация системы документов
Как организуются ссылки между проектами

Обмен информацией между документами
Система документов One - Two - Three
DocFour
Мои любимые поэты XIX века
Пример 2.1

Основы офисного программирования и язык VBA

Типы данных
Простые типы данных.

Объявление переменных и констант простых типов
Синтаксис объявления простых переменных
Объявления по умолчанию
Константы
Массивы
Динамические массивы

Записи и тип, определенный программистом
Что можно делать с записями?
Раздел объявлений
Раздел опций
Разделы констант, типов и переменных
Раздел Declare
Правила именования
Пример 1. Объявление переменных. Вызов процедуры Start модуля Father:

Пример 2. Правильное объявление массива. Работа с ним:
Пример 3. Работа с динамическим массивом:
Пример 4. Определение и работа с записями:
Пример 3.1

Основы офисного программирования и язык VBA

Еще раз о понятии "класс"
Что нового в классах "Office 2000"
Создание класса "Личность"
Объекты и переменные

Объекты, класс которых определен пользователем.
Объекты "родного" приложения
ActiveX-объекты
Свойства
Сокрытие свойств
Конструкторы и деструкторы. Стандартные события
Стандартные события Initialize и Terminate
Два конструктора класса Rational
Процедуры - свойства

Как создаются процедуры- свойства
Синтаксис Let, Get и Set
Классы, как упаковка
Семейство классов и процедуры - свойства
Методы
Friend методы
События

Классы, объекты With Events и обработчики событий
Модуль класса с объектом WithEvents
Объект WithEvents
События собственных классов
Как создать класс с событиями
Как зажигаются события
Где и как следует создавать обработчики событий для экземпляров класса
Связывание объектов

Реальные объекты и инициирование событий
Итоги
Пример 6: работа с классом Группа. Создание группы.
Пример 7: работа с классом Rational. Вычисления над рациональными числами.
Пример 8: работа по созданию объекта Excel Application With Events
Это документ под названием DocTwo
Пример 4.1

Основы офисного программирования и язык VBA

Семейство классов и реализация интерфейсов
Наследование
Виртуальные методы и полиморфизм
Абстрактные классы
Наследование и полиморфизм в Office 2000

Наследование интерфейсов
Полиморфизм семейства классов
Проект "Люди и Машины"
Создание динамических структур данных

Встроенный динамический класс Collection
Создание собственных динамических классов
Обертывание коллекции VBA
Пример 5.1

Основы офисного программирования и язык VBA

Несколько слов об API, Win32, DLL
.VBA и Win32 API
Вызов функций и оператор Declare

Две кодировки ANSI и Unicode
API Viewer
Два языка: C и VB. Различия при вызове функций
Соответствие между простыми типами данных
Структуры языка C и тип, определенный пользователем, в языке VBA
Об описателях языка C и объектах Windows
Void функции языка C

Вызов аргументов по ссылке ByRef и по значению ByVal
Строковые аргументы при вызове функций Win32 API
Тип Any
Примеры работы с Win32 API функциями
Работа с окнами
Характеристики окружения
Вызов функций Win32 API, работающих в Unicode кодировке

Обработка ошибок, возникающих при вызове функций Win32 API
Функции API и вызов Callback функций
Функции высших порядков и конструкция AddressOf
Функции перечисления Win32 API
Функция EnumWindows

Еще один пример работы с функцией EnumWindows
Функции Win32 API для работы с таймером
Функция SetTimer
Функция обратного вызова TimerProc
Функция KillTimer
Пример создания, работы и удаления таймера
Классы как обертка вызовов функций Win32 API
Построение класса "ВашТаймер"

Использование класса ВашТаймер
DocOne6
Пример 1. Работа с окнами
Пример 3 Работа с функциями в Unicode кодировке
Пример 5 Работа с функцией Api, вызывающей CallBack функцию
Пример 6.1

Основы офисного программирования и язык VBA

Операторы
Операторы и строки
Оператор комментария
Присваивание
Оператор Let
Оператор LSet
Оператор RSet
Оператор Set

Управляющие операторы
Оператор выбора Select Case
Цикл Do...Loop
Цикл While...Wend
Цикл For Each...Next
Работа с каталогами, папками и файлами
Изменение текущего диска: оператор ChDrive
Изменение текущего каталога (папки): оператор ChDir
Создание каталога (папки): оператор MkDir
Переименование каталогов (папок) и файлов: оператор Name

Удаление каталога (папки): оператор RmDir
Установка атрибутов файла: оператор SetAttr
Копирование файлов: оператор FileCopy
Удаление файлов: оператор Kill
Прочие операторы
Операции с одним объектом. Оператор With
Звуковой сигнал: оператор Beep
Установка системной даты: оператор Date
Установка системного времени: оператор Time
Моделирование ввода с клавиатуры: оператор SendKeys

Пример 7.1

Основы офисного программирования и язык VBA

Операции
Работа с числовыми данными

Математические функции
Работа со строками
Сравнение строк
Сравнение с образцом
Основные операции над строками
Новые функции для работы со строками
Функция InStrRev - поиск последнего вхождения подстроки
Функция Replace - замена всех вхождений подстроки

Удаление подстроки
Разбор строки. Функции Split, Join и Filter
Преобразование строки в массив. Функция Split
Сборка элементов массива в строку. Функция Join
Фильтрация элементов массива. Функция Filter
Несколько модификаций встроенных функций
Замена, основанная на шаблоне. Функция WildReplace
Замена разных символов строки. Функция CharSetReplace
Фильтрация, основанная на шаблоне. Функция WildFilter
Разбор строки, допускающей разные разделители ее элементов. Функция WildSplit

Работа с датами и временем
Присваивание значений
Встроенные функции для работы с датами
Определение текущей даты или времени.
Вычисления над датами
Функция Timer и хронометраж вычислений
Некоторые встроенные функции
Функции проверки типов данных

Преобразование типов данных
Форматирование данных. Функции группы Format
Функция Format.
Другие функции форматирования
Пример 8.1

Основы офисного программирования и язык VBA

Описание и создание процедур
Классификация процедур
Синтаксис процедур и функций

Функции с побочным эффектом
Создание процедуры
Создание процедур обработки событий
Вызовы процедур Sub
Вызовы функций

Использование именованных аргументов
Аргументы, являющиеся массивами
Конструкция ParamArray
Задача о медиане
Пользовательские функции, принимающие сложный объект Range
Рекурсивные процедуры

Деревья поиска
Класс TreeNode
Класс BinTree
Работа со словарем
Пример 9.1

Основы офисного программирования и язык VBA

Отладка
Написание надежных программ

Оптимизация программ
Приемы оптимизации кода
Объявление переменных
Математические операции
Строковые операции
Циклы
Искусство отладки
Средства отладки

Панель отладки и команды меню
Окна наблюдения
Окно локальных переменных - Locals
Окно проверки - Immediate
Окно контрольных выражений - Watch

Объект Debug и его методы
Метод Print
Метод Assert
Доказательство правильности программ
Условная компиляция и отладка
Директива #const
#If … Then … #Else директива
Ошибки периода выполнения и их обработка
Модель управления ошибками в языке VBA.

Оператор On Error
Оператор Resume
Объект Err
Метод Clear
Метод Raise
Класс и обработка ошибок
Обработчики ошибок и вложенные вызовы процедур

Структура обработчика ошибок
Функция CvErr
Пример 10.1

Основы офисного программирования и язык VBA

Проектирование интерфейса. Меню
Общие объекты Office 2000
Коллекция CommandBars
Свойства и методы коллекции CommandBars
Свойства и методы объекта CommandBar
Коллекция CommandBarControls и ее элементы
О роли интерфейса
Создание собственных и модификация встроенных меню
Немного терминологии

Возможности настройки и изменения системы меню
Создание собственного головного меню
Использование диалогового окна Настройка
Создание меню с помощью VBA
Добавление выпадающих меню
Как добавить встроенное меню
Добавление выпадающего меню с помощью VBA
Добавление подменю
Вставка и группировка команд

Добавление встроенной команды с помощью окна Настройка
Добавление собственной команды с помощью окна Настройка
Добавление команд с помощью VBA
Пример построения документа с собственным меню
Группировка команд меню
Удаление команд меню
Удаление команды с помощью окна Настройка
Удаление команды с помощью VBA
Как восстановить удаленные встроенные компоненты меню
Изменение меню во время работы программы

Вывод собственной панели меню
Динамическое изменение видимости команд меню
Управление доступом к командам меню
Переименование команды меню
Пример 11.1

Основы офисного программирования и язык VBA

Диалоговые окна и элементы управления
Общие сведения и применение
Коллекция Dialogs и объект Dialog
Вывод сообщений. Функция MsgBox

Окно ввода данных. Функция InputBox
Создание пользовательских диалоговых окон
Создание страниц и вкладок в диалоговых окнах
Добавление дополнительных элементов управления
Пример создания диалогового окна
Разработка процедур, обрабатывающих события диалогового окна и его устройств
Вызов собственного диалогового окна

Установка начальных значений свойств элементов управления
Использование Me в качестве имени текущего диалогового окна
Модификация управляющих элементов во время работы
Управление доступом к элементу
Перемещение фокуса на элемент управления
Изменение размеров диалогового окна
Проверка корректности данных
Обмен данными с диалоговым окном

Закрытие диалогового окна
Пример 12.1

Основы офисного программирования и язык VBA

Объект UserForm (диалоговое окно), коллекция UserForms (диалоговые окна)

Коллекция Controls
Перечень основных элементов управления
Объект-родитель
Имя объекта
Значение объекта
Метод Move (Сдвинуть)
Метод Paste (Вставить)
Реализация операций Cut, Copy, Paste в диалоговых окнах
Метод RedoAction (Повторить действие)

Метод Remove (Удалить)
Метод RemoveItem (Удалить элемент)
Метод Repaint (Перерисовать)
Метод Scroll (Прокрутить)
Метод SetDefaultTabOrder (Установить стандартный порядок обхода)
Метод SetFocus (Установить фокус)
Метод UndoAction (Отменить действие)
Реализация операций Undo и Redo в диалоговых окнах
Метод ZOrder (Z-упорядочить)
Расположение объекта

Параметры внешнего вида объекта
Шрифт
Свойства поведения объекта
Другие свойства
CheckBox - флажок (кнопка выбора)
ComboBox - комбинированный список
CommandButton - командная кнопка
Frame - рамка (группы)

Image - изображение
Label - метка (надпись, статический текст)
ListBox - список
MultiPage - набор страниц
OptionButton - кнопка-переключатель
ScrollBar - полоса прокрутки
SpinButton - счетчик
TabStrip - полоса вкладок

TextBox - поле ввода (окно редактирования)
ToggleButton - выключатель
Объект DataObject
Перемещение объектов. Как реализовать технику DragAndDrop

Событие AddControl (добавился элемент)
Событие AfterUpdate (После модификации)
Событие BeforeDragOver (Перед завершением перетаскивания)
Событие BeforeDropOrPaste (Перед опусканием или вставкой)
Событие BeforeUpdate (Перед модификацией)
Событие Change (Изменение)
Событие Click (Щелчок)
Событие DblClick (Двойной щелчок)

Событие DropButtonClick (Щелчок кнопки списка)
События Enter, Exit (Вход, Выход)
Событие Error (Ошибка)
События KeyDown, KeyUp (Клавиша нажата, Клавиша отпущена)
Событие KeyPress (Клавиша нажата)
Событие Layout (Расположение)
События MouseDown, MouseUp (Мышь нажата, Мышь отпущена)
Событие MouseMove (Мышь движется)
Событие RemoveControl (Удаление элемента)
Событие Scroll (Прокрутка)

События SpinDown (Уменьшить счетчик), SpinUp (Увеличить счетчик)
Событие Zoom (Расширение)
Метод Add (Добавить)
Метод AddItem (Добавить элемент)
Метод Clear (Очистить)
Метод Copy (Копировать)
Метод Cut (Вырезать)
Метод DropDown (Вывести список)
Пример 13.1
Temp

Основы офисного программирования и язык VBA

Основные виды файлов в Office 2000
Открытие и создание файлов
Закрытие файлов

Запись в файлы последовательного доступа
Чтение файлов последовательного доступа
Ввод-вывод для файлов произвольного доступа и бинарных файлов

Работа с данными переменной длины
Один пример работы с Binary файлом
Пример 14.1
Вместо заключения
Вопрос первый: "Как сохранить
Вопрос второй: "Как импортировать

Содержание раздела