Статьи из блога

Как вставить в колонтинтул путь и имя файла

Один из читателей сайта задал вопрос:

Как настроить Word, чтобы при распечатке в нижнем колонтитуле указавался путь и имя файла?

Это достаточно легко сделать. Нужно просто вставить в нижний колонтитул специальное поле FileName с ключом p, а потом отправить документ на печать.

О том, как вставить поля в колонтитулы, я подробно описал в заметке Как вставить название главы в колонтитул.

 

Чтобы вставить поле FileName с включением пути к файлу, в меню Вставка выберите команду Поле, в открывшемся окне выберите категорию О документе, а в списке поля выберите поле FileName.

Далее последовательно нажмите кнопку коды поля, а затем кнопку Параметры. Откроется диалоговое окно Параметры поля:

 

Диалоговое окно Параметры поля

 

Перейдите на вкладку Ключи, выберите строку с ключом p и нажмите кнопку Добавить. Нажатием кнопки ОК закройте все окна. Путь к файлу будет вставлен в колонтитул.

 

Если вы работаете в редакторе Word 2007, то на вкладке Вставка в группе команд Текст нажмите кнопку Экспресс-блоки и в раскрывшемся списке выберите команду Поле. Повторите вышеописанные действия для вставки поля в колонтитул.

 

Кроме ручной вставки поля в колонтитулы, можно воспользоваться и специальным макросом, приведенным ниже. Вы можете вставить либо только имя текущего документа, либо путь и имя.

