جو پرسید که آیا راهی برای تعیین اینکه چه کسی یک کتاب کار خاص باز است، در یک ماکرو وجود دارد؟ او به استفاده از ویژگی WriteReservedBy فکر کرد، اما به نظر نمیرسد اطلاعات مورد نیاز او را داشته باشد.
متأسفانه، هیچ راهی برای تعیین این اطلاعات از VBA وجود ندارد - فقط در دسترس نیست. ویژگی WriteReservedBy نشان نمی دهد که چه کسی یک فایل باز دارد. نشان می دهد که چه کسی کتاب کار را با استفاده از رمز عبور ذخیره کرده است. به عبارت دیگر، هنگامی که شخصی یک کتاب کار را با گزینه داشتن رمز عبور برای تغییر آن ذخیره می کند، فایل "WriteReserved" است. ویژگی WriteReservedBy حاوی نام شخصی است که فایل را در حالت WriteReserved ذخیره کرده است.
اگر فقط نیاز دارید پاسخ (درباره افرادی که فایل را باز کرده است) به صورت دوره ای بدانید، ساده ترین کار این است که لیستی از نام فایل های باز را جمع آوری کنید و از مدیر شبکه بخواهید که به شما بگوید چه کسی آنها را باز کرده است - چنین اطلاعاتی در شبکه و قابل دسترسی برای ادمین
راه حل بالقوه دیگر اضافه کردن یک ماکرو AutoOpen به هر کتاب کار است که یک فایل موقت روی دیسک می نویسد که حاوی نام شخصی است که فایل را باز می کند. ماکرو نه تنها باید فایل موقت را باز کند، بلکه باید شرایط خطا را نیز مدیریت کند، مانند فایل موقتی که از قبل باز شده است. سپس میتوان به فایل موقت توسط ماکروهای دیگر دسترسی پیدا کرد تا نامی که در آن وجود دارد را ببیند.
ماکرو موجود در سایت زیر ممکن است راه حل دیگری برای یافتن اینکه چه کسی یک کتاب کار خاص را باز کرده است ارائه دهد:
https://bizintelsolutions.wordpress.com/2015/01/26/who-is-in-excel-xlsx-file/
یک مکان اضافی که ممکن است پاسخ را در خود جای دهد، سایت VBNet است. مقاله در این صفحه حاوی کدهایی است که ممکن است برای اطلاعات مورد نظر سازگار باشد:
http://vbnet.mvps.org/index.html?code/network/netfileenum.htm
توجه داشته باشید که این کد فقط در نسخه های قدیمی ویندوز کار می کند. این باید در نسخههای جدید تا ویندوز 7 به خوبی کار کند، اما وقتی نوبت به نسخههای بعدی میرسد، به آرامی کار میکند - باید آن را به طور کامل آزمایش کنید تا مطمئن شوید که در محیط شما کار میکند.