كود انشاء قائمة بأسماء الكائنات ومكانها داخل المشروع
هل يمكنك معرفة اسماء الكائنات ومكانها داخل مشروع العمل ؟
يمكننا من خلال شفرة برمجية معرفة اسم كل موديول ويوزرفورم ...الخ ومكانه داخل المصنف
الشفرة التالية تقوم بذلك
الخطوات- اضغط على ALT+F11
- من قائمة Tools >> References
- حدد المرجع
- Microsoft Visual Basic For Applicitions Extenibility 5.3
- ثم OK >> الحفظ >> اغلق المصنف وأعد فتحه وتأكد من أنه تم تفعيل المكتبة
- على يسار نافذة المحرر اضغط كليك يمين
- اختر Insert Module
- قم بكتابة الشفرة التالية وكذلك الدالة البرمجية المعرفة
- انشأ زر داخل ورقة العمل وقم بربطه باسم الشفرة ListModules
الشفرة والدالة كالتالي
Sub ListModules()
Dim VBProj As VBProject
Dim VBComp As VBComponent
Dim WS As Worksheet
Dim Rng As Range
Set VBProj = ActiveWorkbook.VBProject
Set WS = ActiveWorkbook.Worksheets("Mzm1")
Set Rng = WS.Range("A2")
For Each VBComp In VBProj.VBComponents
[A1].Value = "Name-Component"
[B1].Value = "Type-Component"
Rng(1, 1).Value = VBComp.Name
Rng(1, 2).Value = ComponentTypeToString(VBComp.Type)
Set Rng = Rng(2, 1)
Next VBComp
End Sub
Function ComponentTypeToString(ComponentType As VBIDE.vbext_ComponentType) As String
Select Case ComponentType
Case vbext_ct_ClassModule
ComponentTypeToString = "Class Module"
Case vbext_ct_Document
ComponentTypeToString = "Document Module"
Case vbext_ct_MSForm
ComponentTypeToString = "UserForm"
Case vbext_ct_StdModule
ComponentTypeToString = "Code Module"
Case Else
ComponentTypeToString = "Unknown Type: " & CStr(ComponentType)
End Select
End Function
الورقة المسماه ("Mzm1") يمكنك كتابة اسم (تسمية) اى ورقة بالمصنف لديك بدلا من ذلك
سينتج بداخلها قائمة مكونة من عمودين
العمود الأول باسم Name-Component بالخلية A1
به اسماء كل كائن موجود داخل مشروع العمل ويقابله النوع بالعمود الثاني
العمود الثاني باسم Type-Component بالخلية B1
به نوع كل كائن موجود داخل مشروع العمل
الداله (UDF) المعرفة باسم ComponentTypeToString خاصة بتحديد نوع الكائن وبدونها لن يعمل الكود
لتحميل النموذج أو الأكواد