1

Тема: Шаблон с обновляемым полем полного имени файла

Нужно в шаблоне внизу в колонтитуле вставить поле имя файла и путь к нему, обновляемые автоматически, для Ворда 2003. В ранних версиях это делалось элементарно. В новых надо записывать макрос, один раз получилось, но потом стал менять шрифт, и забыл, как надо правильно записать и сохранить - сохраняется только путь к шаблону в системной области.
Прошу помочь, я юрист, а не программист.

2

Re: Шаблон с обновляемым полем полного имени файла

Макрос не нужен, достаточно вставить поле (Ctrl+F9):
{ FILENAME \p }
Для обновления выделяем и жмем F9. В параметрах Word есть еще опция автоматического обновления полей перед печатью.

Макросы под заказ и готовый пакет - mtdmacro.ru

3

Re: Шаблон с обновляемым полем полного имени файла

В том то и дело, что такая процедура у меня не работает сейчас, почему-то.
Делаю так. В Шаблонах правой кнопкой на мой личный шаблон Dot1.dot, затем "Открыть".
В ворде - Колонтитулы - Нижний колонтитул - Вставить - Поле - Filename. Во вкладке полей ставлю галки на "Добавить путь к имени файла" и внизу - "Сохранять формат при обновлении". Жму ОК - Закрыть колонтитулы - Сохранить (как шаблон под тем же именем) - Закрыть.
Затем пробую, в Шаблонах кликаю на сохраненный Dot1.dot, в Ворде открываемся как новый "Документ 1", - Сохранить как - сохраняю в рабочей папке моей под произвольным именем, например "222.doc", все закрываю. Затем запускаю Ворд, в меню - Файл - открываю последний закрытый документ, созданный в новом моем шаблоне 222.doc- и внизу в колонтитуле только надпись "Документ1"

Я работал с прежними версиями Ворда, там на самом деле все было просто, а счейчас не понимаю в чем дело. Я не от хорошей жизни в макросы полез.

Вот кстати нашел макрос на ФриЛансере


Private Sub Document_Open()

Dim sct As Section
Dim HF As HeaderFooter
For Each sct In Word.Application.ActiveDocument.Sections
For Each HF In sct.Footers
For Each fld In HF.Range.Fields
fld.Update
Next
Next
Next

End Sub

Он нормально показывает путь и имя файла, но в конце удваивает имя файла, например так:
B:\Мура\Documents\МОИ ДОКУМЕНТЫ (ТЕКУЩАЯ, РАБОЧАЯ)\Вариант 6.docВариант 6Вариант 6

Меня бы устроило из этого макроса убрать лишние повторы имени.
Прошу помочь по-подробнее.
Взамен могу рассказать как проходит Президиум Верховного суда РФ, не все судьи к нему допущены, а мне пришлось.

4

Re: Шаблон с обновляемым полем полного имени файла

нормально работает, но лучше сменить имя

Sub upd_fld()
Options.UpdateLinksAtOpen = True
Dim fld As Field
Dim sct As Section
Dim HF As HeaderFooter
For Each sct In Word.Application.ActiveDocument.Sections
For Each HF In sct.Headers
For Each fld In HF.Range.Fields
Debug.Print fld.ShowCodes, fld.Code;
fld.Update
Debug.Print fld.Result
Next
Next
Next

End Sub

5

Re: Шаблон с обновляемым полем полного имени файла

Мурат пишет:

...не работает сейчас...лишние повторы имени...

Проблема точно не в макросе. Думаю, ошибка в вашем шаблоне: или поле в поле вставили, или еще как-то нахимичили. Есть вероятность глюка, но мизерная.

Код можно упростить:

Private Sub Document_Open()
Dim SEC As Section
Dim HF As HeaderFooter
    For Each SEC In Word.Application.ActiveDocument.Sections
        For Each HF In SEC.Footers
            HF.Range.Fields.Update
        Next HF
    Next SEC
End Sub
Макросы под заказ и готовый пакет - mtdmacro.ru