Если вам нужно только имя, то удалите в коде знак комментария («'») у оператора

.Fields.Add Range:=hfRange, Type:=wdFieldFileName, Text:="FILENAME"

и поставьте такой значок у нижнего оператора

.Fields.Add Range:=hfRange, Type:=wdFieldEmpty, Text:="FILENAME \p"

Sub filenametofooter()
'Вставка в нижний колонтитул пути и имени активного документа
Dim hfRange As Range 'диапазон колонтитулов
Set hfRange = ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range
With hfRange
   .Delete
'   .Fields.Add Range:=hfRange, Type:=wdFieldFileName, Text:="FILENAME" 'поле имени файла или
   .Fields.Add Range:=hfRange, Type:=wdFieldEmpty, Text:="FILENAME  \p" 'поле пути и имени файла
End With
ActiveDocument.ActiveWindow.View.ShowFieldCodes = False  'скрываем коды полей, если они отображались
ActiveWindow.View.Type = wdPrintView    'переключаемся в режим Разметка страницы
ActiveWindow.View.Zoom.PageFit = wdPageFitBestFit  'формат по ширине страницы
End Sub

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru rutvit.ru myspace.com technorati.com digg.com friendfeed.com pikabu.ru blogger.com liveinternet.ru livejournal.ru memori.ru google.com bobrdobr.ru mister-wong.ru yahoo.com yandex.ru del.icio.us

Еще записи по вопросам использования Microsoft Word:

Комментариев: 14

  1. Николай
    13.07.2009 в 08:55 | #1

    Здравствуйте. Каким способом можно поменять шрифт текста который вставляется в этот колонтитул, и есть ли возможность чтобы имя файла было с расширением. Спасибо.

  2. 13.07.2009 в 09:23 | #2

    Вместо этой строки

    .Fields.Add Range:=hfRange, Type:=wdFieldEmpty, Text:="FILENAME  \p" 'поле пути и имени файла

    вставьте такие:

    'Это вставит имя файла с расширением
      .InsertAfter Mid(ThisDocument.FullName, InStrRev(ThisDocument.FullName, "\") + 1)
      'Это изменит шрифт
      .Font.Name = "courier"

    Имя файла вставится не полем, но, думаю, что это несущественно в данном случае.

  3. Николай
    13.07.2009 в 10:21 | #3

    Sub filenametofooter()

    'Вставка в нижний колонтитул пути и имени активного документа

    Dim hfRange As Range 'диапазон колонтитулов

    Set hfRange = ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range

    With hfRange

    .Delete

    'Это вставит имя файла с расширением

    .InsertAfter Mid(ThisDocument.FullName, InStrRev(ThisDocument.FullName, "\") + 1)

    'Это изменит шрифт

    .Font.Name = "courier"

    End With

    ActiveDocument.ActiveWindow.View.ShowFieldCodes = False 'скрываем коды полей, если они отображались

    ActiveWindow.View.Type = wdPrintView 'переключаемся в режим Разметка страницы

    ActiveWindow.View.Zoom.PageFit = wdPageFitBestFit 'формат по ширине страницы

    End Sub

    В итоге выщло такое, но пишет не назву файла а назву шаблона (Normal.dotm). Каким способом сделать чтоб имя файла было только на 1-й странице а не на всех?

    Спасибо.

  4. 13.07.2009 в 11:54 | #4

    Замените ThisDocument на ActiveDocument. У вас макрос наверное в шаблоне лежит

  5. 13.07.2009 в 11:57 | #5

    Николай, а разве в первом макросе в заметке имя файла вставляется без расширения? Вставляется полный путь с полным именем файла.

    P.S. Не заметил, что нужно только имя файла...

  6. 13.07.2009 в 12:02 | #6

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

  7. 13.07.2009 в 12:12 | #7

    А чтобы оставить только имя файла, надо из кода макроса убрать у строки

    .Fields.Add Range:=hfRange, Type:=wdFieldFileName, Text:="FILENAME \p"

    ключ \р, чтобы получилось так:

    .Fields.Add Range:=hfRange, Type:=wdFieldFileName, Text:="FILENAME"

  8. Николай
    13.07.2009 в 12:27 | #8

    Спасибо большое, помогло. А как снять параметр для колонтитулов "Как в предыдущем"?

  9. 13.07.2009 в 12:31 | #9

    Вот ссылка на статью:

    http://wordexpert.ru/page/kak-vstavit-nazvanie-glavyi-v-kolontitul

    А это список статей по колонтитулам:

    http://wordexpert.ru/page/10-poleznyx-zametok-o-kolontitulax

  10. Иван
    30.03.2010 в 10:55 | #10

    а как вставить только одно имя файла без расширения?

  11. Дмитрий
    15.07.2010 в 03:07 | #11

    Ну скажите пожалуйста, как же все таки вставить только одно имя файла без расширения?

  12. 15.07.2010 в 09:30 | #12

    К сожалению, никак. Вставьте с расширением. Затем расширение с точкой выделите и нажмите Shift+Ctrl+H, чтобы сделать выделенный текст невидимым.

  13. Александр
    17.12.2010 в 11:50 | #13

    Скажите пожалуйса. Возможно ли сделать такую махинацию. необходимо в нижнем поле добавить макрос с полным путем к файлу но с динамическим обновлением содержимого. Т.е. сохраняю я к примеру на рабочем столе файл и автоматом прописывается путь к фалйлу "C:\Documents and Settings\SSS\Рабочий стол\022908 бланк.doc" если я обращаюсь к файлу сохраненному на рабочем столе и пересохраняю его по новому пути к примеру "D:\мои документы" путь в файле не изменяется остается пердыдущий "C:\Documents and Settings ... и т.д" возможн ли установить дополнительным параметром при сохранении документа проверка имени пути и его обновления???? Возможно я что-то упустил прошу прощения если не дочитался. Спасибо за статью.

  14. 17.12.2010 в 21:28 | #14

    Под "нижним полем" вы, видимо, подразумеваете нижний колонтитул. Вставляете поле, как описано в заметке, а вот чтобы это поле автоматически обновлялось, необходимо принудительное воздействие. Например, автомакросы, типа AutoOpen или же самостоятельное обновление поля с помощью макроса.

    Подробнее можно почитать здесь:

    Автоматическое обновление полей при открытии документа

Оставьте комментарий!

(обязательно)

^ Наверх