Перейти к содержимому

VBA Excel. Bookmarks – закладки в документе Word

Применение закладок для заполнения различных бланков на основе документов Word из кода VBA Excel. Объект Bookmark и его свойство Range.

Работа с Word из кода VBA Excel
Часть 5. Bookmarks – закладки в документе Word
[Часть 1] [Часть 2] [Часть 3] [Часть 4] [Часть 5]

  1. Добавление закладок в шаблон
  2. Создание и заполнение бланка

Добавление закладок в шаблон

Закладки (Bookmarks) являются удобным средством для вставки изменяющихся реквизитов в шаблоны документов. К закладкам можно обращаться по имени и не заморачиваться подсчетом количества символов до того места, где должен быть вставлен текст.

Вставляются закладки в шаблон документа вручную. Например, для следующего шаблона

Шаблон договора аренды с закладками
Шаблон договора аренды с закладками

это можно сделать так:

  1. Вставляем в макет шаблона в места вставки изменяемых реквизитов поясняющий текст. В нашем шаблоне это – <Город>, <Дата>, <Наименование арендатора> и <Наименование арендодателя>. Реквизиты <Город> и <Дата> добавлены в ячейки таблицы, чтобы их можно было разместить в одной строке, а выровнять по разным краям. Границы ячеек оставлены для наглядности.
  2. Выделяем текст <Город> и вставляем закладку под именем Bookmark1 через меню: Вставка ⇒ Закладка. Добавляем остальные закладки: <Дата> – Bookmark2, <Наименование арендатора> – Bookmark3, <Наименование арендодателя> – Bookmark4.
  3. Сохраняем бланк документа как шаблон Word. Полный путь для нашего примера: "C:\Тестовая\Документ1.dotx".

Создание и заполнение бланка

Реквизиты, добавляемые в места вставки, отмеченные закладками, обычно хранятся в таблицах Excel. Но мы вставим их напрямую в код процедуры:

Sub Primer()
On Error GoTo Instr
Dim myWord As New Word.Application, _
myDocument As Word.Document
'Создаем новый документ по шаблону
  Set myDocument = _
  myWord.Documents.Add("C:\Тестовая\Документ1.dotx")
  myWord.Visible = True
With myDocument
'Замещаем текст закладок
  .Bookmarks("Bookmark1").Range = "г. Омск"
  .Bookmarks("Bookmark2").Range = Format(Now, "DD.MM.YYYY")
  .Bookmarks("Bookmark3").Range = "Каев Кай Гердович (ИП)"
  .Bookmarks("Bookmark4").Range = "ООО «Снежная королева»"
'Удаляем границы ячеек
  .Tables(1).Borders.OutsideLineStyle = wdLineStyleNone
  .Tables(1).Borders.InsideLineStyle = wdLineStyleNone
End With
'Освобождаем переменные
Set myDocument = Nothing
Set myWord = Nothing
'Завершаем процедуру
Exit Sub
'Обработка ошибок
Instr:
If Err.Description <> "" Then
  MsgBox "Произошла ошибка: " & Err.Description
End If
If Not myWord Is Nothing Then
  myWord.Quit
  Set myDocument = Nothing
  Set myWord = Nothing
End If
End Sub

В результате работы кода VBA Excel получаем заполненный бланк документа на основе шаблона Word:

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

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

Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора. При добавлении в комментарий кода VBA Excel, вставьте перед его началом тег [vb] и по окончании кода - [/vb].