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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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