Владимир знает, что может поместить имя файла документа в заголовок страницы. Однако он хотел бы, чтобы в заголовке отображались только последние пять символов имени файла (без расширения имени файла). Он подыскивает лучший способ выполнить задачу.

Единственный способ сделать это — использовать макрос; в Word нет встроенных функций для выполнения этой задачи. Макрос должен определить имя файла, захватить нужные символы и затем вставить их в заголовок. Однако есть потенциальные сложности с тем, что может показаться таким простым. Например, что, если документ не был сохранен и, следовательно, еще не имеет имени файла? Что делать, если документ был сохранен, но в имени файла меньше пяти символов?

Что делать макросу, если в шапке уже что-то есть?

Что делать, если пользователь просматривает документ в представлении, в котором не отображаются заголовки?

Чтобы справиться с такими вопросами, макросу необходимо сделать некоторые предположения.

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

Sub PartFilenameInHeader()

Dim sName As String     Dim J As Long

sName = ActiveDocument.Name     J = InStrRev(sName, ".")

If J > 0 Then         sName = Left(sName, J - 1)

If Len(sName) > 5 Then             sName = Right(sName, 5)

End If

If ActiveWindow.View.SplitSpecial <> wdPaneNone Then             ActiveWindow.Panes(2).Close         End If         If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _           ActivePane.View.Type = wdOutlineView Then             ActiveWindow.ActivePane.View.Type = wdPrintView         End If         ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader         Selection.WholeStory         Selection.Delete         Selection.TypeText Text:=sName         ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument     Else         MsgBox "Document has no filename extension."

End If End Sub

Макрос сначала проверяет, имеет ли документ настоящее имя файла (из свойства .Name объекта ActiveDocument). Если это так, то он извлекает пять (или меньше) символов из имени файла. Он проверяет, не открыто ли несколько панелей и находится ли документ в режиме макета печати. Затем он выбирает то, что в данный момент находится в заголовке, и заменяет его желаемыми символами из имени файла.

Помните, что макрос следует запускать один раз после сохранения документа и еще раз, если вы когда-либо сохраняли документ с другим именем файла.

_Примечание: _

Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

WordTips — ваш источник экономичного обучения работе с Microsoft Word.

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (13316) применим к Microsoft Word 2007, 2010, 2013, 2016, 2019 и Word в Office 365.