كيفية منع موجه "حفظ التغييرات" عند إغلاق مصنف في Excel


ملخص


في Microsoft Excel، يمكنك إنشاء Microsoft Visual Basic for Applications (VBA) الماكرو الذي يمنع موجه "حفظ التغييرات" عند إغلاق مصنف. يمكنك القيام بذلك أما بتحديد حالة خاصية محفوظ المصنف أو بمنع كافة التنبيهات الخاصة بالمصنف.

مزيد من المعلومات


تقدم Microsoft أمثلة برمجية للتوضيح فقط، دون أي ضمان صريح أو ضمني. هذا يتضمن، على سبيل المثال لا الحصر، الضمانات الضمنية الخاصة بالتسويق أو الملاءمة لغرض معين. تفترض هذه المقالة أنك معتاد على لغة البرمجة التي يتم شرحها والأدوات المستخدمة لإنشاء الإجراءات وتصحيحها. يساعد مهندسو الدعم لدى Microsoft شرح وظيفة إجراء محدد. ومع ذلك، لن يقوموا بتعديل هذه الأمثلة لتقديم وظيفة إضافية أو إنشاء إجراءات تستوفي متطلبات محددة.

تستخدم الأمثلة التالية، اتبع الخطوات التالية:
  1. بدء تشغيل Excel وفتح مصنف جديد.
  2. اضغط ALT + F11 لبدء تشغيل محرر Visual Basic.
  3. من القائمة إدراج ، انقر فوق الوحدة.
  4. اكتب التعليمات البرمجية للماكرو عينة في ورقة وحدة نمطية.
  5. اضغط ALT + F11 للعودة إلى Excel.
  6. في Microsoft Office Excel 2003 وفي الإصدارات السابقة من Excel، أشر إلى ماكرو في قائمة " أدوات " ومن ثم انقر فوق وحدات الماكرو.

    في Microsoft Office Excel 2007، انقر فوق وحدات ماكرو في مجموعة التعليمات البرمجية ضمن علامة التبويب المطور .

    ملاحظة: في حالة عدم توفر علامة التبويب المطور ، النظر في الخطوات التالية:
    1. انقر فوق زر Microsoft Office، ومن ثم انقر فوق خيارات Excel.
    2. في الفئة شائع ، وضمن أفضل الخيارات لاستخدام Excel، انقر لتحديد خانة الاختيار إظهار علامة تبويب المطور في الشريط ، ومن ثم انقر فوق موافق.
  7. حدد الماكرو الذي تريده، وانقر فوق تشغيل.
الخاصية محفوظ بإرجاع قيمة خطأ إذا تم إجراء تغييرات على مصنف منذ آخر عملية حفظ.


يمكنك استخدام اسم محجوز روتين فرعي "Auto_Close" لتحديد ماكرو الذي يجب تشغيله عند إغلاق مصنف. عند القيام بذلك، يمكنك التحكم في كيفية معالجة المستند عند انتهاء المستخدم وأصدرت تعليمات Excel لإغلاق المستند.

مثال 1: إغلاق المصنف دون حفظ التغييرات

لفرض مصنف على الإغلاق دون حفظ أية تغييرات، اكتب التعليمة البرمجية التالية في الوحدة نمطية ل Visual Basic من هذا المصنف:

Sub Auto_Close()
ThisWorkbook.Saved = True
End Sub
نظراً لتعيين خاصية محفوظ إلى True، يستجيب Excel كما لو تم حفظ المصنف الفعل ولم يطرأ منذ أن حفظ آخر.


يمكن استخدام الخاصية DisplayAlerts البرنامج لنفس الغرض. على سبيل المثال، الماكرو التالي إيقاف تشغيل DisplayAlerts وإغلاق المصنف دون حفظ التغييرات، وثم تشغيل DisplayAlerts مرة أخرى.

Sub CloseBook()
Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub
يمكنك أيضا استخدام الوسيطة SaveChanges للأسلوب Close .


الماكرو التالي إغلاق المصنف دون حفظ التغييرات:

Sub CloseBook2()
ActiveWorkbook.Close savechanges:=False
End Sub

مثال 2: إغلاق المصنف وحفظ التغييرات

لفرض مصنف لحفظ التغييرات، اكتب التعليمة البرمجية التالية في الوحدة نمطية ل Visual Basic من هذا المصنف:

Sub Auto_Close()
If ThisWorkbook.Saved = False Then
ThisWorkbook.Save
End If
End Sub
هذا subprocedure بالتحقق مما إذا تم تعيين الخاصية محفوظ للملف إلى False. إذا كان الأمر كذلك، تم تغيير المصنف منذ الحفظ الأخير، ويتم حفظ هذه التغييرات.