Ограничение каталогов в поле FILENAME (Microsoft Word)
Поле FILENAME позволяет вам вставить имя файла документа в сам документ. Если вы используете переключатель / p с полем, вы получите не только имя файла, но и полный путь к нему:
{ FILENAME /p }
Как вы понимаете, имя пути может быть довольно длинным, в зависимости от того, как организован ваш жесткий диск и где вы сохранили документ. По этой причине вы можете захотеть выборочно выбрать, какие уровни пути будут включены в то, что возвращает FILENAME. Например, следующее может быть полным именем пути к документу:
C:\My Documents and Settings\Level1\Level2\Level3\Level4\Doc1.docx
Вы можете ограничить отображаемые уровни каталогов, как показано в этих двух примерах:
\Level2\Level3\Level4\Doc1.docx \Level1\Level2\Level3\Level4\Doc1.docx
К сожалению, это невозможно сделать с помощью самого поля FILENAME; он просто не включает эту возможность. Единственное решение — создать макрос, который определяет имя пути и вставляет нужные уровни в документ. Например, следующий макрос вставит в точку вставки желаемое количество уровней каталогов для текущего файла:
Sub SelectPaths() Dim sPath As String Dim sName As String Dim sFull As String Dim sPart As String Dim sMsg As String Dim sTemp As String Dim iLevels As Integer Dim J As Integer sPath = ActiveDocument.Path If sPath = "" Then MsgBox "Need to save before running this macro.", _ vbOKOnly, "This Document Not Saved" Else sPath = sPath & Application.PathSeparator sName = ActiveDocument.Name sFull = sPath & sName sMsg = "This is the full path:" & vbCrLf sMsg = sMsg & sFull & vbCrLf & vbCrLf sMsg = sMsg & "How many levels do you want, counting " sMsg = sMsg & "from right to left?" sTemp = InputBox(sMsg) iLevels = Val(sTemp) sPart = "" If iLevels > 0 Then For J = Len(sFull) To 1 Step -1 If Mid(sFull, J, 1) = Application.PathSeparator Then iLevels = iLevels - 1 If iLevels = 0 Then sPart = Mid(sFull, J, 255) Exit For End If End If Next J End If Selection.TypeText (sPart) End If End Sub
Если документ не был сохранен, макрос не запустится. Он работает, по существу, подсчитывая количество разделителей пути (косая черта), начиная с конца пути. Затем он вставляет только часть пути от этой точки вперед.
Недостатком такого макроса, конечно же, является то, что он не является динамическим, как поля. Он просто вставляет текст. Если вы позже измените расположение документа или измените имя документа, вам необходимо повторно запустить макрос, чтобы вставить новый текст пути.
Если ваша причина вставки только части пути состоит в том, что путь слишком длинный, когда включен полностью, вы можете воспользоваться другим подходом. Почему бы просто не уменьшить размер точки неважного участка пути. Например, предположим, что вы используете поле FILENAME для вставки пути, и он выглядит следующим образом:
C:\My Documents and Settings\Level1\Level2\Level3\Level4\Doc1.docx
Если вы хотите скрыть часть слева от «Level2», просто выделите этот текст в поле результатов и отформатируйте его как очень маленький размер точки. Если вы установите размер кегля примерно в 6 или 7 пунктов, ослабленная часть по-прежнему будет читаема, но полный путь не займет столько линейного пространства в вашем документе. Если вы хотите, чтобы ослабленная часть практически исчезла, вы можете установить размер точки на 1 точку.
_Примечание: _
Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
WordTips — ваш источник экономичного обучения работе с Microsoft Word.
(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (13292) относится к Microsoft Word 2007, 2010, 2013, 2016, 2019 и Word в Office 365. Вы можете найти версию этого совета для старый интерфейс меню Word здесь:
link: / word-Limiting_Directories_in_the_FILENAME_Field [Ограничение каталогов в поле FILENAME]
.