- •Лабораторная работа 03 Тема "Автоматизация формирования текстовых документов с помощью Excel на примере типового договора купли-продажи"
- •Техническое задание
- •Корректировка содержимого договора
- •Определение номера договор и сроков оплаты по нему
- •Назначение макросов элементам управления
- •Преамбула договора
- •Пункты договора
- •Создание связи между Excel и Word
- •Создание базы заключенных договоров
- •Подпрограмма автоматизации операции регистрации договоров
- •Подпрограмма переноса информации в базу данных
- •Просмотр предыдущих договоров из базы данных их регистрации
- •Перемещение по листам рабочей книги и открытие текстовых документов
- •Командный способ назначения гиперссылки
- •Использование функции гиперссылка
Преамбула договора
В объединенной ячейке А11:С11 формируется преамбула договора. Формула, находящаяся в ячейке А11, с помощью текстовой функции СЦЕПИТЬ соединяет текст, функции и ссылки (рис. 6.10.).
Рис. 6.10. Формула формирования текста на основе функции СЦЕПИТЬ
В формуле последовательно происходит соединение следующих элементов:
ссылка на ячейку А16 в области реквизитов, в которой уже определено наименование предприятия - продавца;
текст - ", в лице ";
функция ВПР - производящая поиск наименования должности, внесенной в базу данных на листе Реквизиты;
" " - текст (пробел) соединяющий наименование должности и фамилии, имени и отчества руководителя предприятия - продавца;
функция ВПР -производит поиск полностью фамилии, имени и отчества руководителя предприятия, который подписывает договор;
текст - ", который действует на основании ";
функция ВПР -для поиска наименования документа, на основании которого руководитель подписывает договор;
текст - ", в дальнейшем ";
ссылка на ячейку A15 - в которой происходит поиск предприятия - покупателя товара;
текст - ", с одной стороны и ";
ссылка на ячейку C16 - наименование организации Покупателя;
текст - ", в лице ";
функция ВПР - производит поиск наименование должности, внесенное в базу данных на рабочем листе Реквизиты;
" " - текст (пробел) соединяющий наименование должности и фамилии, имени и отчества руководителя предприятия - покупателя;
и так далее
Пункты договора
Формула в объединенной ячейке А12:С12 (рис. 6.10.) соединяет в единое текст, который указывает, кто, и что именно собирается сделать.
Следующая формула соединяет в единый текст банковские реквизиты, сумму договора и срок перечисления денег.
Одним из основных элементов этой формулы является указание суммы договора в текстовом формате. Написание суммы договора прописью осуществляется соответствующим модулем, на выход которого (ячейку АВ12) и осуществляется ссылка в формуле. Но если вводить в текстовую функцию сумму в цифровом формате, то эта сумма внутри этого текста уже не имеет цифрового формата, а рассматривается как текст. Вследствие этого, исчезают пробелы между разрядами (при соответствующем числовом форматировании), а разделитель целой и дробной части, при отсутствии копеек не указывается. С позиции указания правильности суммы в денежном выражении в договоре необходимо устранить эти недостатки.
Модуль преобразования цифрового формата Excel в цифры текстового формата
На рис. 6.11. представлен пример представления чисел, находящихся в строке 1, после указания ссылок на эти ячейки, помещенных в функцию СЦЕПИТЬ (строка 2). Как видно из рисунка эти числа в строке 2 уже не представлены в заданном ранее числовом формате, а представлены в виде отдельных цифр внутри этого текста. Если денежная сумма будет представлена в таком виде в тексте договора, то это вызовет определенное недоумение при последующем чтении этого документа.
Рис. 6.11. Пример представления числа в текстовом формате
Для того чтобы сумма внутри текста выглядела в якобы числовом формате, необходимо этому числу пройти соответствующую обработку по алгоритму, показанному на рис. 6.12. Формулы преобразования показаны на рис 6.13.
Рис. 6.12. Алгоритм преобразования числа из числового формата в текстовый формат
Алгоритм трансформации этого числа заключается в разделении дробной и целой части числа и последующей обработке каждой части.
Рис. 6.13. Рабочий лист с формулами преобразования суммы числового формата в текстовый формат
Рассмотрим обработку целой части числа, которая производится в ячейках В4:В6 (рис. 6.13.). Формулы каждой из этих ячеек, основаны на использовании функции ОТБР, выделяют из числа разряды: миллионы, тысячи и единицы соответственно. В ячейке В5 производится выделение разрядов тысяч.
В первую очередь функция ЕСЛИ в первом аргументе проверяет, - имеются ли в данном числе цифры разряда тысяч и если присутствуют, то в третьем аргументе определяют их. Вторая функция ЕСЛИ определяет - возможность наличия в разрядах тысяч рассматриваемого числа трех нулей, которые тогда добавляются в виде текста. Если анализируемое число меньше 1000, тогда формула ничего не возвращает.
Преобразование дробной части несколько сложнее.
В ячейке В8 с помощью функции ДЛСТР определяется количество символов в анализируемом числе, в которые включены цифры целой и дробной части числа, а также запятая.
В ячейке В9 формула производит с помощью функции НАЙТИ поиск запятой (делителя числа на целую и дробную части) в тексте числа. Если эта функция не находит символ запятой, указанный в первом аргументе функции, то тогда она возвращает значение ошибки #ЗНАЧ!, что не позволяет использовать полученный результат в дальнейших вычислениях. С целью устранения этого недостатка в первом аргументе функции ЕСЛИ вложена функция ЕОШИБКА (рис. 6.14.), контролирующая функцию НАЙТИ. И при полученном значении ошибки возвращает значение ИСТИНА, по которому функция ЕСЛИ возвращает значение ноль.
Задача формулы в целом - определить номер позиции запятой в числе, начиная с левой стороны. Если запятая отсутствует, то возвращается значение 0.
Рис. 6.14. Панель функции ЕОШИБКА
Содержимое ячейки В10 предназначено при отсутствии разделительного знака, а как следствие и самой дробной части, сформировать ее. Поэтому если формула в ячейке В9 возвращает значение ноль, то формула в ячейке В10 возвращает текст ",00".
Ячейка В11 предназначена для определения количества знаков после запятой - один или два. Если в дробной части содержится два символа, то эта часть остается без изменений. Если же после запятой имеется только один знак, а это возможно только при наличии десятичного символа, то в дробную часть надо добавить символ 0, для чего предназначена формула в ячейке В13.
Формула в ячейке В12 выделяет существующую дробную часть вместе с запятой.
Ячейка В14 предназначена при необходимости для присоединения недостающего знака в дробной части.
Ячейка В15 является заключающей в формировании дробной части числа.
Полностью все число соединяется в единое целое в ячейке В17 с помощью текстовой функции СЦЕПИТЬ.
На рис. 6.15. находятся несколько примеров с различными числами, по которым можно проанализировать работу таблицы в целом.
Рис. 6.15. Примеры преобразования в текстовый формат различных чисел
Завершающим этапом создания этой таблицы преобразования числа может служить трансформация его в модуль после проверки таблицы на правильность проводимых вычислений. Для этого используется метод вложения формул. Полученный горизонтальный модуль состоит из трех ячеек и показан на рис. 6.16.
Рис. 6.16. Модуль преобразования числа в текстовый формат
Для внедрения созданного модуля в разрабатываемое приложение скопируйте его область D3:F3 перейдите на лист Договор и выделив ячейку АА1 произведите вставку. Из ячейки АА1 (вход модуля) задайте ссылку на ячейку С2, в которую вводится сумма договора. А ссылка на выход модуля задается из ячейки А13 (рис. 6.10.).
Реквизиты
Область формирования реквизитов на рабочем листе Договор находится в области А15:С21 и показана на рис. 6.17. Область формирования реквизитов разделена на две части, формирование которых зависит от значений введенных в ячейки А1 и С1.
Рис. 6.17. Реквизиты сторон подписывающих договор
Создание интерактивного текстового документа Договор
В качестве примера для автоматизации используем пример упрощенного договора купли-продажи, показанный на рис. 6.1.
Текст, приведенный в данном договоре можно разделить на две составляющие:
вводимый в текстовом редакторе Word (постоянный);
экспортируемый из Excel (переменный).
К тексту, вводимому в редакторе Word, относится текст, который вводится непосредственно в Word и в каждом генерируемом договоре остается без изменений.
Текст, экспортируемый из Excel - отдельные текстовые фрагменты договора, содержимое которых может быть различно, в зависимости от каждого генерируемого договора.
На рис. 6.1.с текстом упрощенного типового договора купли-продажи к первой составляющей относятся:
текст "Договор покупки-продажи";
наименования разделов договора;
пункт 3.1. раздела договора "Дополнительные условия"
К тексту, экспортируемому из Excel, относятся:
номер договора;
место заключения договора;
дата заключения договора;
пункты разделов "Предмет договора" и "Порядок расчетов";
реквизиты сторон.
Созданный файл с этим текстовым документом сохраните на жестком диске под именем Договор в папке Договора купли продажи.
