
- •Л.Н. Лядова, н.В. Фролова, в.В. Ланин, е.Б. Замятина, м.А. Плаксин, б.А. Ермолаев
- •Часть 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.5.Подбор параметров и поиск решения
Подбор параметров и поиск решения используются в том случае, когда необходимо получить конкретное значение в определенной ячейке, значение которой вычисляется по формуле и зависит от значений других ячеек.
Если вычисляемое по формуле значение зависит от единственного параметра, значение которого может изменяться, можно поставить перед Excel задачу подбора такого значения этого параметра, что результат вычислений в известной ячейке будет равен заданному значению. Если же на результат влияет содержимое нескольких ячеек, значение в каждой из которых может изменяться, или на решение накладываются какие-то условия, требуется найти максимальное или минимальное значения, то Excel должен решить задачу поиска решения.
Функции подбора параметра и поиска решения реализованы специальными надстройками Excel. Надстройка доступна, когда она загружена. Просмотреть список надстроек можно с помощью команды Надстройки… из меню Сервис.
При подборе параметра Excel ищет такое его значение, при котором формула, значение которой зависит от этого параметра, даст при вычислении заданный результат в указанной ячейке.
Для решения задачи подбора параметра следует выполнить следующую последовательность шагов:
выделить ячейку, содержащую формулу, значения параметра которой нужно подобрать;
выбрать в меню Сервис команду Подбор параметра… и в диалоговом окне команды задать условия ее выполнения: в поле «Установить в ячейке:» должна находиться ссылка на выделенную на первом шаге ячейку; в поле «Значение:» вводится требуемый результат вычисления по формуле, т.е. значение, которое должно быть получено в результате подбора параметра для заданной формулы; в поле «Изменяя значение ячейки:» вводится ссылка на ячейку, которая содержит изменяемый параметр формулы;
щелкнуть кнопку OK для выполнения команды.
В результате выполнения команды будет выведено окно с результатами работы Excel. Если решение найдено, подобранное значение параметра будет вписано в отведенную для него ячейку.
Подбор параметра можно организовать программным путем, с помощью метода GoalSeek. Вызов этого метода выполняется по правилу:
Выражение.GoalSeek(Goal, ChangingCell)
где Выражение возвращает объект типа Range, представляющий единственную ячейку, содержащую формулу; аргументы определяют заданное значение для результата вычислений по формуле и ячейку, значение которой должно быть подобрано. Например, оператор:
Range("B1").GoalSeek Goal:=10, ChangingCell:=Range("A1")
подбирает значение параметра в ячейке “A1” так, чтобы результат вычисления по формуле, записанной в ячейке “B1”, был равен 10.
Функции моделирования и поиска решения более высокого уровня находятся в файле надстройки SOLVER.XLA поиска решения.
При решении задачи поиска решения можно изменять параметры поиска. Для определения условий решения задачи следует выполнить следующую последовательность шагов:
выделить ячейку, содержащую формулу, для которой решается задача поиска решения, дающего заданное значение для указанной формулы;
выбрать команду Поиск решения… в меню Сервис;
в диалоговом окне команды задать условия ее выполнения:
в поле «Установить целевую ячейку:» должно быть введено имя или адрес ячейки, содержащей формулу, значения параметров которой должны быть подобраны;
с помощью группы переключателей «Равной:» нужно определить, на какой результат вычислений по указанной выше формуле следует ориентироваться (максимальное значение, минимальное значение или заданное конкретное значение); если выбран переключатель «значению:», то в соответствующем поле вводится это значение, которое и является целью поиска решения;
в поле «Изменяя ячейки:» перечисляются ссылки на ячейки, значения которых могут изменяться при поиске нужного решения (диапазон смежных ячеек, ссылки на несмежные ячейки, перечисленные через символ ‘;’), щелчок по кнопке Предположить заставляет Excel автоматически составить список изменяемых ячеек, влияющих на результат;
с помощью кнопки Добавить можно ввести ограничения на значения, подбираемых параметров (щелчок по этой кнопке раскрывает диалоговое окно, в котором можно задать дополнительные условия), сформированные условия отображаются в диалоговом окне, «лишние» условия можно удалить из списка, условия можно также изменить;
кнопка Параметры позволяет задать параметры поиска решения.
Выполнение команды запускается кнопкой Выполнить. Результаты поиска решения отображаются в диалоговом окне. Найденное решение можно сохранить в указанных ячейках или восстановить в них исходные значения. Решение можно также сохранить как сценарий (работа с ними рассматривается ниже).
Поиск решения реализуется средствами, описанными в файле надстройки. Для определения всех параметров команды, которые следует задать при написании кода соответствующей инструкции на VBA, можно воспользоваться макрогенератором, записав нужный код «вручную» в режиме записи макроса. Например, следующие операторы
SolverOk SetCell:="$B$1", MaxMinVal:=3, _ ValueOf:="10", ByChange:="$A$1:$A$2"
SolverSolve
задают условия поиска решения: параметры подбираются для формулы, записанной в ячейке “B1”, в этой ячейке должно быть установлено конкретное значение (число 10), изменяемые значения находятся в диапазоне “A1:A2”; поиск решения начинается щелчком по кнопке OK и найденное решение сохраняется в указанных ячейках.
Более подробно функции, позволяющие программным способом получить доступ к возможностям надстройки «Поиск решения», можно изучить в разделе «Microsoft Excel Visual Basic Reference» («Functions») справочной системы Microsoft Excel Visual Basic.