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: كيفية إدراج أسطر متعددة