فیلد FILENAME به شما امکان می دهد نام فایل سند را در خود سند وارد کنید. اگر از سوئیچ /p با فیلد استفاده کنید، نه تنها نام فایل، بلکه مسیر کامل فایل را نیز دریافت خواهید کرد:
{ FILENAME /p }
همانطور که می توانید تصور کنید، بسته به نحوه سازماندهی هارد دیسک و محل ذخیره سند، نام مسیر می تواند نسبتا طولانی باشد. به همین دلیل، ممکن است بخواهید به طور انتخابی انتخاب کنید که کدام سطوح از مسیر در آنچه FILENAME برمیگرداند گنجانده شود. برای مثال، موارد زیر ممکن است نام مسیر کامل سند باشد:
C:My Documents and SettingsLevel1Level2Level3Level4Doc1.docx
ممکن است بخواهید سطوح نمایش داده شده دایرکتوری را محدود کنید، همانطور که در این دو مثال نشان داده شده است:
Level2Level3Level4Doc1.docx
Level1Level2Level3Level4Doc1.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 SettingsLevel1Level2Level3Level4Doc1.docx
اگر میخواهید قسمت سمت چپ «Level2» را پنهان کنید، کافی است آن متن را در نتایج فیلد انتخاب کنید و آن را به اندازه نقطه بسیار کوچک قالببندی کنید. اگر اندازه نقطه را چیزی در حدود 6 یا 7 نقطه قرار دهید، قسمت بدون تاکید همچنان خوانا است، اما مسیر کامل آنقدر فضای خطی را در سند شما اشغال نمی کند. اگر می خواهید بخش بدون تاکید اساسا ناپدید شود. ، می توانید اندازه نقطه را روی 1 نقطه تنظیم کنید یا فقط آن را به عنوان متن پنهان فرمت کنید.