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

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

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


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

Как настроить 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 Google Buzz google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru]]>

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

  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, чтобы сделать выделенный текст невидимым.

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

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

Number one designer
^ Наверх