ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
10 visibility
موضوع: آفیس توسط:

فیلد 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 نقطه تنظیم کنید یا فقط آن را به عنوان متن پنهان فرمت کنید.

اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

برای جلوگیری از این تایید در آینده, لطفا وارد شده یا ثبت نام کنید.
اگر حساب گوگل دارید به راحتی وارید شوید

0 پاسخ وجود دارد

سوال مشابهی یافت نشد

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما

23.2k سوال

8.5k پاسخ

608 دیدگاه

9.8k کاربر

63 نفر آنلاین
0 عضو و 63 مهمان در سایت حاضرند
بازدید امروز: 10457
بازدید دیروز: 22315
بازدید کل: 15633282
...