Главная » 2012»Октябрь»1 » Профессиональное программирование на VBA в Excel 2002
11:51
Профессиональное программирование на VBA в Excel 2002
По Excel есть немало серьезных книг, но эта все равно единственная, где разработка приложений рассматривается в широком плане. Дело в том, что VBA - всего лишь один из компонентов разработки приложений (правда, компонент этот достаточно большой). А такой программный продукт, как Excel, отличается крайней таинственностью. В нем множество интересных возможностей, притаившихся где-то в глубинах и неведомых простому пользователю. Кроме того, некоторые хорошо известные функции можно использовать по-разному. Миллионы людей по всему миру используют Excel. И только несколько процентов пользователей действительно понимают, на что способен этот продукт. В данной книге автор попытается ввести вас в эту элитную компанию. Вы готовы?
Название: Профессиональное программирование на VBA в Excel 2002 Автор: Джон Уокенбах Издательство: Вильямс Год: 2003 Страниц: 783 Формат: DJVU Размер: 14,9 МБ ISBN: 5-8459-0541-9 Качество: Хорошее
Содержание:
Об авторе Предисловие Почему я написал эту книгу Что надо знать Что надо иметь Соглашения, используемые в этой книге Соглашения, относящиеся к клавиатуре Соглашения, относящиеся к мыши Что означают пиктограммы Структура книги Часть I Часть II Часть III Часть IV Часть V Часть VI Часть VII Приложения Как пользоваться этой книгой Как меня найти Благодарности ЧАСТЬ I. ВВЕДЕНИЕ В EXCEL Глава 1. Excel 2002: ее происхождение Краткая история процессоров электронных таблиц Все начиналось с VisiCalc Lotus 1-2-3 Quattro Pro Microsoft Excel Электронные таблицы сегодня Почему Excel прекрасно подходит для разработчиков Роль Excel в стратегии Microsoft Резюме Глава 2. Вкратце об Excel С точки зрения объекта… Рабочие книги Рабочие листы Листы диаграмм Листы макросов XLM Диалоговые листы Excel 5/95 Пользовательский интерфейс Excel Меню Диалоговые окна Панели инструментов Перетаскивание Комбинации клавиш Настройка вида Ввод данных Выделение объектов Форматирование Числовое форматирование Стилистическое форматирование Формулы Имена Функции Фигуры Диаграммы Макросы Доступ к базам данных Базы данных рабочих листов Внешние базы данных Функции использования Internet Инструменты анализа Структуры Автоматические промежуточные итоги Управление сценариями Analysis ToolPack Сводные таблицы Аудит Поиск решения Надстройки Совместимость Резюме Глава 3. Особенности использования формул О формулах Вычисление значений формул Ссылки на ячейки и диапазоны С какой целью используются неотносительные ссылки О ссылках R1C1 Ссылки на другие листы или рабочие книги Использование имен Присвоение имен ячейкам и диапазонам Использование имен существующих ссылок Пересечение имен Присвоение имен столбцам и строкам Задание области действия Присвоение имен константам Присвоение имен формулам Присвоение имен объектам Ошибки использования формул Формулы массивов Пример формулы массива Календарь в виде формулы массива Достоинства и недостатки формул массивов Подсчет и суммирование Использование функций СЧЕТЕСЛИ и СУММЕСЛИ Подсчет и суммирование с помощью формул массивов Другие инструменты подсчета Работа со значениями даты и времени Ввод значений даты и времени Использование дат до 1900 года Создание мегаформул Резюме Глава 4. Файлы Excel Запуск Excel Расширения файлов Excel Поддерживаемые форматы файлов электронных таблиц Файлы электронных таблиц Lotus 1-2-3 Файлы электронных таблиц Quattro Pro Ферматы файлов баз данных Форматы текстовых файлов Другие форматы файлов Файлы, сохраняемые в Excel Файл XLS Файл рабочего пространства Файлы шаблонов Файлы панелей инструментов Файлы надстроек Excel и HTML Так как же это работает? Усложнение HTML-документа А как насчет интерактивности? Параметры Excel в системном реестре О системном реестре Параметры Excel Резюме ЧАСТЬ II. РАЗРАБОТКА ПРИЛОЖЕНИЙ EXCEL Глава 5. Приложения электронных таблиц Приложения электронных таблиц Разработчик и конечный пользователь Кто такие разработчики? Классификация пользователей электронных таблиц Аудитория приложений электронных таблиц Причины использования электронных таблиц Решение проблем с помощью процессора электронных таблиц Основные типы электронных таблиц Электронные таблицы "на скорую руку" Электронные таблицы "не для посторонних глаз" Однопользовательские приложения Приложения-"спагетти" Приложения-утилиты Надстройки с функциями рабочих страниц Одноблоковы бюджеты Модели "что-если" Электронные таблицы для хранения данных и доступа к ним Клиентские программы баз данных Приложения "под ключ" Резюме Глава 6. Принципы разработки приложений электронных таблиц Определение потребностей пользователя Проектирование приложения, соответствующего потребностям пользователей Определение удобного пользовательского интерфейса Создание пользовательских диалоговых окон Использование элементов управления ActiveX а рабочем листе Настройка меню Настройка панелей инструментов Создание комбинаций клавиш Усилия по разработке приложения Работа с конечным пользователем Тестирование приложения Как сделать приложение отказоустойчивым Привлекательное и наглядное приложение Документирование усилий, потраченных на разработку Распространение приложения среди пользователей Обновление приложения Другие вопросы разработки приложений Версия Excel установленная у пользователя Трудности, касающиеся поддержки языка Производительность системы Видеорежимы Структура папок Резюме ЧАСТЬ III. VISUAL BASIC FOR APPLICATIONS Глава 7. Введение в Visual Basic for Applications История языка BASIC Обзор VBA Объектные модели Сравнение VBA и XLM Сравнение макросов VBA и Lotus Сравнение VBA и LotusScript Основы VBA Знакомство с редактором Visual Basic Запуск VBE Окна VBE Работа с Project Explorer Добавление нового модуля VBA Удаление модуля VBA Экспорт и импорт объектов Работа с окнами кода Сворачивание и восстановление окон Сохранение программы VBA Введение кода VBA Специальные настройки VBE Использование вкладки Editor Использование вкладки Editor Format Использование вкладки General Использование вкладки Docking Функция записи макросов Что записывается Относительный или абсолютный? Параметры записи Улучшение записанных макросов Об объектах и коллекциях Иерархия объектов О коллекциях Ссылки на объекты Свойства и методы Свойства объектов Методы объектов Объект Comment: пример использования Справочные сведения по объекту Comment Свойства объекта Comment Методы объекта Comment Коллекция Comments О свойстве Comment Объекты, вложенные в Comment Содержит ли ячейка примечание Добавление нового объекта Comment Полезные свойства объекта Application Работа с объектами Range Свойство Range Свойство Cells Свойство Offset Что следует знать об объектах Более сложные, но важные концепции Выучите побольше об объектах и свойствах Резюме Глава 8. Основы программирования на VBA Элементы языка VBA. Обзор Комментарии Переменные, типы данных и константы Определение типов данных Объявление переменных Область действия переменных Работа с константами Управление строками Работа с датами Операторы присвоения Массивы Объявление массивов Объявление многомерных массивов Переменные объектов Пользовательские типы данных Встроенные функции Управление объектами и коллекциями Конструкция With-End With Конструкция For Each-Next Контроль за выполнением кода Операторы СоТо Конструкция If-Then Конструкции Select Case Циклическая обработка инструкций Резюме Глава 9. Работа с процедурами VBA О процедурах Объявление процедуры Область действия процедуры Выполнение процедуры Выполнение процедуры с помощью команды Run->Run Sub/UserForm Выполнение процедуры в диалоговом окне Макрос Выполнение процедуры с помощью комбинации клавиш Выполнение процедуры из пользовательского меню Выполнение процедуры из другой процедуры Выполнение процедуры с помощью кнопки на панели инструментов Выполнение процедуры по щелчку на объекте Выполнение процедуры по событию Выполнение процедуры в окне Immediate Передача аргументов в процедуры Обработка ошибок Перехват ошибок Примеры обработки ошибок Реальный пример Цель Требования к проекту Исходи данные Подход Что необходимо знать Предварительные результаты записи макросов Начальная подготовка Создание программы Создание процедуры сортировки Дополнительное тестирование Решение проблем Доступность утилиты Оценка проекта Резюме Глава 10. Создание функций Процедуры и функции: сравнение Назначение пользовательских функций Простой пример функции Пользовательская функция Использование функции на рабочем листе Использование функции в процедуре VBA Анализ пользовательской функции Процедура функции Объявление функции Область действия функции Выполнение функций Аргументы функций Примеры функций Функция без аргументов Еще одна функция без аргументов Функция с одним аргументом Функция с двумя аргументами Функция с аргументом массивом Функция с необязательными аргументами Функция VBA возвращающая массив Функция, возвращающая значение ошибки Функция с неопределенным количеством аргументов Создание аналога функции Excel СУММ Отладка функций Работа с диалоговым окном Мастер функции Определение категории функции Добавление описания функции Использование надстроек для хранения пользовательских функций Использование Windows API Примеры использования Windows API Определение папки Windows Определение состояния клавиши Дополнительная информация о функциях API Резюме Глава 11. Примеры и методы программирование на VBA Работа с диапазонами Копирование диапазона Перемещение диапазона Копирование диапазона переменного размера Выделение или определение типов диапазонов Запрос значения ячейки Ввод значения в следующую пустую ячейку Приостановка макроса для получения диапазона, выделенного пользователем Определение количества выделенных ячеек Определение типа выделенного диапазона Эффективный цикл просмотра выделенного диапазона Удаление всех пустых строк Определение диапазона, находящегося в другом диапазоне Определение типа данных ячейки Чтение и запись диапазонов Более эффективный способ записи в диапазон Перенос одномерных массивов Перенос диапазона в массив Variant Выделение максимального значения в диапазоне Выделение всех ячеек с определенным форматированием Управление рабочими книгами н листами Сохранение всех рабочих книг Сохранение и закрытие всех рабочих книг Доступ к свойствам рабочей книги Синхронизация рабочих листов Методы программирования на VBA Переключение значения свойства Boolean Определение количества страниц для печати Отображение даты и времени Получение списка шрифтов Сортировка массива Обработка последовательности файлов Функции, полезные для использования в программах VBA Функция FileExists Функция FileNameOnly Функция PathExisis Функция RangeNameExisis Функция SheetExists Функция WorkbookIsOpen Получение значения из закрытой рабочей книги Полезные функции в формулах Excel Получение информации о форматировании ячейки Отображение даты сохранения файла или вывода файла на печать Основы иерархии объектов Подсчет количества ячеек между двумя значениями Подсчет количества видимых ячеек в диапазоне Определение последней непустой ячейки в столбце или строке Соответствует ли строка шаблону? Извлечение из строки n-го элемента Множественная функция Функция SHEETOFFSET версия 1 Функция SHEETOFFSET: версия 2 Возвращение максимального значения всех рабочих листов Возвращение массива случайных целых чисел без повторов Расположение значений диапазона в произвольном порядке Вызов функций Windows API Определение связей с файлами Определение параметров принтера по умолчанию Определение текущего видеорежима Добавление звука в приложение Чтение и запись параметров системного реестра Резюме ЧАСТЬ IV. РАБОТА С ПОЛЬЗОВАТЕЛЬСКИМИ ФОРМАМИ Глава 12. Создание собственных диалоговых окон Перед созданием диалоговых окон Использование окна ввода данных Функция InputBox в VBA Метод InputBox в Excel Функция VBA MsgBox Метод Excel GetOpenFilename Метод Excel GetSaveAsFilename Получение имени папки Использование функций Windows API для получения имени папки Применение объекта FileDialog для выбора папки Отображение встроенных диалоговых окон Excel Использование коллекции Dialogs Получение дополнительной информации о встроенных диалоговых окнах Использование аргументов во встроенных диалоговых окнах Непосредственный выбор команды меню Резюме Глава 13. Использование пользовательских форм Как Excel обрабатывает пользовательские диалоговые окна Вставка новой формы UserForm Отображение пользовательского диалогового окна Добавление элементов управления в пользовательское диалоговое окно Доступные элементы управления CheckBox ComboBox CommandButton Frame Image Label ListBox MuliiPage OptionButton RefEdit ScrollBar SpinButton TabStrip TextBox ToggleButton Настройка элементов управления пользовательского диалогового окна Изменение свойств элементов управления Использование окна Properties Общие свойства Получение дополнительной информации о свойствах Советы по использованию клавиатуры Отображение и закрытие пользовательского диалогового окна Отображение пользовательского диалогового окна Закрытие пользовательского диалогового окна О процедурах обработки событии Пример создания пользовательского диалогового окна Создание пользовательского диалогового окна Создание кода для отображения диалогового окна Проверка Добавление процедур обработки событий Проверка правильности введенных данных Заработало! События объекта UserForm Получение дополнительной информации о событиях События объекта UserForm Пример: события элемента управления SpinButton Совместное использование элементов управления SpinButton и TexiBox Ссылка на элементы управления пользовательского диалогового окна Настройка панели инструментов Toolbox Изменение значков или текста подсказок Добавление новых страниц Настройка или комбинирование элементов управления Добавление элементов управления ActiveX Создание “шаблонов” диалоговых окон Список инструкций по созданию диалогового окна Резюме Глава 14. Примеры пользовательских форм Создание меню с помощью объекта UserForm Использование элементов управления CommandButton Использование элемента управления ListBox Выбор диапазона Создание заставки Отключение кнопки закрытия пользовательского диалогового окна Изменение размера диалогового окна Масштабирование и прокрутка листа в пользовательском диалоговом окне Использование элемента управления ListBox Об элементе управления LisiBox Добавление опции в элемент управления LisiBox Определение выделенной опции Определение нескольких выделенных опций Несколько списков в одном элементе управления ListBox Передача опций элемента управления ListBox Перемещение опции в списке элемента управления ListBox Работа с элементами управления LisiBox, содержащими несколько столбцов Использование элемента управления ListBox для выделения строк на листе Использование элемента управления ListBox для активизации листа Применение элемента управления MultiPage Резюме Глава 15. Использование диалоговых окон UserForm Отображение индикатора текущего состояния Создание отдельного индикатора текущего состояния Вывод информации о текущем состоянии с помощью элемента управления MultiPage Отображение индикатора текущего состояния без использования элемента управления MultiPage Создание мастеров Настройка элемента управления MultiPage Добавление кнопок Программирование кнопок Программирование зависимостей Выполнение задачи Последние шаги Эмуляция функции MsgBox Код функции MyMsgBox Как это работает Использование функции MyMsgBox Немодальное диалоговое окно Несколько кнопок с одной процедур и обработки событий Процедура Адаптация кода Диалоговое окно выбора цвета Отображение диаграммы в пользовательском диалоговом окне Метод 1: сохранение диаграммы в виде файла Метод 2: использование элемента управления OWC ChanSpace Отображение листа в пользовательском аналоговом окне Расширенное налоговое окно формы данных Описание Установка надстройки Использование расширенного диалогового окна формы данных Резюме ЧАСТЬ V. СОВЕРШЕННЫЕ МЕТОДЫ ПРОГРАММИРОВАНИЯ Глава 16. Разработка утилит Excel с помощью VBA Об утилитах Excel Использование VBA для разработки утилит Из чего состоит хорошая утилита Текстовые инструменты: анатомия утилит Обоснование Цели проекта утилиты Text Tools Как работает утилита Рабочая книга утилиты Text Tools Диалоговое окно FormMain Модуль modMain Процедура ApplyButton_Click Процедуры выполнения задач Методика отмены выполненных действий Процедура ShowStats Техника предоставления пользователю справки Процедуры создания и удаления команд меню Оценка проекта Принципы работы утилиты Texl Tools Резюме Глава 17. Работа со сводными таблицами Вступительный пример Создание сводной таблицы Просмотр созданного кода Очистка записанного кода Создание сложной сводной таблицы Данные Сводная таблица Код создания сводной таблицы Как это работает Создание сводной таблицы на основе внешней базы данных Создание нескольких сводных таблиц Модификация сводных таблиц Резюме Глава 18. Управление диаграммами О диаграммах Расположение диаграмм Объектная модель диаграммы Запись макроса Результат записи макроса Подкорректированный код Распространенные методы управления диаграммами в VBA Активизация диаграммы Деактивизация диаграммы Определение активности диаграммы Удаление объектов ChartObject или диаграмм Форматирование диаграмм Циклический просмотр диаграмм Изменение размера и взаимного расположения объектов ChartObject Дополнительные методы управления диаграммами Использование имен в формуле РЯД Определение данных, которые используются диаграммой Изменение диаграммы с помощью элемента управления ComboBox Определение источника данных для диаграммы: первый метод Второй метод определения источника данных для диаграммы Отображение подписей для данных на диаграмме Отображение диаграммы в пользовательском диалоговом окне События диаграмм Пример использования событий объекта Chart Поддержка событий для встроенных диаграмм Пример использования событий объекта Chart во встроенной диаграмме Хитрости создания диаграмм Печать встроенных диаграмм на всю страницу Создание "мертвой" диаграммы Управление последовательностями методом скрытия данных Хранение нескольких диаграмм на одном листе диаграммы Использование в диаграмме связанных изображений Анимированные диаграммы Создание диаграммы с графиком гипоциклоиды Создание диаграммы "часов" Рисование с помощью графика Резюме Глава 19. Концепция событий Excel Типы событий Excel Что необходимо знать о событиях Понимание последовательностей событий Размещение процедур обработки событий Отключение событий Ввод кода процедуры обработки события Процедуры обработки событий, которые используют аргументы События объекта Workbook Событие Open Событие Activate Событие SheetActivate Событие NewSheet Событие BeforeSave Событие Deactivate Событие BeforePrint Событие BeforeClose События объекта Worksheel Событие Change Отслеживание изменений в определенном диапазоне Событие SelectionChange Событие BeforeRightClick События объекта Chart События объекта Application Включение событии уровня объекта Application Определение факта открытия рабочей книги Отслеживание событий уровня объекта Application События объекта UserForm События, не связанные с конкретными объектами Событие OnTime Событие OnKey Резюме Глава 20. Взаимодействие с другими приложениями Запуск другого приложения Активизация другого приложения Запуск аплетов папки Панель управления и мастеров Автоматизация Работа с внешними объектами Ранняя и поздняя привязка Простой пример Управление приложением Word из Excel Управление Excel из другого приложения Работа с ADO Использование метода SendKeys Резюме Глава 21. Создание и использование надстроек Что такое надстройка Сравнение надстройки со стандартной рабочей книгой Основные причины создания надстройки Использование менеджера надстроек Excel Создание надстройки Пример надстройки Настройка рабочей книги Тестирование рабочей книги Добавление описательной информации Создание надстройки Установка надстройки Распространение надстройки Изменение надстройки Сравнение файлов XLA и XLS Структура и размер файлов Членство в коллекциях Окна Листы Получение доступа к процедурам VBA надстройки Управление надстройками с помощью кода VBA Коллекция AddIn Свойства объекта AddIn События объекта AddIn Оптимизация производительности надстроек Скорость выполнения кода Размер файлов Особые проблемы, связанные с использованием надстроек Правильная установка Ссылки на другие файлы Указание правильной версии Excel Резюме ЧАСТЬ VI. РАЗРАБОТКА ПРИЛОЖЕНИЙ Глава 22. Создание собственных панелей инструментов О командных панелях Управление панелями инструментов Как Excel обрабатывает панели инструментов Хранение панелей инструментов Когда панели инструментов работают некорректно Ручное управление панелями инструментов и кнопками О режиме модификации командных панелей Распространение панелей инструментов Управление коллекцией CommandBars Типы командных панелей Просмотр списка объектов CommandBar Создание командной панели Ссылки на командные панели Удаление командных панелей Свойства командных панелей Ссылка на элементы управления командной панели Перечисление элементов управления на командной панели Перечисление элементов управления на всех панелях инструментов Добавление элементов управления на командную панель Удаление элемента управления из командной панели Свойства элементов управления командных панелей Резюме Глава 23. Создание пользовательских меню Несколько слов о строке меню Excel Операции с меню Excel Терминология Удаление элементов меню Добавление элементов меню Изменение опций меню Примеры кода VBA Вывод информации о меню Добавление нового меню в строку меню Удаление меню со строки меню Добавление опций в меню Отображение комбинации клавиш вместе с: опцией меню Исправление восстановленного меню Работа с событиями Автоматическое добавление и удаление меню Отключение или скрытие меню Работа с установленными опциями меню Простой способ создания пользовательских меню Замена строки меню листа Работа с контекстными меню Добавление опций в контекстное меню Удаление опций из контекстного меню Отключение опций контекстного меню Отключение контекстных меню Сброс контекстных меню Создание нового контекстного меню Резюме Глава 24. Предоставление справки в приложениях Справка в приложениях Excel Справочная система, построенная с помощью компонентов Excel Использование комментариев к ячейкам для предоставления справки Применение текстового поля для предоставления справки Использование рабочего листа для сохранения текста справочного руководства Отображение справочной информации в пользовательском диалоговом окне Использование помощника по Office для отображения справочного руководства Использование средств WinHelp System и HTML Help System WinHelp HTML Help Связывание файлов справочного руководства с приложением Другие способы отображения справочного руководства в формате WinHelp или HTML Help Использование метода Help Отображение справочной информации в окне сообщения Отображение справочной информации в окне ввода данных Резюме Глава 25. Разработка приложений для пользователей Определение приложения, ориентированного на пользователя Мастер расчета займа Использование приложения Структура рабочей книги Как это работает Потенциальные улучшения Концепции разработки приложений Заключение Резюме ЧАСТЬ VII. ДРУГИЕ ТЕМЫ Глава 26. Вопросы совместимости Что такое совместимость Проблемы совместимости Поддерживаемые форматы файлов Excel ¦ Избегайте использования новых возможностей Приложения, которые используют функции Windows API Поддержка платформы Mac Создание интернациональных приложений Многоязыковые приложения Язык в VBA Использование "локальных" свойста Идентификация настроек системы Параметры настройки даты и времени Резюме Глава 27. Управление файлами с помощью VBA Часто выполняемые операции Команды VBA по управлению файлами Использование объекта FileSearch Поиск файлов, которые содержат определенный текст Использование объекта FileSystemObject Работа с текстовыми файлами Открытие текстового файла Чтение текстового файла Запись в текстовый файл Получение номера файла Определение или установка позиции в файле Операторы чтения и записи Примеры управления текстовыми файлами Импортирование данных из текстового файла Экспортирование диапазона в текстовый файл Импортирование текстового файла в диапазон Протоколирование операций в Excel Фильтрация текстового файла Импортирование более 256 столбцов данных Экспорт диапазона в формат HTML Резюме Глава 28. Управление компонентами Visual Basic Введение в IDE Объектная модель IDE Коллекция VBProjects Первый пример Замещение модуля обновленной версией Использование VBA для создания кода VBA Добавление элементов управления в диалоговое окно UserForm на этапе разработки Управление диалоговыми окнами UserForm на этапе разработки b на этапе выполнения Добавление 100 элементов управления ComrmndBuiton на этапе разработки Программное создание диалоговых окон UserForm Простой пример Сложный пример Резюме Глава 29. Принципы управления модулями классов Что такое модуль класса Пример: создание класса NumLock Вставка модуля класса Добавление кода VBA Использование класса NumLock Еще о модулях классов Именование класса объектов Программирование свойств Методы программирования События модуля класса Пример: класс CSVFile Переменные уровня модуля класса Процедуры свойств Процедуры методов Использование объекта CSVFileClass Резюме Глава 30. Часто задаваемые вопросы о программировании в Excel Общие вопросы об Excel Редактор Visual Basic Процедуры Функции Объекты, свойства, методы и события Пользовательские диалоговые окна Надстройки Объекты CommandBar Приложение А. Информационные ресурсы, посвященные Excel Техническая поддержка со стороны фирмы Microsoft Варианты поддержки Microsoft Knowledge Base Начальная страница Microsoft Excel Обновления Microsoft Office Группы новостей Группы новостей, посвященные электронным таблицам Конференции Microsoft Поиск в группах новостей Web-узлы Spreadsheet Page Web-узел Чипа Пирсона (Chip Pearson), посвященный Excel Web узел Стивена Булина (Stephen Bullen) посвященный Excel Список часто задаваемых вопросов, касающихся электронных таблиц Приложение Б. Справочник по функциям и операторам VBA Приложение В. Коды ошибок VBA Приложение Г. Справочник по кодам ANSI Приложение Д. Материалы на Web-узле Обзор Примеры из глав Power Utility Pak Удаление Power Utility Рак Sound-Proof 2000 Удаление Sound-Proof 2000 Предметный указатель