Перейти к содержимому
Наше приложение «Дешевые авиабилеты» в AppGallery >>

VBA Excel. Генерация документов (реестр, массив, бланк)

    Генерация визуальных форм документов из реестра с помощью VBA Excel. Использование массива для передачи данных из реестра в печатную форму (бланк) документа. Ссылка для скачивания файла с примером внизу.

    Передача данных из реестра в массив

    Порядок генерации документов из реестра с помощью VBA Excel будем рассматривать на примере Договора о материальной ответственности из статьи Реестр документов и печатная форма в Excel, где заполнение бланка (печатной формы) из реестра осуществляется с помощью формул.

    Итак, допустим у нас есть следующий реестр:

    Пример реестра документов

    Реестр документов в «Умной таблице» Excel

    Мы должны на основании данных из реестра заполнить бланк документа для вывода его на печать. Чтобы идентифицировать конкретный документ, будем использовать активную ячейку, которую выберем в нужной строке и ее номер определим с помощью кода VBA при запуске программы генерации печатной формы документа:

    Информацию о документе скопируем из реестра в массив, предварительно объявив его без указания размерности:

    Передача данных из массива в документ

    Бланк документа можно хранить в отдельном файле или на скрытом листе книги с реестром, заполнять его данными из массива, а потом копировать в новую книгу. Но для простоты мы будем заполнять тот же бланк, который в статье Реестр документов и печатная форма в Excel заполнялся с помощью формул:

    Договор о материальной ответственности

    Договор о материальной ответственности

    Заполнить печатную форму документа можно, последовательно присваивая отдельным ячейкам значения из соответствующих элементов массива. Но мы сделаем немного по-другому: присвоим заполняемым ячейкам имена, различающиеся только порядковым номером («yacheyka_» с номером от 1 до 11*), и заполним их значениями из массива с помощью цикла. После окончания работы цикла и присвоения значения еще одной отдельной ячейке активируем лист с заполненным бланком документа.

    *Имя «yacheyka_11» присвоим ячейке «G41», в которую повторно необходимо записать ФИО.

    Вот такой получился код:

    Размещен код в модуле листа «Реестр ДМО» и запускается кнопкой, размещенной на этом же рабочем листе.

    Вы можете скачать файл с примером генерации документов из реестра с данными при помощи кода VBA Excel.

    Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

    Добавить комментарий

    Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора.