إجمالي مرات مشاهدة الصفحة

الاثنين، 23 مايو 2016

إجبار المستخدم على تفعيل الماكرو Force User To Enable Macros

السلام عليكم ورحمة الله وبركاته


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

لابد أولاً أن تعرف كيف يمكنك تفعيل الماكرو أو تعطيله .. يحدث ذلك من خلال التبويب Developer ثم Macro Security  كما بالصورة التالية 
يمكن تعطيل الماكرو من خلال أول خيار بالنافذة ، أو تفعيله من خلال آخر خيار بالنافذة

خطوات العمل :
أولاً : قم بإنشاء ورقة عمل جديدة في المصنف الخاص بك وأعطها أي اسم وليكن Warning (إذا أردت أن تسمي الورقة باسم آخر فقم بالتعديل في الكود في أول سطر منه فقط)

ثانياً : ضع في ورقة العمل التحذيرية جملة أو صورة أو ما يحلو لك ، كنوع من التنبيه للمستخدم في حالة عدم تمكين الماكرو (كما في الملف المرفق وضحت في الصورة أنه يجب على المستخدم تمكين الماكرو لكي يفتح المصنف)

ثالثاً : وأخيراً ضع الكود التالي في حدث المصنف (الذهاب لمحرر الأكواد عن طريق Alt + F11 ثم انقر دبل كليك في حدث المصنف ThisWorkbook ثم الصق الكود التالي

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

'قم بتعيين اسم ورقة العمل التحذيرية
Const Warning As String = "Warning"

Private Sub Workbook_Open()
    Dim Ws As Worksheet

    Application.ScreenUpdating = False
        For Each Ws In ThisWorkbook.Worksheets
            Ws.Visible = xlSheetVisible
        Next Ws
    
        Sheets(Warning).Visible = xlVeryHidden
    Application.ScreenUpdating = True
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim Ws As Worksheet

    Application.ScreenUpdating = False
        Sheets(Warning).Visible = xlSheetVisible
    
        For Each Ws In ThisWorkbook.Worksheets
            If Ws.Name <> Warning Then
                Ws.Visible = xlVeryHidden
            End If
        Next Ws
    Application.ScreenUpdating = True

    ActiveWorkbook.Save
End Sub

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

إعداد / ياسر خليل أبو البراء

هناك تعليقان (2):

  1. جزاك الله كل خير أخوي ياسر

    عملتها في الملف الخاص بي وتعمل بكفاءه

    ردحذف
  2. جزاكم الله خيرا ابو البراء الغالي

    ردحذف