- •Л.Н. Лядова, н.В. Фролова, в.В. Ланин, е.Б. Замятина, м.А. Плаксин, б.А. Ермолаев
- •Часть 2. Основы офисного программирования
- •Оглавление
- •Глава 6. Использование Win32 api 113
- •Глава 7. Использование шаблонов и надстроек 118
- •Глава 8. Разработка приложений с помощью Excel 122
- •Глава 9. Разработка приложений с помощью Word 223
- •Глава 10. Использование Automation при интегрировании компонентов Microsoft Office 256
- •Глава 11. Организация доступа к внешним данным 279
- •Глава 12. Общие рекомендации по разработке приложений 297
- •Глава 13. Разработка справочной системы 298
- •Глава 14. Дополнительные рекомендации 301
- •Пояснительная записка
- •Уровень предварительной подготовки слушателей
- •Образовательные цели и задачи
- •Знания и навыки, получаемые в ходе изучения курса
- •Содержание занятий
- •Вопросы для самостоятельного изучения
- •Содержание лабораторных работ
- •Итоговые работы
- •Введение
- •Глава 1.Общая характеристика возможностей vba
- •Глава 2.Основные принципы разработки приложений
- •Глава 3.Основные правила разработки интерфейса
- •Глава 4.Visual Basic для приложений
- •Глава 5.Введение в язык и редактор Visual Basic
- •5.1.Окно Редактора Visual Basic
- •5.2.Основные правила записи программ на vba
- •5.2.1. Описания в программах на языке vba
- •5.2.2. Структуризация программ vba и правила записи кода процедур
- •5.2.3. Использование параметров
- •5.2.4. Типы данных vba
- •5.2.5. Описания переменных
- •5.2.6. Объекты в программах на vba и объектные переменные
- •5.2.7. Создание объектов пользователя
- •5.2.8. Описание и использование констант
- •5.2.9. Массивы в vba
- •5.2.10. Описание типов данных пользователя
- •5.2.11. Запись выражений на vba
- •5.2.12. Рекурсивные вычисления
- •5.2.13. Процедуры-подпрограммы
- •5.2.14. Процедуры-функции
- •5.2.15. Процедуры-свойства
- •5.2.16. Создание процедур
- •5.2.17. Управляющие структуры vba и события
- •5.3.Запуск программ
- •5.4.Отладка программ
- •5.5.Обработка ошибок
- •5.6.Преобразования типов
- •5.7.Функции для работы с датами и временем
- •5.8.Управление файлами
- •5.9.Функции проверки
- •5.10.Функции работы со строками
- •5.11.Взаимодействие с пользователем
- •5.12.Пользовательские формы и диалоговые окна
- •5.13.Создание пользовательских меню и панелей инструментов
- •5.14.Разработка контекстного меню
- •5.15.Открытие проектов, экспорт и импорт
- •Глава 6.Использование Win32 api
- •Глава 7.Использование шаблонов и надстроек
- •Глава 8.Разработка приложений с помощью Excel
- •8.1.Иерархия объектов Excel
- •8.2.Обзор основных объектов Excel
- •8.2.1. Объект Application
- •8.2.2. Объект Workbook
- •8.2.3. Объект WorkSheet
- •8.2.4. Объект Range
- •8.2.5. Графические объекты
- •8.2.6. Элементы управления и обработка событий
- •8.3.Представление данных и вычисления в таблицах Excel
- •8.3.1. Ссылки на ячейки рабочих листов Excel
- •8.3.2. Работа с формулами
- •8.3.3. Использование функций
- •8.3.4. Создание пользовательских функций рабочего листа
- •8.3.5. Массивы Excel
- •8.3.6. Определение связей между таблицами
- •8.3.7. Консолидация данных
- •8.3.8. Форматирование данных в таблицах
- •8.4.Анализ данных и подведение итогов
- •8.4.1. Создание сводных таблиц
- •8.4.2. Подведение промежуточных итогов
- •8.4.3. Определение частичных сумм
- •8.4.4. Создание диаграмм
- •8.4.5. Работа со структурой данных
- •8.5.Подбор параметров и поиск решения
- •8.6.Использование сценариев
- •8.7.Поиск и отбор данных в таблицах Excel
- •8.7.1. Использование автофильтра
- •8.7.2. Работа с расширенным фильтром
- •8.7.3. Поиск данных по подписям строк и столбцов
- •8.8.Упорядочение данных в таблицах
- •8.9.Защита приложений Excel
- •8.9.1. Защита от ошибок при вводе данных
- •8.9.2. Защита данных от несанкционированного доступа
- •Глава 9.Разработка приложений с помощью Word
- •9.1.Модель объектов Word
- •9.1.1. Объект Document
- •9.1.2. Другие дочерние объекты приложения Word
- •9.2.Работа с полями
- •9.3.Переменные документа
- •9.4.Использование формул в документах Word
- •9.5.Использование элементов управления в документах Word
- •9.6.Создание шаблонов документов на основе таблиц
- •9.7.Защита документов Word и кода
- •Глава 10.Использование Automation при интегрировании компонентов Microsoft Office
- •10.1.Технология ActiveX
- •10.2.Компонентная модель объектов, внедрение и связывание
- •10.3.Создание объектов Automation
- •10.4.Получение доступа к объекту
- •10.5.Пример вычислений в Access с помощью Excel
- •10.6.Управление связанными и внедренными объектами с помощью программного кода
- •Глава 11.Организация доступа к внешним данным
- •11.1.Доступ к данным из клиентских приложений
- •11.2.Интерфейс odbc
- •11.3.Использование dao для доступа к данным
- •11.3.1. Модель объектов dao
- •11.3.2. Создание рабочей области и открытие источника данных
- •11.3.3. Исследование структуры таблиц бд
- •11.3.4. Операции над данными
- •11.4.Интеграция данных и работа в сети
- •11.4.1. Доступ к данным Excel из субд Access
- •11.5.Выбор метода доступа к данным
- •Глава 12.Общие рекомендации по разработке приложений
- •Глава 13.Разработка справочной системы
- •13.1.Использование всплывающих подсказок
- •13.2.Контекстная справка «Что это такое?»
- •13.3.Подготовка файла справки
- •Глава 14.Дополнительные рекомендации Установка приложения
- •14.1.Повышение эффективности работы приложения
- •Приложение 1. Система автоматизации подготовки документов на основе пакета Microsoft Office
- •Требования к системе Office case
- •Интеллектуальность документа
- •Однократный ввод данных и их совместное использование
- •Дружественный интерфейс – «ориентация на человека»
- •Мобильность
- •Независимость от версии Microsoft Office
- •Поддержка языка разметки документов xml
- •Общий сценарий использования
- •Структура Office case
- •Структура скрытого раздела документа
- •В. Таблица ограничений
- •Подсистемы программного проекта документа Менеджер закладок
- •Менеджер классификаторов
- •Подсистема управления интерфейсом пользователя
- •Подсистема контроля данных
- •Подсистема информационного обмена
- •Дизайнер системы документов
- •Редактор классификаторов
- •Редактор правил
- •Редактор закладок
- •Редактор блоков данных
- •Пример применения Office case Постановка задачи
- •Реализация Документы «Подсистемы автоматизации подготовки отчетов»
- •Требования к квалификации пользователей
- •Установка приложения и подготовка к работе
- •Интерфейс первичных документов
- •Интерфейс сводных документов
- •Приложение 2. Автоматизированное рабочее место «Оператор автозаправочной станции»
- •Разработка структуры рабочей книги
- •Настройка пользовательского интерфейса
- •Разработка экранных форм
- •Приложение 3. Автоматизация заполнения бланка с помощью программы текстового процессора Word Постановка задачи
- •Разработка документа
- •Разработка экранной формы
- •Список литературы
5.2.Основные правила записи программ на vba
При создании приложений с помощью офисных средств разработки используются следующие основные понятия:
процедуры (подпрограммы и функции),
строки кода,
комментарии,
объекты, свойства и методы,
позиционные и именованные аргументы,
встроенные константы,
типы данных,
объектные переменные,
структуры управления VBA.
Любая программа на VBA представляет собой последовательность инструкций. Инструкция Visual Basic является полной командой. Она может содержать ключевые слова, символы операций, переменные, константы и выражения. Любая инструкция относится к одной из следующих категорий:
Инструкции описания, именующие переменные, константы, процедуры, типы данных, а также задающие их характеристики
Инструкции присвоения, которые присваивают значение выражения переменной или константе.
Исполняемые инструкции, которые инициируют действие. Они могут выполнить метод или функцию, а также могут организовать повторение или ветвление блоков программы. Эти инструкции часто содержат математические или условные операторы.
При описании синтаксических правил VBA полужирным шрифтом показаны ключевые слова VBA, а курсивом – синтаксические обозначения, которые при вводе текстов программ должны заменяться на конкретные значения, имена и т.п. В фигурных скобках записываются возможные альтернативные варианты, при этом разделителем между перечисленными альтернативами служит вертикальная черта (например: { While | Until }), из всех указанных вариантов при записи инструкции выбирается один вариант.
При работе с VBE можно использовать режим контроля синтаксических ошибок. В Visual Basic имеется функция проверки синтаксиса: каждая вводимая инструкция проверяется на ошибки синтаксиса, такие как неправильное написание ключевого слова или отсутствующий разделитель (выдается оповещение об обнаруженных ошибках); если же синтаксис правильный, программа переводится во внутреннюю форму, что ускоряет переход ко времени выполнения. Эта функция включается в начале, но затем ее можно выключить, если предпочтительнее вводить программу без оповещения о возникающих ошибках. Чтобы включить или выключить проверку синтаксиса нужно: выбрать команду Параметры в меню Сервис; перейти на вкладку «Модуль»; установить или сбросить флажок «Проверка синтаксиса»; нажать кнопку OK.
5.2.1. Описания в программах на языке vba
Инструкции описания используются для описания процедур, переменных, массивов и констант и для присвоения им имен. Все переменные, константы, процедуры и функции имеют область действия, где они доступны. При описании процедур, переменных или констант задается также их область определения, которая зависит от того, где расположено описание и какие ключевые слова при этом использованы.
В VBA существует три уровня областей действия переменных: уровня процедуры, уровня модуля и уровня проекта. Эти уровни применимы и для массивов. Описания типов данных, определенных пользователем, которые должны располагаться в разделе описаний модуля VBA, по умолчанию имеют область действия уровня проекта.
Константы имеют те же три уровня действия, а процедуры – только два: модуля и проекта.
Описания представляют собой неисполняемые программные инструкции, в которых определяются имена процедур, констант, или переменных и задаются их характеристики (такие как тип данных).
При разработке приложений отдельные задачи можно выделить и оформить в виде процедур, сгруппированных в модули. Модуль включает в себя процедуры, которые описывают выполнение приложением конкретных задач. Процедуры используются для разбиения сложных программистских задач на более простые элементы.
Описания включаются в модули форм, в стандартные модули и в модули класса. Чтобы ввести описания уровня модуля, надо перейти в раздел описаний модуля. Чтобы ввести глобальные описания, надо перейти в раздел описаний модуля и использовать инструкцию Public для констант и переменных. Для создания описаний можно также воспользоваться ключевыми словами Dim, Static и Private.
Можно также вводить описания на уровне процедуры. Для любого программного уровня и для любого способа описания переменных или констант следует применять специальные правила, связанные с областями определения.
Чтобы открыть раздел описаний модуля, нужно выбрать в окне проекта модуль формы, стандартный модуль или модуль класса, который надо открыть, и выполнить команду Программа в меню Вид или контекстном меню, а затем выбрать элемент «(Общая область)» в списке «Объект», расположенном над окном программы. В находящемся справа списке «Процедуры» автоматически будет выведена область окна «(Описания)». Далее можно ввести описание или несколько описаний.
В описании указывается имя, которое будет использоваться для идентификации описываемой процедуры, параметра, переменной, константы или типа. При присвоении имен в модуле Visual Basic используются следующие правила:
Имена должны начинаться с буквы.
Имя не может содержать пробел, точку (.), восклицательный знак (!) или символы @, &, $, #.
Имена не должны содержать более 255 символов.
Как правило, не следует использовать имена, совпадающие с названиями функций, инструкций, и методов языка Visual Basic, так как при этом прекращается выделение в тексте одноименных ключевых слов языка. Чтобы использовать встроенные функции языка, инструкции или методы, имена которых конфликтуют с присвоенным пользователем именем, их необходимо явно указывать. Для этого перед именем встроенной функции, инструкции или метода, должно стоять имя связанной с ними библиотеки типов. Например, если имеется переменная с именем Left, то функция Left должна вызываться как VBA.Left.
Не допускается использование повторяющихся имен на одном уровне области определения.
В языке Visual Basic не различаются строчные и прописные буквы, в инструкции описания сохраняются прописные буквы.
