گری یک ورک بوک فقط خواندنی دارد که چندین کاربر می توانند به آن دسترسی داشته باشند. آنها می توانند سلول ها را تغییر دهند اما کار خود را ذخیره نمی کنند. هنگام خروج از ورک بوک، گری می خواهد اکسل بدون اطلاع کاربر که فقط خواندنی است بسته شود و به او امکان ذخیره یک نسخه را بدهد.
این بهترین کار با استفاده از یک ماکرو برای تغییر پرچم ذخیره شده در ورک بوک، درست قبل از بسته شدن است. این پرچم به صورت داخلی نشان می دهد که آیا یک ورک بوک نیاز به ذخیره دارد یا خیر. اگر پرچم False باشد، اکسل می داند که ورک بوک ذخیره نشده است (تغییرات بدون ذخیره انجام شده است). اگر ماکرو شما پرچم را روی True تنظیم کند، اکسل مستقیماً بسته می شود زیرا فکر می کند همه تغییرات ذخیره شده اند.
این ماکرو در ساده ترین حالت باید چگونه باشد:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If ThisWorkbook.ReadOnly Then
ThisWorkbook.Saved = True
End If
End Sub
ماکرو باید به شی ThisWorkbook در ویرایشگر VBA اضافه شود. به این ترتیب، درست قبل از بسته شدن ورک بوک به طور خودکار اجرا می شود. پرچم روی True تنظیم شده است، و هنگامی که ماکرو به پایان می رسد، اکسل به مراحل عادی بسته شدن خود ادامه می دهد. از آنجایی که اکسل فکر می کند هیچ تغییر ذخیره نشده ای وجود ندارد، کاربر هیچ پیامی را نمی بیند و ورک بوک بسته می شود.