Vba: تحقق مما إذا كان المصنف مفتوحًا (مع مثال)


يمكنك استخدام بناء الجملة التالي في VBA للتحقق مما إذا كان مصنف معين مفتوحًا حاليًا.

 SubCheckWorkbookOpen ()

Dim resultCheck As Boolean
Dim wb As Workbook
Dim specific_wb As String
    
On Error Resume Next
specific_wb = InputBox("Check if this workbook is open:")
    
Set wb = Application.Workbooks.Item(specific_wb)
resultCheck = Not wb Is Nothing

If resultCheck Then
    MsgBox “Workbook is open”
Else
MsgBox “Workbook is not open”
End If
    
End Sub

عند تشغيل هذا الماكرو، سيظهر مربع إدخال حيث يمكن للمستخدم كتابة اسم مصنف Excel وسينتج الماكرو مربع رسالة بإحدى النتائج التالية:

  • “الملف مفتوح”
  • “الملف غير مفتوح”

يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.

مثال: كيفية التحقق مما إذا كان المصنف مفتوحًا باستخدام VBA

لنفترض أن لدينا حاليًا مصنفين مفتوحين بالأسماء التالية:

  • my_workbook1.xlsx
  • my_workbook2.xlsx

لنفترض أننا نريد التحقق مما إذا كان المصنف المسمى my_workbook1.xlsx مفتوحًا حاليًا.

يمكننا إنشاء الماكرو التالي للقيام بذلك:

 SubCheckWorkbookOpen ()

Dim resultCheck As Boolean
Dim wb As Workbook
Dim specific_wb As String
    
On Error Resume Next
specific_wb = InputBox("Check if this workbook is open:")
    
Set wb = Application.Workbooks.Item(specific_wb)
resultCheck = Not wb Is Nothing

If resultCheck Then
    MsgBox “Workbook is open”
Else
MsgBox “Workbook is not open”
End If
    
End Sub

بمجرد تشغيل هذا الماكرو، سيظهر مربع حيث يمكنني كتابة my_workbook1.xlsx في مربع الإدخال:

بمجرد النقر فوق “موافق” ، سينتج عن الماكرو مربع الرسالة التالية:

يعرض الماكرو بشكل صحيح “المصنف مفتوح” للإشارة إلى أن المصنف بهذا الاسم مفتوح حاليًا.

لنفترض الآن أنني كتبت اسم المصنف غير المفتوح حاليًا:

بمجرد النقر فوق “موافق” ، سينتج عن الماكرو مربع الرسالة التالية:

يعرض الماكرو بشكل صحيح “المصنف غير مفتوح” للإشارة إلى أن المصنف بهذا الاسم ليس مفتوحًا حاليًا.

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في VBA:

VBA: كيفية حساب عدد الأوراق في المصنف
فبا: كيفية إدراج أعمدة متعددة
VBA: كيفية إدراج أسطر متعددة

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *