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

هنگام کار با اسناد طولانی که حاوی گرافیک هستند، استفاده از فیلد INCLUDEPICTURE برای درج تصاویر گرافیکی در سند غیرعادی نیست. اگر تعداد زیادی از این فیلدها در سند خود دارید، ممکن است بخواهید راهی برای ایجاد "لیست هنری" که شامل نام فایل های گرافیکی استفاده شده در سند باشد.

با استفاده از یک ماکرو نسبتا ساده، می‌توانید از هر نمونه از فیلد INCLUDEPICTURE در سند خود عبور کرده و فقط نام فایل‌های ارجاع‌شده را استخراج کنید. سپس می‌توان آن‌ها را به یک سند جدید اضافه کرد، به طوری که وقتی ماکرو انجام شد، سند جدید فقط حاوی فهرستی از فایل‌های ارجاع‌شده در فیلدهای INCLUDEPICTURE باشد. در اینجا یک ماکرو وجود دارد که این کار را انجام می دهد:

Sub GetIncludePictures()
    Dim oField As Field
    Dim oCurrentDoc As Document
    Dim oNewDoc As Document
    Dim sFileName As String

    Set oCurrentDoc = ActiveDocument
    Set oNewDoc = Application.Documents.Add

    For Each oField In oCurrentDoc.Fields
        If oField.Type = wdFieldIncludePicture Then
            sFileName = Replace(oField.Code, "INCLUDEPICTURE", "")
            sFileName = Replace(sFileName, "MERGEFORMAT", "")
            sFileName = Replace(sFileName, "*", "")
            sFileName = Replace(sFileName, "d", "")
            sFileName = Replace(sFileName, Chr(34), "")
            sFileName = Replace(sFileName, "\", "")
            sFileName = Trim(sFileName)
            oNewDoc.Range.InsertAfter sFileName & vbCrLf
        End If
    Next oField

    oNewDoc.Activate

    Set oField = Nothing
    Set oCurrentDoc = Nothing
    Set oNewDoc = Nothing
End Sub

به استفاده از تابع Replace چندین بار در ماکرو توجه کنید. این تابع، وقوع یک رشته در رشته دیگر را با متن دیگری جایگزین می کند. ممکن است گیج کننده به نظر برسد، اما بسیار مفید است. به عنوان مثال، تصور کنید که شما یک رشته (sMyString) دارید که حاوی کاراکترهای "This is my string" است و از موارد زیر استفاده می کنید:

SMyString = Replace(sMyString, "s", "X")

این باعث می شود که هر "s" کوچک در sMyString با یک "X" بزرگ جایگزین شود. نتیجه این است که sMyString اکنون حاوی "ThiX iX my Xtring" خواهد بود.

در مورد ماکرو GetIncludePictures، چندین خط حاوی توابع Replace برای حذف تمام کاراکترهای اضافی از کد فیلد، به جز نام فایل واقعی تصویر، کار می کنند. اگر می‌خواهید چیز دیگری حذف شود، می‌توانید خطوط بیشتری برای حذف آن عناصر اضافه کنید. (به عنوان مثال، اگر می خواهید یک نام مسیر استاندارد را برای جایی که تصاویر شما ذخیره می شود حذف کنید.)

هنگامی که ماکرو اجرا شد، تنها چیزی که در سند جدید وجود دارد باید نام تصاویر باشد، مانند مثال های زیر:

C:mypicspicture1.tif
..graphicschap01fig03.gif

اگر فقط نام فایل‌ها را می‌خواستید، و نه نام مسیرهای کامل، می‌توانید ماکرو GetIncludePictures را کمی تغییر دهید تا کدهایی را که مسیر را تجزیه می‌کنند، اضافه کنید. شما می توانید این کار را با اضافه کردن موارد زیر به ماکرو، درست بعد از خط sFileName = Trim(sFileName) انجام دهید:

            While Instr(sFileName, "") > 0
                sFileName = Mid(sFileName, Instr(sFileName, "") + 1)
            Wend
اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

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

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

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

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

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

23.2k سوال

8.5k پاسخ

613 دیدگاه

10.8k کاربر

183 نفر آنلاین
0 عضو و 183 مهمان در سایت حاضرند
بازدید امروز: 11991
بازدید دیروز: 13001
بازدید کل: 19466285
...