جری یک ماکرو برای کنترل نسخه ساخته است که از کاربر می پرسد آیا می خواهد سند را با شماره نسخه جدید ذخیره کند یا خیر. هنگامی که یک سند باز می شود به طور خودکار اجرا می شود. با این حال، جری ترجیح می دهد اجازه دهد که ماکرو تنها زمانی اجرا شود که یک سند واقعاً توسط کاربر تغییر یا تغییر داده شود. او از خود میپرسد که آیا رویدادی وجود دارد که وقتی یک سند واقعا ویرایش میشود، ثبت میشود؟ یا شاید ملکی وجود دارد که تغییر سند را ثبت کند؟
اتفاقی نیست، اما ملکی هست. کاری که می خواهید انجام دهید این است که ویژگی Saved هر سندی را که در حال پردازش هستید بررسی کنید. اگر ویژگی True باشد، هیچ تغییری ایجاد نشده است. اگر ویژگی False باشد، تغییرات ذخیره نشده ای وجود دارد. (به عبارت دیگر، حالت True of False ویژگی Saved نشان می دهد که آیا سند ذخیره شده است یا خیر.)
اگر میخواهید وقتی کاربر سند را میبندد، درخواست خود را درباره شماره نسخه انجام دهید، باید با کنترلکننده رویداد Document_Close کار کنید. کنترل کننده رویداد را طوری تغییر دهید که وضعیت ویژگی Saved را به این ترتیب بررسی کنید:
Private Sub Document_Close() If Not ActiveDocument.Saved ThenCheck to see if version should be updated ActiveDocument.Save End If End Sub
البته باید برای رسیدگی به آنچه باید نسبت به شماره نسخه رخ دهد، نظر را با کد خاص خود جایگزین کنید. روش Save برای ذخیره سند با نام فعلی استفاده می شود. اگر میخواهید آن را با نام جدیدی ذخیره کنید، در عوض از روش SaveAs استفاده میکنید.
یک هشدار وجود دارد که باید به خاطر بسپارید: ممکن است ویژگی Saved روی False تنظیم شود حتی اگر کاربر در واقع تغییری در سند ایجاد نکرده باشد. به عنوان مثال، اگر فیلدهایی در سند وجود داشته باشد و فیلدها به طور خودکار به روز شوند، ویژگی Saved روی False تنظیم می شود. چند موقعیت دیگر نیز وجود دارد که ویژگی تغییر می کند، اما ویژگی Saved دقیق ترین راه موجود برای تعیین اینکه آیا یک سند واقعاً تغییر کرده است یا خیر است.