VBA. Наиболее полное руководство - Рассмотрены многочисленные средства и возможности языка VBA для повышения гибкости и расширения функциональности офисных приложений Excel, Word, Access, PowerPoint и Outlook. Описан синтаксис языка и даны практические рекомендации по объектно-ориентированному программированию. Показано, как автоматизировать анализ и обработку данных, решать оптимизационные задачи и строить стандартные и нестандартные диаграммы в Excel; как работать со стилями, шаблонами и формами в Word; как создавать интерактивные средства по работе с базами данных в Access. Большое внимание уделено конструированию пользовательского интерфейса как на этапе дизайна, так и во время выполнения приложения. Рассмотрены вопросы взаимодействия офисных приложений между собой, а также их интеграция в .NET-проекты. Показано, как подсоединить к приложениям Web-ресурсы с помощью Web-служб и Web-запросов. Книга содержит около 500 тщательно разработанных примеров, которые могут быть использованы для создания собственных приложений. Для пользователей и программистов.
Название: VBA. Наиболее полное руководство Автор: Андрей Гарнаев Издательство: БХВ-Петербург Год: 2005 Страниц: 825 Формат: PDF Размер: 18,1 МБ ISBN: 5-94157-633-1 Качество: Отличное Серия или Выпуск: В подлиннике Язык: Русский
Содержание:
Предисловие О чем эта книга? Для чего написана эта книга? Структура книги Для кого предназначена эта книга? Об авторе Глава 1. Введение в VBA Макросы Запись макроса Выполнение макроса Редактирование макроса Назначение макроса объекту Распространение макросов Защита от макросов Элемент управления Кнопка и создание процедуры обработки события при которой выполняется макрос Назначение макроса кнопке пользовательского меню Управление диаграммой Создание скриптов для Windows Создание скриптов для Web на стороне клиента Создание скриптов для Web на стороне сервера Передача данных клиенту из базы данных на сервере Добавление анимационных эффектов в форму Access Глава 2. Интегрированная среда разработки Где набирается код VBA? Структура редактора VBA Окно Project - VBA Project Копирование модулей и форм из одного проекта в другой Окно редактирования кода Допустимый объем модуля Интеллектуальные возможности редактора кода Окно UserForm (Редактирование форм) Окно Properties (Свойства) Окно Object Browser (Просмотр объектов) Программирование среды разработки Экспортирование модуля Удаление модуля Программа, которая выполняется только один раз Импорт данных в модуль из текстового файла Очистка содержания модуля Проверка существования модуля или процедуры Программное создание кода Удаление кода процедуры из модуля Список всех процедур модуля Создание пользовательской формы Построение формы с элементом управления реагирующим на события Глава 3. Элементы ООП в VBA Классы и экземпляры Объявление класса Создание экземпляра класса Инициализация значений полей Методы и свойства События Интерфейсы Объект Collection Построение стека Глава 4. Работа со строками, временем и датами Функции обработки строк Нахождение ASCII-кода по литералу и литерала по ASCII-коду Преобразование строки к нижнему или верхнему регистру Преобразование первых букв слов в прописные Возвращение подстроки по указанному местоположению Как узнать, содержит ли строка число? Определение длины строки Копия строки без начальных и конечных пробелов Строка, состоящая из указанного числа пробелов Строка, состоящая из указанного числа повторяющихся символов Преобразование строки в массив Преобразование массива в строку Сравнение строк Создание зеркальной строки по отношению к данной Нахождение вхождения в строку подстроки Замена в строке подстроки Проверка, является ли строка электронным адресом Функции даты и времени Определение текущей системной даты Определение текущего системного времени Определение текущей даты и системного времени Извлечение из времени часового, минутного и секундного компонентов Извлечение из даты годового, месячного и дневного компонентов Определение дня недели Определение числа секунд, прошедших с полуночи Определение количества лет, кварталов, месяцев, недель и дней прошедших между двумя датами Определение компонента даты Добавление к дате указанного временного интервала Преобразование часов, минут и секунд в формат времени Преобразование года, месяца и дня в формат даты Преобразование строки в формат времени Проверка, является ли год високосным Определение локальных установок Глава 5. VBA и MS Excel Объектная модель Полная и неявная ссылка на объект Объект Application Свойства объекта Application Ссылка на активную рабочую книгу, лист, ячейку, диаграмму и принтер Загрузка инсталлированной надстройки Управление уровнем безопасности Рабочая книга, в которой выполняется данный макрос Установка заголовка окна MS Excel Работа со строкой состояния Отключение генерации событий Установка типа курсора Семейство встроенных диалоговых окон Объект File Dialog Отображение встроенных предупреждений о работе программы Поиск файлов Печать активного листа Предварительный просмотр книги Доступ из кода к функциям рабочего листа Номер версии MS Excel Определение локальной версии MS Excel и установок Windows Методы объекта Application Установка выполнения специфицированной процедуры при нажатии заданной комбинации клавиш Переопределение горячих клавиш приложения Проверка правописания отдельного слова Преобразование имени MS Excel в объект или значение Симулирование вычисления арифметических выражений Назначение выполнения процедуры на определенное время Закрытие приложения Сохранение изменений во всех рабочих книгах Приостановка работы приложения до указанного времени Получение данных из закрытой рабочей книги События объекта Application Семейство Workbooks Создание новой рабочей книги Открытие рабочей книги Объект Workbook Свойства объекта Workbook Закрытие книги без сохранения изменений Определение объекта Workbook по имени рабочей книги Как узнать, открыта ли специфицированная рабочая книга Объект Name и простой способ удаления из рабочей книги ненужных имен Определение, была ли сохранена открытая рабочая книга Методы объекта Workbook Установка и снятие защиты книги Сохранение рабочей книги с именем, соответствующим текущей дате События объекта Workbook Запрет закрытия рабочей книги Автоматическое изменение размеров столбцов при проведении вычислений Как отследить за тем, кто открывал рабочую книгу? Семейство Worksheets Вставка нового листа с именем, отличным от существующих Объект Worksheet Свойства объекта Worksheet Проверка установки защиты на содержание рабочего листа Проверка существования рабочего листа Методы объекта Worksheet Удаление рабочего листа без предупреждения пользователя Установка и снятие защиты с рабочего листа Объект Protection Объект PageSetup и как вывести в колонтитул имя книги рабочего листа и текущую дату События объекта Worksheet Блокировка действий, связанных с событием по умолчанию Добавление к графическому объекту обработчика события Click Автоматическое переоформление таблицы при изменении в ней значений Условное форматирование без применения кода Отображение результата, только при условии ввода всех данных Проверка вводимых значений Автоматический ввод данных в верхнем регистре данного диапазона Вывод суммы значений из выделенного диапазона в строку состояния Объекты Range и Selection Адресация ячеек Задание групп строк и столбцов Связь объекта Range и свойства Cells объекта Worksheet Свойства объекта Range Ввод или считывание значения из диапазона Поиск по шаблону подобных значений в диапазоне Ввод или считывание формулы в ячейку в формате А1 Ввод или считывание формулы в ячейку в формате R1C1 Ввод или считывание формулы локальной версии в ячейку в формате А1 Ввод или считывание формулы локальной версии в ячейку в формате R1C1 Ввод формулы массива в диапазон Ввод формулы массива локальной версии в диапазон Ввод формулы массива в диапазон с относительными ссылками на ячейки Определение адреса ячейки Управление стилем границы диапазона и объекта Border Функции RGB и QBColor Доступ к отдельным ячейкам диапазона Выбор элементов на рабочем листе или в книге Как проверить, является ли диапазон выбранным объектом? Определение типа данных, хранимых в ячейке Объект Characters Объект Comment Определение текущего диапазона Нахождение крайней ячейки диапазона в указанном направлении Нахождение строки и столбца, содержащих данную ячейку Объект Hyperlink Объект Font Объект Interior Разрешение редактирования содержимого ячеек на защищенном рабочем листе Установка числового формата Нахождение диапазона, сдвинутого относительно данного на указанное число строк и столбцов Задание угла, под которым выводится текст в диапазоне Переопределение размеров диапазона Методы объекта Range Активизация и выбор диапазона Вставка и удаление комментариев в диапазон Заполнение диапазона прогрессией Автозаполнение ячеек диапазона элементами последовательности Табуляция функции Заполнение диапазона по одному значению Очистка ячейки Копирование, вырезание и удаление данных из диапазона Специальная вставка Вставка диапазона с транспонированием Копирование диапазона в буфер обмена как растровое изображение Бегущая картинка Поиск значения в диапазоне Повторный поиск и поиск всех значений Поиск по формату Замена значений Подбор параметра и решение уравененя с одной неизвестной Ввод в диапазон неповторяющихся значений Озвучивание текста Построение графа Пользовательские функции Математические функции Надстройки Где хранятся макросы? Глава 6. Формы и элементы управления Первая форма Форма как объект Отображение формы при выборе ячейки рабочего листа Запуск проекта на исполнение Ключевое слово Me Создание копии формы Закрытие сразу всех форм Предотвращение закрытия окна с помощью кнопки Close Вывод формы без отображения приложения Надпись Добавление на форму гиперссылки Всплывающая форма Кнопка Кнопка с горячей клавишей Настройка панели инструментов Toolbox Массивы элементов управления Поле Интерфейс быстрого ввода Автоматический перевод вводимых числовых данных в денежный формат Как полю получить фокус и в нем выделить весь текст или его часть? Многострочное поле Поле ввода пароля Всплывающая подсказка Привязка контекстного меню к элементу управления Список Выбор нескольких элементов из списка Динамический вывод данных в список по критерию Передача значения форме Поле со списком Очистка в одном цикле всех полей и полей со списками Привязка поля со списком к данным из рабочего листа Рисунок Вставка в рисунок изображения выделенного диапазона Загрузка в список имен всех рисунков указанного каталога Флажок Использование списка вместо группы флажков Рамка Переключатель Запуск и остановка часов при помощи переключателя Выключатель Полоса прокрутки Счетчик Обеспечение функционирования кнопки только в случае заполненных полей Создание элементов управления в коде Добавление массива кнопок в коде Добавление элементов управления на рабочий лист в коде Добавление элементов управления из панели инструментов Формы Добавление кнопки в документ Объект DataObject Применение стандартных форм при просмотре данных введенных на рабочем листе Дополнительные элементы управления Пример дополнительного элемента управления - Календарь Назначение одного обработчика событий нескольким элементам управления Глава 7. Создание меню, контекстного меню и панели инструментов Создание строки меню Типичные ошибки, возникающие при создании пользовательских панелей инструментов Отображение имен всех меню Пункты меню со встроенными функциями и картинками Отображение всех встроенных значков в меню Меню с флажками Добавление нового элемента в существующее меню Создание панели инструментов Расположение нескольких панелей инструментов в один ряд Добавление раскрывающегося списка в панель инструментов Поле ввода в меню Добавление шпиона в контекстное меню Конструирование контекстного меню Связывание меню с элементом управления, расположенным на форме Глава 8. Диаграммы Построение диаграммы Получение ссылки на активную диаграмму Изменение типа рядов данных Построение внедренной диаграммы Установка размеров и местоположения внедренной диаграммы Удаление диаграммы Добавление на диаграмму графических элементов Сохранение диаграммы как графического файла Задание цветов серий Печать и предварительный просмотр печати диаграммы Построение диаграммы на основе данных из нескольких листов Защита диаграммы Изменение диапазона, на основе которого конструируется диаграмма Еще раз об изменяемом диапазоне Диаграмма в полярных координатах Добавление рисунка Расположение нескольких диаграмм на одном листе График выполнения работ Диаграмма Гранта Диаграммы линейного и нелинейного тренда Диаграмма сравнения Построение графика без табулирования График, зависящий от параметра События и диаграммы Привязка событий к вложенным в рабочий лист диаграммам Изменение типа диаграммы при помощи контекстного меню Отображение диаграммы в форме Глава 9. Помощник MS Office Объект Assistant Информирование об изменениях в приложении с помощью помощника Объект Balloon Помощник с надписями Помощник с флажками Немодальное окно помощника Microsoft Agent Агент, читающий текст из поля Контекстное меню Синхронизация действий и речи Мультиагентные приложения Глава 10. Работа с файлами Объект FileSystemObject Создание объекта FileSystemObject с явной ссылкой на Microsoft Scripting Runtime Создание объекта FileSystemObject с неявной ссылкой на Microsoft Scripting Runtime Проверка существования диска Получение информации о диске Проверка существования каталога или файла Создание и удаление каталога Получение информации о каталоге Копирование и перемещение файла Удаление файла Информация о файле Список всех файлов данного каталога Открытие файла и создание TextStream-oGbeKra Метод OpenAs Text St ream Метод CreateTextFile Mетод Open Text St ream Запись, присоединение и считывание данных из файла Функции по работе с файлами Просмотр файлов в каталоге Поиск файла и объект FileSearch Определение существования рабочей книги Глава 11. Обработка ошибок и отладка программ Разработка процедур, предотвращающих появление ошибок Контроль вводимых значений с помощью обработки события KeyPress Перехват и обработка ошибок Оператор On Error Процедура обработки ошибки Оператор Resume Объект Err Создание пользовальских ошибок для тонкой настройки обработчика ошибок Отображение ошибок при работе с пользовательскими функциями Отладка программ Ошибки компиляции Ошибки выполнения Логические ошибки Инструкция Option Explicit Пошаговое выполнение программ Точка прерывания Вывод значений свойств и переменных Окно Watches Окно Locals Окно Immediate Программный способ вывода значений в окно Immediate Глава 12. VBA и Win32 API Первый пример Отправка электронной почты и загрузка Web-страницы Определение и изменение разрешения экрана Открытие окна Проводника Анимация Очистка корзины Определение пуст ли буфер обмена Отображение окна свойств специфицированного файла Загрузка Web-страницы Действия с окном Форма произвольной конфигурации Форма без заголовка Печать формы Замена обоев Глава 13. Обработка данных Консолидация данных Консолидация при помощи трехмерных формул на рабочем листе Консолидация при помощи трехмерных формул в коде Консолидация данных по положению и категориям Методы и свойства, используемые при программировании консолидирующей таблицы Пример приложения, консолидирующего данные Сортировка данных Сортировка по выделенному полю Сортировка выделенной области Сортировка по двум или трем столбцам Сортировка по списку или по дням недели Сортировка с учетом регистра Восстановление первоначального порядка вывода данных Сортировка на защищенном листе Метод Sort Пример приложения, сортирующего данные Фильтрация Использование автофильтра Процесс автофильтрации Метод Auto Filter Отображение и удаление кнопок со стрелками автофильтра Отображение всех отфильтрованных данных Как узнать, что на листе имеются кнопки со стрелками автофильтра? Как узнать, что на листе имеются отфильтрованные данные? Объекты Auto Filter и Filter и семейство Filters Доступ к раскрывающимся спискам автофильтра на защищенном листе Пример приложения, фильтрующего данные Промежуточные итоги Создание промежуточных итогов Метод Subtotal Удаление промежуточных итогов Структура и объект Outline Отображение указанного числа уровней структуры Удаление структуры Отображение значков структуры Автоматическое создание структуры Пример приложения, подводящего промежуточные итоги и управляющего структурой Сценарии Объект Scenario Пример приложения по работе со сценариями Сценарии без объекта Scenario Сводная таблица Подведение итогов по клиентам Обновление данных Подведение итогов по клиентам и странам Сортировка данных в сводной таблице Отображение заданного числа лучших или худших результатов Группировка данных по дням, месяцам, кварталам и годам Удаление группировки Удаление сводной таблицы Отображение детальных данных, содержащихся в ячейке сводной таблицы Объекты, связанные со сводной таблицей Метод PivotTable Wizard Объект PivotTable Объект PivotCache Объект PivotField Пример приложения, помогающего построить и обновлять сводную таблицу Списки Поиск решения Решение транспортной задачи при помощи средства Поиск решения Функции, программирующие поиск решения Приложение «Транспортная задача» Глава 14. VBA и MS Word Создание стилей Программное задание стиля Создание шаблонов Создание документа по шаблону Присоединение шаблона к существующему документу Вставка комментариев Вставка специального символа Использование закладок для заполнения письма Использование форм Создание WordArt-объекта на основе выделенного текста Добавление кнопки в новый документ Удаление повторяющегося текста Преобразование форматов дат Замена цифр комментариями Отображение стандартных окон при выполнении замен текста Преобразование гиперссылок Отображение статистики в заголовке приложения Ввод данных в таблицу Создание таблицы из структурированного текста Ускорение обработки текстовых данных Импорт данных из базы данных Хранение в документе скрытой информации Глава 15. VBA и Automation Средство Automation Программные идентификаторы приложений - серверов Automation Функции доступа к объектам Automation Позднее и ранее связывание MS Word Открытие Word-документа Создание Word-документа Создание Word-отчета на основе данных, хранимых на рабочем листе Копирование диапазона данных из рабочего листа в Word-документ MS Excel Создание презентации на основе данных, хранимых на рабочем листе MS Excel MS PowerPoint Копирование диапазона данных из рабочего листа в таблицу PowerPoint Копирование выбранной диаграммы в текущий слайд активной PowerPoint-презентации MS Outlook Получение списка всех контактов в Outlook Копирование всех выделенных сообщений из Outlook в Word-документ Глава 16. ActiveX Data Objects Создание ссылки на библиотеку ADO Объект Connection и установка подключения к базе данных Установка DSN Проверка установления соединения Открытие защищенной базы данных Объект Recordset и его создание Пример использования объекта Recordset для просмотра базы данных Работа с курсорами Создание объекта Recordset методом Execute Методы, свойства и события объекта Recordset Как проверить, не пуст ли объект Recordsefi Последовательный просмотр записей базы данных Доступ к данным, расположенным на рабочих листах закрытой книги Объект Field Создание браузера базы данных Редактирование, создание, обновление и удаление записей Создание закладок Поиск записи методом Find Использование объекта Command Транзакция Глава 17. VBA и MS Access Макросы в Access Применение объекта DoCmd Выполнение команды встроенного меню и блокировка отображения предупреждений Блокировка пользовательского доступа к объектам Access при закрытии формы Объектная модель MS Access Открытие и закрытие MS Access из других приложений Ваша первая форма в MS Access Создание всплывающей формы Анимация с помощью Microsoft Animation Control Выбор проигрываемого анимационного файла Открытие одной формы из другой Присоединение меню к форме Создание формы без меню и панели инструментов Обращение к объекту по имени Создание запроса Вызов запроса из формы Источники данных Извлечение данных из списка в несвязанный элемент управления Программная навигация по записям Назначение одного обработчика событий группе элементов управления Определение активного объекта Объект CurrentData Объект Current Project Кнопка с двумя рисунками в зависимости от ее состояния Список таблиц и полей Создание расширяющегося диалогового окна Создание копии формы Использование ADO в Access Экспорт данных в форму MS Word Глава 18. VBA и Web Отправка сообщений по электронной почте Задание параметров Web-страницы Предварительный просмотр документа как Web-страницы Сохранение документа как Web-страницы Объект PublishObject Гиперссылки Отправка сообщения с помощью гиперссылки Открытие всех гиперссылок, отмеченных флажками Открытие документа Объект Internet Explorer Поиск всех гиперссылок Web-страницы с помощью объекта Internet Explorer Создание объекта InternetExplorer функцией CreateObject Определение загрузки Web-страницы Получение точного времени из сети Получение доступа к тегу документа Чтение содержимого буфера обмена Определение разрешения экрана Объект HTMLDocument Элемент управления WebBrowser Печать содержимого Web-страницы Отображение анимированных GIF-файлов Просмотр презентации на форме Вставка рисунка в рабочий лист из Web Загрузка файла из сети Создание Web-запроса Получение данных из Интернета Получение данных из Интернета по запросу из указанной таблицы Web-службы Создание Web-службы с помощью Visual Studio. NET Применение Web-службы в MS Office Опубликование данных в Интернете из Access с помощью страниц доступа к данным Создание страницы доступа, содержащей все поля и записи таблицы Мастер станиц Глава 19. VBA и Windows-сценарии Первый Windows-сценарий Передача значений сценарию через параметры файла Вызов сценария из офисного приложения Доступ к файловой системе Доступ к специальным папкам Замена указанных префиксов имен файлов данного каталога Завершение работы с Windows Создание документа Word и его печать Доступ к открытому активному Word-документу Как определить, запущено ли приложение? Считывание значения из ячейки рабочей книги Перевод HTML-документа в RTF-формат Использование MS Excel в сценариях Доступ к программам и передача в них данных с клавиатуры Запуск Internet Explorer из скрипта Ввод и вывод данных в консольное окно Запуск DOS-команды Временные диалоговые окна Создание ярлыка Запуск MS Agent из скрипта Использование классов в сценариях Глава 20. Microsoft Visual Studio Tools для MS Office Ваш первый проект в Microsoft Visual Studio Tools Перехват событий рабочего листа Загрузка данных из базы данных на рабочий лист MS Excel Создание меню Заполнение таблицы в Word Microsoft Visual Studio Tools и Web-службы Глава 21. VBA и XML Синтаксис XML-документа Синтаксис XSD-документа Открытие XML-документа в Excel без использования схемы Открытие XML-документа в Excel с использованием схемы Импорт XML-карты в коде Создание связанных с картой столбцов и импорт в них данных Отслеживание и сохранение в формате XML ежедневных изменений в документе XSL Библиотека MSXML Перебор узлов Атрибуты Создание узла Глава 22. VBA и .NET Создание DLL-файлов в .NET без использования шаблона Создание DLL-файлов в .NET с использованием шаблона Встроенные процедуры Нахождение значений арифметических выражений Проверка орфографии Создание отчета в MS Word Построение графика Глава 23. Смарт-теги Создание смарт-тега на основе XML-файла Применение регулярных выражений Создание смарт-тега на основе DLL в VB 6 Пример создания смарт-тега на основе DLL Приложения Приложение 1. Основы программирования на VBA Типы данных Переменные Время жизни и область видимости переменных Определение переменных с помощью директивы Option Explicit Ключевое слово Null Комментарии Перенос строки кода Строки Даты Массивы Динамические массивы Определение границ индексов массива Константы Перечисляемый тип Тип данных, определенный пользователем Математические операции Операции отношения Логические операции Директива Option Compare Математические функции Генерация последовательности случайных чисел Число π Функции проверки типов Преобразование строки в число Преобразование числа в строку Другие функции преобразования типов Форматирование числа функцией Format Пользовательские форматы Форматирование чисел функцией FormatNumber Форматирование процентов функцией FormatPercent Задание денежного формата функцией FormatCurrency Форматирование даты и времени функцией FormatDateTime Встроенные диалоговые окна Окно ввода Проверка вводимых данных Окно сообщения Определение нажатой кнопки в окне сообщений Оператор присваивания Присваивание переменной ссылки на объект Оператор With Операторы управления Оператор условного перехода Отказ от использования оператора условного перехода Оператор выбора Оператор For Next Оператор For Each Оператор While Оператор Do Оператор безусловного перехода GoTo Процедура Передача параметров по ссылке и значению Рекурсивные процедуры Фракталы Меры предосторожности при использовании рекурсии Приложение 2. VBA и игры Игра «Ход конем» Игра «Крестики-нолики» Предметный указатель