Самоучитель VBA - В книге изложены базовые сведения о VBA, работе с макросами, технологии ООП, конструировании пользовательского интерфейса и форм, работе с файлами, создании Web-служб и защите приложений. Приведены практические приемы автоматизации работы в офисных приложениях Excel, Word, Access и PowerPoint, обмена XML-документами между приложениями, а также управления работой разных приложений из одного файла, написанного на VBA. Показаны возможности интегрирования офисных приложений в .NET-приложения с использованием Microsoft Visual Studio Tools для Microsoft Office System. Рассмотрены вопросы создания скриптов для Windows, использования компонентов СОМ и Win32 API, программирования среды разработки кода и др. Книга насыщена большим числом примеров (около 350). Во втором, существенно переработанном и дополненном издании, отражены изменения последних лет в области разработки офисных приложений. Для программистов.
Название: Самоучитель VBA Автор: Андрей Гарнаев Издательство: БХВ-Петербург Год: 2004 Страниц: 560 Формат: PDF Размер: 8,95 МБ ISBN: 978-5-94157-410-0 Качество: Отличное Серия или Выпуск: Самоучитель Язык: Русский
Содержание:
Предисловие О чем данная книга Для кого предназначена эта книга Об авторе Глава 1. Введение Что такое VBA Макросы Запись макроса Выполнение макроса Редактирование макроса Назначение макроса объекту Как записывать относительную ссылку на ячейки Где хранятся макросы Защита от макросов Элемент управления Кнопка и создание процедуры обработки события при которой выполняется макрос Глава 2. Основы программирования на VBA Типы данных Переменные Определение времени жизни и области видимости переменных Установка необходимости определения переменных с помощью директивы Option Explicit Ключевое слово Null Комментарии Перенос строки кода Строки Даты Массивы Динамические массивы Определение границ индексов массива Константы Перечисляемый тип Тип данных, определенный пользователем Математические операции Операции отношения Логические операции Директива Option Compare Математические функции Создание последовательности случайных чисел Как найти значение числа π Функции проверки типов Преобразование строки в число Преобразование числа в строку Другие функции преобразования типов Форматирование числа функцией Format Пользовательские форматы Форматирование чисел функцией FormatNumber Форматирование процентов функцией FormatPercent Задание денежного формата функцией FormatCurrency Форматирование даты и времени функцией FormatDateTime Встроенные диалоговые окна Окно ввода Проверка вводимых данных Ввод ссылки на диапазон Окно сообщения Определение нажатой кнопки в окне сообщений Оператор присваивания Присваивание переменной ссылки на объект Оператор With Операторы управления Оператор условного перехода Избегайте оператор условного перехода, если это возможно Оператор выбора Оператор For Next Оператор For Each Оператор While Оператор Do Оператор безусловного перехода GoTo Процедура Передача параметров по ссылке и значению Рекурсивные процедуры Глава 3. Интегрированная среда разработки Где набирается код VBA Структура редактора VBA Окно Project - VBAProject Копирование модулей и форм из одного проекта в другой Окно редактирования кода Интеллектуальные возможности редактора кода Окно UserForm (Редактирование форм) Окно Properties (Свойства) Окно Object Browser (Просмотр объектов) Программирование среды разработки Экспортирование модуля Удаление модуля Программа, которая выполняется только один раз Импорт данных в модуль из текстового файла Очистка содержания модуля Как проверить, существует ли модуль либо процедура Автоматическое создание кода в модуле Удаление кода процедуры из модуля Список всех процедур модуля Создание пользовательской формы Построение формы с элементом управления реагирующим на события Глава 4. Элементы ООП в VBA Классы и их экземпляры Объявление класса Создание экземпляра класса Инициализация значений полей Методы и свойства События Таймер, как пример класса, генерирующего события Объект Collection Глава 5. Работа со строками, временем и датами Функции обработки строк Нахождение ASCII-кода по литералу и литерала по ASCII-коду Преобразование строки к нижнему или верхнему регистру Как сделать так, чтобы каждое слово в предложении начиналось с заглавной буквы Возвращение подстроки по указанному местоположению Определение длины строки Копия строки без начальных и конечных пробелов Строка, состоящая из указанного числа пробелов Строка, состоящая из указанного числа повторяющихся символов Преобразование строки в массив Преобразование массива в строку Сравнение строк Создание зеркальной строки по отношению к данной Нахождение вхождения в строку подстроки Замена в строке подстроки Замена всех специфицированных подстрок в рабочем листе Функции времени и даты Определение текущей системной даты Определение текущего системного времени Определение текущей даты и системного времени Извлечение из времени часового, минутного и секундного компонентов Извлечение из даты годового, месячного и дневного компонентов Определение дня недели Определение числа секунд, прошедших с полуночи Определение количества лет, кварталов, месяцев недель и дней, прошедших между двумя датами Определение компонента даты Добавление к дате указанного временного интервала Преобразование часов, минут и секунд в формат времени Преобразование года, месяца и дня в формат даты Преобразование строки в формат времени Проверка, является ли год високосным Глава 6. Пользовательские функции Где пишется код функции пользователя? Ваша первая функция пользователя Математические функции Как найти значение числа π? Определение числового формата ячейки Расчет комиссионных Функция, имеющая несколько параметров Функция, проверяющая вхождение данной строки в другую по образцу Функция, возвращающая Web-адрес из ячейки с гиперссылкой Расчет сложных комиссионных Функция, параметрами которой является диапазон Подсчет числа ячеек со значениями из указанного диапазона Функция с необязательными параметрами Использование неопределенного числа параметров Использование массива в качестве параметра функции Функция, возвращающая массив значений Функция, вид которой зависит от параметра Расчет следующего понедельника Определение возраста человека Надстройки Глава 7. VBA и Excel Объектная модель Полная и неявная ссылка на объект Объект Application Свойства объекта Application Ссылка на активную рабочую книгу, лист ячейку, диаграмму и принтер Загрузка инсталлированной надстройки Управление уровнем безопасности Рабочая книга, в которой выполняется данный макрос Установка заголовка окна MS Excel Работа со строкой состояния Установка выполнения специфицированной процедуры при нажатии заданной комбинации клавиш Как переопределить горячие клавиши приложения Установка курсора Семейство встроенных диалоговых окон Объект FileDialog Отображение встроенных предупреждений о работе программы Поиск файлов Печать активного листа Предварительный просмотр книги Доступ из кода к функциям рабочего листа Номер версии MS Excel Определение локальной версии Excel и установок Windows Методы объекта Application Проверка правописания отдельного слова Преобразование имени MS Excel в объект или значение Симулирование вычисления арифметических выражений Простейший функциональный калькулятор Симулирование ячеек рабочего листа Применение квадратных скобок при симулировании операций на рабочем листе Назначение выполнения процедуры на определенное время Электронные часы в ячейке рабочего листа Электронный будильник Отмена задания у часов Закрытие приложения Сохранение изменений во всех рабочих книгах Приостановка работы приложения до указанного времени События объекта Application Отключение генерации событий Семейство Workbooks Создание новой рабочей книги Открытие рабочей книги Объект Workbook Свойства объекта Workbook Закрытие книги без сохранения изменений Определение объекта Workbook по имени рабочей книги Объект Name и простой способ удаления из рабочей книги ненужных имен Методы объекта Workbook Установка и снятие защиты книги Как сохранить рабочую книгу чтобы ее именем была текущая дата Как определить, была ли сохранена открытая рабочая книга События объекта Workbook Запрет закрытия рабочей книги Семейство Worksheets Вставка нового листа с именем, отличным от существующих Объект Worksheet Свойства объекта Worksheet Проверка, установлена ли защита на содержании рабочего листа А как проверить, существует ли лист Методы объекта Worksheet Удаление рабочего листа без предупреждения пользователя Установка и снятие защиты с рабочего листа Объект Protection (как определить, какая защита установлена на рабочем листе) Объект PageSetup, и как вывести в колонтитул имя книги и рабочего листа и текущую дату События объекта Worksheet Блокировка действий, связанных с событием по умолчанию Автоматическое переоформление таблицы при изменении в ней значений Автоматический ввод данных в верхнем регистре данного диапазона Вывод суммы значений из выделенного диапазона в строку состояния Объекты Range и Selection Адресация ячеек Задание групп строк и столбцов Связь объекта Range и свойства Cells объекта Worкsheet Свойства объекта Range Ввод или считывание значения из диапазона Поиск по шаблону подобных значений в диапазоне Ввод или считывание формулы в ячейку в формате A1 Ввод или считывание формулы в ячейку в формате R1C1 Ввод или считывание формулы локальной версии в ячейку в формате A1 Ввод или считывание формулы локальной версии в ячейку в формате R1C1 Ввод формулы массива в диапазон Ввод формулы массива локальной версии в диапазон Ввод формулы массива в диапазон с относительными ссылками на ячейки Определение адреса ячейки Управление стилем границы диапазона и объектами Border Функции RGB и QBСolor Доступ к отдельным ячейкам диапазона Выбор элементов на рабочем листе или в книге Как проверить, является ли выбранный объект диапазоном Объект Characters (как форматировать часть содержимого ячейки) Объект Comment (создание комментариев к диапазону) Определение текущего диапазона Нахождение крайней ячейки диапазона в указанном направлении Нахождение строки и столбца, содержащих данную ячейку Объект Hyperlink (задание гиперссылки) Объект Font (задание шрифта) Объект Interior (заливка диапазона) Разрешение редактирования содержимого ячеек на защищенном рабочем листе Установка числового формата Нахождение диапазона, сдвинутого относительно данного на указанное число строк и столбцов Задание угла, под которым выводится текст в диапазоне Переопределение размеров диапазона Методы объекта Range Активизация и выбор диапазона Вставка и удаление комментариев в диапазон Заполнение диапазона прогрессией Автозаполнение ячеек диапазона элементами последовательности Табуляция функции Заполнение диапазона по одному значению Очистка ячейки Копирование, вырезание и удаление данных из диапазона Специальная вставка Вставка диапазона с транспонированием Копирование диапазона в буфер обмена как растровое изображение Бегущая картинка Поиск значения в диапазоне Повторный поиск и поиск всех значений Замена значений Подбор параметра и решение уравнения с одной неизвестной Ввод в диапазон неповторяющихся значений Отсылка электронной почты Озвучивание текста Условное форматирование Отображение результата только при условии ввода всех данных Проверка вводимых значений Глава 8. Формы и элементы управления Первая форма Форма как объект Отображение формы при выборе ячейки рабочего листа Как запустить проект на исполнение Ключевое слово Me Создание формы в коде Предотвращение закрытия окна с помощью кнопки Close Надпись Всплывающая форма Кнопка Событие Click Поле Список Выбор нескольких элементов из списка Заполнение списка названиями месяцев Поле со списком Рисунок Вставка в рисунок изображения выделенного диапазона Флажок Использование списка вместо группы флажков Изменение цвета выделенного диапазона Рамка Переключатель Запуск и остановка часов при помощи переключателя Выключатель Полоса прокрутки Счетчик Как можно перебирать элементы управления Обеспечение функционирования кнопки только в случае заполненных полей Обмен сообщениями между формами Объект DataObject Глава 9. Создание меню, контекстного меню и панели инструментов Создание строки меню Типичные ошибки, возникающие при создании пользовательских панелей инструментов Пункты меню со встроенными функциями и картинками Добавление нового элемента в существующее меню Создание панели инструментов Расположение нескольких панелей инструментов в один ряд Добавление раскрывающегося списка в панель инструментов Конструирование контекстного меню Глава 10. Диаграммы Построение диаграммы Как получить ссылку на активную диаграмму Как методом ChartWizard изменить параметры диаграммы Изменение типа диаграммы с помощью метода ChartWizard Построение внедренной диаграммы Установка размеров и местоположения внедренной диаграммы Построение диаграммы на основе массива данных Удаление диаграммы Сохранение диаграммы в виде графического файла Задание цветов серий Рисунок вместо заливки серий Установка градиентной заливки серий Изменение параметров диаграммы Печать и предварительный просмотр печати диаграммы Построение диаграммы на основе данных из нескольких листов Защита диаграммы Изменение диапазона, на основе которого конструируется диаграмма Анимация диаграммы События и диаграммы Привязка событий к вложенным в рабочий лист диаграммам Изменение типа диаграммы при помощи контекстного меню Глава 11. Помощник MS Office Объект Assistant Объект Balloon Помощник с надписями Помощник с флажками Немодальное окно помощника Добавление значка в надписи и флажки помощника Глава 12. Работа с файлами Объект FileSystemObject Создание объекта FileSystemObject с явной ссылкой на Microsoft Scripting Runtime Создание объекта FileSystemObject с неявной ссылкой на Microsoft Scripting Runtime Как проверить, существует ли диск Получение информации о диске Как проверить, существует ли каталог или файл Создание и удаление каталога Получение информации о каталоге Копирование и перемещение файла Удаление файла Информация о файле Список всех файлов данного каталога Открытие файла и создание TextStream объекта Метод OpenAsTextStream Метод CreateTextFile Метод OpenTextStream Запись, присоединение и считывание данных из файла Функции по работе с файлами Просмотр файлов в каталоге Поиск файла и объект FileSearch Как определить, существует ли рабочая книга Глава 13. Обработка ошибок и отладка программ Разработка процедур, предотвращающих появление ошибок Контроль вводимых значений с помощью обработки события KeyPress Перехват и обработка ошибок Оператор On Error Процедура обработки ошибки Оператор Resume Объект Err Создание пользовательских ошибок для тонкой настройки обработчика ошибок Отладка программ Ошибки компиляции Ошибки выполнения Логические ошибки Директива Option Explicit Пошаговое выполнение программ Точка прерывания Вывод значений свойств и переменных Окно Watches Окно Locals Окно Immediate Программный способ вывода значений в окно Immediate Глава 14. VBA и Win32 API Первый пример Отсылка электронной почты и загрузка Web-страницы Определение и изменение разрешения экрана Как открыть окно Проводника Как отобразить окно свойств заданного файла Как загрузить Web-страницу, адрес которой набран в окне ввода Полупрозрачная форма Форма произвольной формы Форма без заголовка Заголовок активного окна Глава 15. VBA и Word Создание стилей Назначение стиля кнопке пользовательского меню Добавление в пользовательское меню кнопки которой назначен макрос Программное задание стиля Создание шаблонов Создание документа по шаблону Присоединение шаблона к существующему документу Вставка символа Заполнение письма Полезные макросы Печать текущей страницы Получение статистических сведений о документе или выделенном фрагменте Вставка фонового рисунка Двухстраничный и одностраничный просмотр документа Поиск текста в выделенном фрагменте Окраска всех вхождений данного слова в документ в заданный цвет Отображение в строке состояния информации об относительном объеме просмотренного документа Глава 16. VBA и Automation Средство Automation Программные идентификаторы приложений-серверов Automation Функции доступа к объектам Automation Позднее и раннее связывание Открытие документа Word Создание документа Word Создание отчета Word на основе данных хранимых на рабочем листе Создание презентации на основе данных хранимых на рабочем листе MS Excel Глава 17. ADO (ActiveX Data Objects) Создание ссылки на библиотеку ADO Объект Connection и установка подключения к базе данных Объект Recordset и его создание Пример использования объекта Recordset для просмотра базы данных Методы, свойства и события объекта Recordset Последовательный просмотр записей базы данных Доступ к данным, расположенным на рабочих листах закрытой книги Работа с курсорами Объект Field Создание браузера базы данных Браузер просмотра нескольких таблиц базы данных Редактирование, создание, обновление и удаление записей Вывод набора записей на рабочий лист Использование объекта Command Вставка данных в рабочий лист без ADO Глава 18. VBA и Access Макросы в Access Применение объекта DoCmd Объектная модель MS Access Открытие и закрытие MS Access из других приложений Ваша первая форма в MS Access Создание всплывающей формы Обращение к объекту по имени Источники данных Извлечение данных из списка в несвязанный элемент управления Программная навигация по записям Создание документов в Word на основе данных хранящихся в базе данных Построение отчета Глава 19. VBA и анализ данных Обработка данных: сортировка, фильтрация сводные таблицы, списки Сортировка данных Сортировка по выделенному полю Метод Sort Пример приложения, сортирующего данные Фильтрация Использование автофильтра Описание процесса автофильтрации Метод AutoFilter Объекты AutoFilter и Filter и семейство Filters Пример приложения, фильтрующего данные Как сделать, чтобы в фильтре отображались только списки выбора указанных столбцов Как определить число отфильтрованных записей Сводная таблица Подведение итогов по странам Обновление данных Удаление сводной таблицы Объекты, связанные со сводной таблицей Метод PivotTableWizard Объект PivotTable Объект PivotCache Объект PivotField Пример приложения, помогающего построить и обновлять сводную таблицу Списки Глава 20. VBA и Web Отсылка сообщений по электронной почте Задание параметров Web-страницы Предварительный просмотр документа как Web-страницы Сохранение документа как Web-страницы Объект PublishObject Гиперссылки Отсылка сообщения с помощью гиперссылки Вставка рисунка в рабочий лист из Web Создание web-запроса Получение данных из Интернета Получение данных из Интернета по запросу из указанной таблицы Web-компоненты Компонента Microsoft Office Spreadsheet Компонента Microsoft Office Chart Web-службы Создание Web-службы с помощью Visual Studio.NET Применение Web-службы в MS Office Конвертация валют Глава 21. VBA и Windows-сценарии Первый Windows-сценарий Доступ к файловой системе Создание документа Word и его печать Доступ к открытому активному документу Word Как определить, запущено ли приложение Перевод HTML документа в RTF формат Доступ к программам и передача им данных с клавиатуры Глава 22. Microsoft Visual Studio Tools для MS Office Ваш первый проект в Microsoft Visual Studio Tools Перехват событий рабочего листа Загрузка данных из базы данных на рабочий лист MS Excel Глава 23. VBA и XML Синтаксис XML-документа Синтаксис XSD-документа Открытие XML-документа в Excel без использования схемы Открытие XML-документа в Excel с использованием схемы Импорт XML-карты в коде Создание связанных с картой столбцов и импорт в них данных Приложение 1. VBA и игра Сапер Предметный указатель