К.: Издательская группа BHV, 2001. — 912 с., ил.
Рассматривается версия MS Office 2000.
Книга известных авторов с многолетним опытом программирования посвящена вопросам создания мощных коммерческих приложений на базе Microsoft Office и Visual Basic. Содержит богатый набор тщательно подобранных и протестированных методов и средств, пригодных для использования в реальных проектах. Основное внимание уделяется обработке данных различных типов, созданию и применению модулей класса, работе с файлами и внешними устройствами* возможностям включения в приложения средств мультимедиа и объектов ActiveX. Авторы не только предлагают большой объем кода, но и сопровождают его подробными комментариями, что позволит читателю без труда его модифицировать и
расширять, создавать аналогичные программы. Предназначена для разработчиков самого разного уровня — от новичков до профессионалов, которым нужна помощь в решении задач, связанных с программированием.
Введение
Работа со строкамиКак VBA хранит строки
Unicode против ANSI
Встроенные функции для работы со строками
Сравнение строк
Преобразование строк
Формирование строк: функции Space и String
Вычисление длины строки
Форматирование строк
Реверс строк
Выравнивание строк
Поиск строк
Работа с фрагментами строк
Замена фрагментов строк
Поиск и замена в строках
Работа с массивами строк
Коды ANSI
Работа с байтами
Комбинирование функций
Поиск и замена текста
Замена символа в списке другим символом
Удаление лишних пробелов
Удаление из строки конечных нуль-символов
Замена нумерованных меток в строке
Сбор информации о строках
Определение атрибутов символа
Подсчет числа вхождений подстроки в строку
Подсчет количества лексем в строке с разделителями
Подсчет количества слов в строке
Преобразование строк
Преобразование числа в строку с правильным порядковым суффиксом
Представление десятичных чисел римскими цифрами
Выполнение “интеллектуального” преобразования в имя собственное
Кодирование и декодирование текста при помощи XOR-кодировки
Дополнение строки слева или справа до заданной ширины
Сравнение строк при помощи алгоритма Саундекса
Работа с подстроками
Возвращение определенного слова строки по индексу
Выборка первого или последнего слова в строке
Преобразование строки с разделителями в семейство лексем
Резюме
Операции с числамиКак VBA хранит числовые значения
Целые числа
Числа с плавающей точкой и ошибки при их использовании
Масштабируемые целые
Тип данных Currency
“Скрытый” тип данных Decimal
Встроенные числовые функции
Математические и тригонометрические функции
Преобразование и округление чисел
Случайные числа
Финансовые функции
Преобразование основания системы счисления
Математические функции
Геометрические расчеты
Статистические функции
Резюме
Работа со значениями даты и времениЧто такое дата и как она хранится
Дополнительные преимущества
Задание значений даты
Встроенные функции VBA для работы с датами
Текущая дата и время
Если вам нужна только составляющая даты или времени
Выделение составляющих даты
Простые вычисления
Отображение величин в удобном для вас виде
Более сложные задачи
Определение конкретной даты
Определение начала или конца месяца
Определение начала или конца недели
Определение начала или конца года
Определение начала или конца квартала
Определение следующего или предыдущего дня недели
Определение следующей годовщины события
Содержание
Определение того, на какое число попадет пятая пятница месяца
Операции с рабочими днями
Операции со значениями даты и времени
Определение количества дней в указанном месяце
Сколько понедельников в июне
Определение того, является ли год високосным
Округление времени до ближайшего значения с указанной точностью
Преобразование строк или чисел в значения даты и времени
Работа с интервалами времени
Определение количества рабочих дней между двумя датами
Вычисление возраста
Форматирование значения промежутка времени
Форматирование суммарного времени
Различные часовые пояса
Использование класса SystemTimelnfo
Резюме
Использование VBA в качестве клиента автоматизацииОсновы технологии автоматизации
Т ерминология
Значение технологии автоматизации
Классы объектов
Библиотеки типов: ключ к классам
Просмотр объектов в Object Browser
Создание экземпляров классов
Раннее и позднее связывание
Простой пример раннего связывания
Когда создавать объекты
CreateObject и GetObject
Понятие о создании экземпляра класса
Управление другими приложениями
Изучение объектной модели приложений
Различия в поведении приложений
Память и ресурсы
Создание интегрированных решений на базе Microsoft Office
Объектные модели Microsoft Office
Пример: запись отчета в Word
Создание шаблона Word
Формирование заказа
Пример: заполнение таблицы Excel
Использование существующего файла
Наш сценарий
Создание объекта на основе существующего документа
Обновление электронных таблиц и диаграмм
Перехват событий с помощью переменных, объявленных
с ключевым словом WithEvents
Что значит WithEvents
Использование ключевого слова WithEvents
Резюме
Использование модулей класса в VBAДля чего нужны модули класса
Создание объектов
Абстракция сложных процессов
Упрощение разработки
Как работают модули класса
Модули класса — это шаблоны документов
Экземпляры класса подобны документам
Простой пример: класс TextFile
Создание класса объектов
Создание свойства
Создание метода
Использованйе класса объектов
Использование операторов с ключевым словом Property
Что такое операторы с ключевым словом Property и для чего они нужны
Получение значений с помощью оператора Property Get
Установка значений свойств при помощи процедуры Property Let
Свойства, предназначенные только для чтения и только для записи
Работа с объектными свойствами
Перечисляемые типы
Определение перечисляемого типа
Перечисляемые типы, методы и свойства
Модули класса Windows API
Работа с буфером обмена
Создание класса Clipboard
Проверка работы класса Clipboard
Резюме
Дополнительные сведения о работе с модулями классаПринципы построения объектных моделей
Определение требований к классам
Определение членов класса
Чем проще, тем лучше
Наименование объектов
Моделирование связей между классами
Содержание
Реализация иерархий объектов
Создание свойства Parent
Ссылки на объекты собственного типа
Семейства объектов
Применение семейств объектов
Свойства и методы семейств объектов
Операции с объектами в семействе
Создание семейств
Семейства и время жизни указателей
Создание класса семейства
Использование класса семейств
Недостатки собственных семейств объектов
Выбор уникальных ключей для объектов
Особенности реализации классов семейств
Создание и применение пользовательских событий
Определение пользовательских событий
Генерирование событий
Обработка событий
Использование ключевого слова WithEvents с формами
Недостатки пользовательских событий
Классы интерфейса и ключевое слово Implements
Наследование интерфейса
В каких случаях применяется наследование
Пример наследования интерфейса: обратные вызовы
Дополнительные аспекты работы пользовательских классов
Обработка ошибок в классах
Циклические ссылки
Совместно используемые классы
Резюме
Поиск и сортировка в VBAВремя — деньги
Знакомство с классом StopWatch
Применение класса StopWatch
Использование массивов
Что такое массив
Создание массива
Использование данных, в массиве
Определение размеров массива
Переменная типа Variant при работе с массивами
Сортировка массивов
Работа алгоритма Quicksort
Наблюдение за работой алгоритма Quicksort
Программирование на Visual Basic б и VBA
Использование алгоритма Quicksort
Проблемы быстродействия
Сортировка семейств
Сортировка данных других типов
Поиск
Почему применяется именно алгоритм Binary Search
Как работает алгоритм Binary Search
Использование алгоритма Binary Search
Резюме
Динамические структуры данныхСравнение динамических и статических
структур данных
Простые динамические структуры
Рекурсивные динамические структуры
Организация структур данных в VBA
Получение ссылки на новый элемент
Присвоение объектной переменной ссылки на существующий объект
Когда переменная не указывает ни на один из элементов
Эмуляция структур данных при помощи модулей класса
Создание класса заголовка
Создание стека
Зачем нужны стеки
Реализация стека
Создание очереди
Зачем нужны очереди
Реализация очереди
Создание упорядоченных связных списков
Класс Listltem
Класс List
Создание бинарных деревьев
Обход бинарного дерева
В каких случаях применяется структура
Реализация бинарного дерева
Резюме
Поиск и установка системной информацииVBA и системная информация
Функции API
Функция GetSystemMetrics
Функция SystemParametersInfo
Функции, требующие задания структур данных
Содержание
Информация о компьютере и операционной системе
Класс Systemlnfo
Информация о пути
Работа с Internet Explorer
Специальные возможности Windows
Класс Accessibility
Создание класса Accessibility
Информация о клавиатуре
Класс Keyboard
Создание класса Keyboard
Состояние памяти
Класс MemoryStatus
Создание класса MemoryStatus
Информация о мыши
Класс Mouse
Системная метрика
Класс NonClientMetrics
Создание класса NonClientMetrics
Состояние питания
Информация об экране и окнах
Класс Screenlnfo
Создание класса Screenlnfo
Системные цвета
Класс SystemColors
Создание класса SystemColors
Резюме
Операции с системным реестромСтруктура реестра Windows
Обозначение разделов и параметров реестра
Функции VBA для работы с реестром
Функции Windows API для работы с реестром
Открытие, закрытие и создание разделов
Операции с параметрами реестра
Составление списков разделов и параметров
Объектная модель реестра
Обзор
Реализация классов
Использование объектов реестра
Резюме
Windows Networking APIОсновные сетевые функции
Использование диалоговых окон работы с сетью
Управление сетевыми ресурсами
Получение информации о сетевых ресурсах
Дополнительные сетевые функции
Функция WNetGetUniversalName
Составление списков сетевых ресурсов
LAN Manager API
Возвращение имени главного контроллера домена
Получение времени дня с другого сервера
Резюме
Работа с дисками и файламиВстроенные функции VBA для работы с дисками и файлами
Функция DIR
Использование атрибутов файла
Операторы перемещения файлов на диске
Немного информации о файле: FileLen и FileDateTime
Работа с каталогами
Если нельзя обойтись без операций ввода-вывода
Получение дескриптора файла
Использование оператора Open
Операции с указателем текущей позиции файла
Операторы чтения и записи
Windows API: настоящая эффективность
Сравнение функций API с функциями VBA
Получение информации о диске
Операции с путями доступа
Эффективная замена функции Dir
Функции уведомления Windows
Поиск файлов
Определение имен временных файлов
Получение дескрипторов файлов (Windows)
Функции даты и времени Windows API
Операции со значениями времени
Использование диалоговых окон Windows
Использование класса CommonDlg
Использование стандартных диалоговых окон открытия
и сохранения файла
Резюме
Соцержание
Использование средств мультимедиа в пользовательскихприложениях
Средства мультимедиа для Windows
Возможности мультимедиа и MCI
Мультимедиа за один шаг
Подача звукового сигнала
MessageBeep: шаг вперед
Воспроизведение WAV-файлов с помощью функции PlaySound
Meaia Control Interface
Работа с устройствами MCI
Интерфейс командной строки MCI
Интерфейс управляющих сообщений MCI
Запись и воспроизведение звука и видео
Проигрывание аудиокомпакт-дисков
Запись и воспроизведение волнового аудио
Воспроизведение цифрового видео
Резюме
Использование объектов из библиотеки Scripting RuntimeВ чем особенность данной главы
Как пользоваться SCRRUN.DLL
Объект FileSystemObject
Тестирование простейших методов объекта FileSystemObject
Копирование и перемещение файлов и папок
Семейство Drives
Объект Drive
Объект Folder
Навигация по папкам
Семейство Files
Объект File
Методы объекта File
Получение объекта File для заданного файла
Модификация атрибутов
Объект TextStream
Открытие объекта TextStream
Свойства объекта TextStream
Использование объекта TextStream
Работа с объектом Dictionary
Познакомимся со словарем поближе
Простой пример
Почему словарь лучше семейства
Резюме
Разработка надстроек для IDE Visual BasicРабота с объектной моделью IDE
Иерархии классов
Работа с окнами
Работа с проектами VBA
Модификация компонентов проекта
Управление модулями кода
Подведем итог: Альтернативная объектная модель
Знакомство с нашей объектной моделью
Использование нашей объектной модели
СОМ-надстройки
Диалоговое окно Add-In Manager
Интерфейс IDTExtensibility
Разработка СОМ-надстройки для IDE VBA
Конструктор СОМ-надстроек
Определение способа загрузки надстройки
Добавление ссылки на библиотеку типов
Программирование надстроек
Использование объектной модели
Отладка, компиляция и распространение
Семейство Addins
Резюме
Приложение А. Соглашения о наименовании Реддика для VBA версии
Предметный указатель
Содержание