- •Л.Н. Лядова, н.В. Фролова, в.В. Ланин, е.Б. Замятина, м.А. Плаксин, б.А. Ермолаев
- •Часть 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 Постановка задачи
- •Разработка документа
- •Разработка экранной формы
- •Список литературы
8.9.Защита приложений Excel
При разработке приложений Excel могут возникнуть проблемы, связанные с несанкционированным или случайным изменением данных в рабочих книгах, неправильным вводом. Например, в ячейках таблицы установлены ссылки на ячейки другого рабочего листа или книги, если после выделения ячейки, содержащей ссылку, ввести любой символ с клавиатуры, связь будет разрушена, нарушится целостность данных, хранящихся в связанных рабочих книгах.
Чтобы избежать такого рода ошибок, следует установить защиту данных, обеспечивающую возможность их изменения только в соответствии с заданными правилами. (Например, нельзя вручную модифицировать данные в ячейках, значения которых вычисляются по формулам.)
8.9.1. Защита от ошибок при вводе данных
Excel позволяет контролировать вводимые пользователем в ячейки рабочего листа даные на соответствие типам ячеек и на принадлежность множеству допустимых для ячейки значений.
При работе с приложением установить защиту (проверку правильности вводимых данных) можно с помощью команды Проверка… меню Данные (диапазон ячеек, для которых устанавливаются правила ввода данных должен быть предварительно выделен). В диалоговосм окне команды на вкладке «Параметры» можно выбрать тип значений, которым могут содержаться в ячейках выделенного диапазона, и множество допустимых значений (например: диапазон – для чисел, даты, времени; длину – для строки и т.п.). На вкладке «Сообщение для ввода» можно ввести текст сообщения, которое будет служить подсказкой при переходе к вводу данных в ячейку выделенного диапазона. Реакцию на неправильный ввод можно определить с помощью вкладки «Сообщение об ошибке», на которой можно указать вид действия, являющегося реакцией Excel на неправильный ввод («Останов», «Предупреждение» или «Сообщение»), а также заголовок диалогового окна и текст выводимого в случае неправильного ввода ссобщения.
Ниже приведен текст макроса, задающего правила ввода данных в ячейки выделенного перед его выполнением диапазона:
Sub Проверка()
With Selection.Validation
.Delete
.Add Type:=xlValidateWholeNumber, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:="0", Formula2:="12"
.IgnoreBlank = False
.InCellDropdown = True
.InputTitle = "Количество отработанных часов:"
.ErrorTitle = "Ошибка ввода"
.InputMessage = "Допустимы целые числа от 0 до 12"
.ErrorMessage = _
"Данные введены неправвильно!" & Chr(10) _
& "Допустимы только целые числа от 0 до 12!"
.ShowInput = True
.ShowError = True
End With
End Sub
Процедуру поверки значений можно сгенерировать с помощью средств макрогенерации.
8.9.2. Защита данных от несанкционированного доступа
Защита данных в Excel устанавливается в несколько шагов. Сначала нужно установить защиту на уровне ячейки с помощью команды Формат Ячейки… На вкладке Защита диалогового окна данной команды можно установить два флажка, один из которых защищает ячейку от непосредственных изменений, которые может внести пользователь в рабочий лист (запрещает редактирование содержимого ячейки, ее удаление и перемещение), а второй позволяет скрыть формулы, по которым осуществляются вычисления значений ячеек рабочего листа.
Однако атрибуты защиты, установленные для ячеек, не действуют, пока не установлена защита рабочего листа. Защитить рабочий лист можно с помощью команды Защита Защитить лист… из меню Сервис. В открывшемся диалоговом окне можно установить, какие элементы рабочего листа подлежат защите, а также задать пароль, который позволит ограничить право отмены защиты.
Изменить атрибуты защиты ячейки можно, только сняв защиту с рабочего листа. Снимается защита также с помощью команды меню Сервис.
Таким образом, при разработке приложения следует установить защиту ячеек, которые не должны меняться непосредственно на рабочем листе, а должны обновляться только по заданным в приложении правилам (например: при вычислениях или вводиться с помощью пользовательских форм). А с ячеек, данные в которые должны вводиться непосредственно, защиту необходимо снять.
Кроме защиты рабочих листов с помощью команды меню Сервис можно организовать защиту рабочей книги. В диалоговом окне этой команды устанавливается защита структуры рабочей книги (предотвращает удаление, перемещение вставку и т.п. рабочих листов в книге) и защита окон (предотвращает перемещение, изменение размеров, удаление и т.п. окон).
При работе в сети разработчик может управлять доступом к книге со стороны нескольких пользователей. К книгам Excel можно обеспечить монопольный или совместный доступ. Установить режим доступа к рабочей книге можно с помощью команды Доступ к книге…, которая позволяет на вкладке «Правка» включить или отключить флажок «Разрешить совместный доступ», кроме того, на вкладке «Подробнее», можно уточнить параметры совместного доступа (режим регистрации и внесения изменений).
Однако при совместном доступе к данным возникают проблемы реализации взаимного исключения при работе нескольких пользователей с общими данными, если данные во время работы модифицируются. Эту проблему следует решать программным способом, чтобы обеспечить правильность выполнения транзакций (неделимых единиц работы, которые должны быть выполнены от начала до конца как одна операция), целостность общих данных. Эта проблема решается на этапе проектирования приложения, когда определяется порядок доступа к данным, внесения в них изменений. Для решения проблемы взаимного исключения можно использовать семафорную технику, если средства, предоставляемые Excel, оказываются недостаточными.
Код приложения можно защитить, установив в диалоговом окне свойств VBA-проекта на вкладке «Защита» флажок «Блокировать просмотр проекта». Кроме того, скрыть код приложения можно, сохранив его как надстройку.
Защиту от несанкционированного доступа можно усилить, испльзуя кроме стандартных средств Excel процедуры защиты, созданные пользователем-программистом (например, процедуры идентификации пользователей).
