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

ویلیام باید نام فایل را در جدولی وارد کند که در کادر متنی در پاورقی یک سند قرار دارد (الزام مشتری برای انجام این کار است). او می‌خواهد هر بار که سند را ذخیره می‌کند، نام فایل به‌طور خودکار به‌روزرسانی شود، یا حداقل زمانی که از «Save As» برای ایجاد یک فایل جدید استفاده می‌کند. ویلیام یک فیلد FILENAME را وارد کرده است، اما همچنان باید به خاطر داشته باشد که پاورقی را باز کرده و روی آن کلیک کرده و برای به‌روزرسانی آن، F9 را فشار دهید. او ترجیح می دهد که این کار را به طور خودکار انجام دهد.

از لحاظ تاریخی، Word با این درک توسعه داده شد که اسناد شما در نهایت چاپ می شوند. (این قبل از روزهای انجام بیشتر کارها به صورت آنلاین، الکترونیکی بود.) یکی از مصنوعات مربوط به این درک تاریخی این است که ورد تا زمانی که به چاپ نروید، فیلدها را به روز نمی کند. بنابراین، وقتی کارهای دیگر را انجام می دهید، فیلدها به روز نمی شوند. مانند ذخیره یا استفاده از Save As.

با در نظر گرفتن این درک، چند کار وجود دارد که می توانید انجام دهید. اول این است که Word را فریب دهید تا فکر کند در حال چاپ هستید. با این حال، قبل از انجام این "فریب"، باید این مراحل را دنبال کنید:

image

شکل 1. گزینه های نمایش کادر محاوره ای Word Options.

image

شکل 2. تنظیمات چاپ در کادر محاوره ای Word Options.

  1. کادر محاوره ای Word Options را نمایش دهید. (در Word 2007 روی دکمه Office کلیک کنید و سپس Word Options را کلیک کنید. در Word 2010 و نسخه های بعدی، تب File را در نوار نمایش داده و سپس روی گزینه ها کلیک کنید.)
  2. در سمت چپ کادر محاوره ای روی Display کلیک کنید. (شکل 1 را ببینید.)
  3. مطمئن شوید که کادر بررسی به‌روزرسانی فیلدها قبل از چاپ انتخاب شده است.
  4. روی Advanced در سمت چپ کادر گفتگو کلیک کنید.
  5. به پایین اسکرول کنید تا قسمت Print را ببینید. (شکل 2 را ببینید.)
  6. اطمینان حاصل کنید که کادر بررسی Allow Fields Containing Tracked Changes to Update Before Printing انتخاب شده باشد.
  7. برای ذخیره تغییرات روی OK کلیک کنید.

اکنون تنها کاری که باید انجام دهید زمانی که می خواهید فیلدها را به روز کنید این است که Ctrl+P را فشار دهید . این کادر محاوره ای چاپ (Word 2007) یا گزینه های چاپ (نسخه های بعدی Word) را نمایش می دهد. هنگامی که به این مرحله رسیدید، فیلدهای سند باید به روز شوند زیرا Word پیش بینی می کند که شما می خواهید چاپ کنید. می‌توانید Esc را فشار دهید یا روی زبانه صفحه اصلی نوار کلیک کنید تا چاپ متوقف شود، و باید توجه داشته باشید که تمام فیلدهای سند شما به‌روزرسانی می‌شوند. (خب، همه فیلدها به جز فیلد برای ایجاد یک TOC استفاده می شود. این یک مورد خاص است که در آن واقعاً باید چاپ کنید، نه اینکه فقط از پیش نمایش چاپ استفاده کنید.)

همچنین می توانید از یک ماکرو برای انجام این کارها استفاده کنید. ماکرو زیر تنظیمات را در کادر محاوره‌ای Word Options تغییر نمی‌دهد، اما به اندازه کافی توالی چاپ را انجام می‌دهد که Word را فریب می‌دهد تا فیلدها را به‌روزرسانی کند.

Sub UpdateAllFields()
    With ActiveDocument
        .PrintPreview
        .ClosePrintPreview
    End With
End Sub

در صورت تمایل، رویکرد کلان دیگری نیز وجود دارد که می توانید از آن استفاده کنید. این رویکرد هرگونه حقه‌بازی را دور می‌زند و در عوض، هر یک از «داستان‌های» یک سند را طی می‌کند و هر فیلد موجود در آن داستان‌ها را به‌روزرسانی می‌کند. («داستان» بهتر است به عنوان یک لایه در سند شما مشاهده شود. سند اصلی یک داستان است، سرصفحه ها و پاورقی ها دیگر، گرافیک ها دیگر، و غیره.) در واقع از دو ماکرو در این رویکرد استفاده می شود. برای شروع فرآیند به روز رسانی، ماکرو UpdateAllFields را اجرا کنید.

Sub UpdateAllFields()
    Dim objStory As Range
    Dim objTOC As TableOfContents
    Dim objTOA As TableOfAuthorities
    Dim objTOF As TableOfFigures
    Dim objIndex As Index

    Application.ScreenUpdating = False
    Application.DisplayAlerts = wdAlertsNone

    For Each objStory In ActiveDocument.StoryRanges
        UpdateFieldsInStory objStory

        While Not (objStory.NextStoryRange Is Nothing)
            Set objStory = objStory.NextStoryRange
            UpdateFieldsInStory objStory
        Wend
    Next
       
    For Each objTOC In ActiveDocument.TablesOfContents
        objTOC.Update
    Next

    For Each objTOA In ActiveDocument.TablesOfAuthorities
        objTOA.Update
    Next

    For Each objTOF In ActiveDocument.TablesOfFigures
        objTOF.Update
    Next

    For Each objIndex In ActiveDocument.Indexes
        objIndex.Update
    Next

    Application.DisplayAlerts = wdAlertsAll
    Application.ScreenUpdating = True
End Sub
Private Sub UpdateFieldsInStory(iobjStory As Range)
    Dim objShape As Shape

    With iobjStory
        .Fields.Update

        Select Case .StoryType
            Case wdMainTextStory, wdPrimaryHeaderStory, _
              wdPrimaryFooterStory, wdEvenPagesHeaderStory, _
              wdEvenPagesFooterStory, wdFirstPageHeaderStory, _
              wdFirstPageFooterStory

                For Each objShape In .ShapeRange
                    With objShape.TextFrame
                        If .HasText Then .TextRange.Fields.Update
                    End With
                Next
        End Select
    End With
End Sub

اگر می خواهید اطلاعات بیشتری در مورد به روز رسانی فیلدها با استفاده از ماکروها بیابید، ممکن است بخواهید از این صفحه در سایت Greg Maxey بازدید کنید؛ به بخش تحت عنوان "به روز رسانی فیلدها" توجه ویژه ای داشته باشید:

http://gregmaxey.mvps.org/word_tip_pages/word_fields.html

همانطور که می توانید بگویید، به روز رسانی همه فیلدها در یک سند لزوما آسان نیست. به نظر می رسد که مایکروسافت می تواند به راحتی چنین قابلیتی را اضافه کند، اما حتی با وجود سال ها زیر پل، Word همچنان فاقد چنین قابلیتی است.

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

پاسخ شما

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

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

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

سوالات مشابه

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما
0 دوستدار 0 امتیاز منفی
0 پاسخ 26 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 32 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 26 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 31 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 18 visibility

24.3k سوال

9.6k پاسخ

614 دیدگاه

11.2k کاربر

139 نفر آنلاین
0 عضو و 139 مهمان در سایت حاضرند
بازدید امروز: 957
بازدید دیروز: 25180
بازدید کل: 20338314
...