ملف كامل عن أداة الـ ListView في Excel VBA
تعتبر
أداة الـ ( ListView ) في Excel VBA تُستخدم لعرض
البيانات في شكل جدول أو قائمة داخل نموذج (UserForm). تُعتبر هذه
الأداة مفيدة لعرض البيانات بشكل منظم وسهل القراءة، حيث يمكنك إضافة أعمدة وصفوف وعناصر
مختلفة مثل الصور والنصوص.
إضافة
أداة الـ ListView إلى النموذج (UserForm)
1. فتح محرر VBA: اضغط على `Alt + F11` لفتح محرر VBA.
2. إضافة UserForm: من القائمة،
اختر `Insert`
ثم `UserForm`.
3. إضافة ListView: من صندوق الأدوات
(Toolbox)، اختر أداة
الـ ListView.
إذا لم تكن الأداة موجودة، يجب إضافتها يدويًا:
- انقر
بزر الماوس الأيمن على صندوق الأدوات واختر `Additional Controls`.
- من القائمة، ابحث عن `Microsoft ListView Control` وقم بتفعيله.
خصائص
الـ ListView الرئيسية
- View:
يحدد كيفية عرض البيانات (مثل `lvwReport`
لعرض البيانات في شكل جدول).
- ColumnHeaders:
يحدد ما إذا كانت العناوين الأعمدة معروضة أم لا.
- FullRowSelect:
يحدد ما إذا كان يمكن تحديد الصف بأكمله أم لا.
- Gridlines:
يحدد ما إذا كانت الخطوط الشبكية معروضة أم لا.
- MultiSelect: يحدد ما إذا كان يمكن تحديد أكثر من عنصر في الوقت نفسه.
إعداد
الـ ListView
لإعداد الـ ListView، يمكنك استخدام
الكود التالي في حدث `UserForm_Initialize`:
Private Sub UserForm_Initialize()
' إعداد خصائص الـ ListView
With ListView1
.View = lvwReport
.ColumnHeaders.Add , , "العمود 1", 50
.ColumnHeaders.Add
, , "العمود 2", 50
.ColumnHeaders.Add
, , "العمود 3", 50
.FullRowSelect =
True
.Gridlines = True
End With
' إضافة بيانات إلى الـ ListView
Dim item As ListItem
Set item = ListView1.ListItems.Add(, ,
"القيمة 1")
item.SubItems(1) =
"القيمة 2"
item.SubItems(2) =
"القيمة 3"
Set item =
ListView1.ListItems.Add(, , "القيمة 4")
item.SubItems(1) =
"القيمة 5"
item.SubItems(2) =
"القيمة 6"
End Sub
التعامل مع الأحداث
يمكنك التعامل مع الأحداث المختلفة للـ ListView مثل النقر على
عنصر أو تحديده:
Private Sub ListView1_Click()
' الحصول على العنصر المحدد
If
ListView1.SelectedItem Is Nothing Then Exit Sub
MsgBox "تم النقر على: " & ListView1.SelectedItem.Text
End Sub
إضافة صور إلى الـ ListView
يمكنك إضافة صور إلى الـ ListView باستخدام أداة
الـ ImageList:
1. أضف أداة الـ ImageList إلى النموذج.
2. قم بتحميل الصور في الـ ImageList.
3. قم بربط الـ ImageList بالـ ListView.
' Private Sub UserForm_Initialize()
' إعداد ImageList
With ImageList1
.ListImages.Add , "صورة1", LoadPicture("مسار الصورة 1")
.ListImages.Add ,
"صورة2", LoadPicture("مسار الصورة 2")
End With
' ربط ImageList بالـ ListView
ListView1.SmallIcons =
ImageList1
' إضافة عناصر مع صور
Dim item As ListItem
Set item = ListView1.ListItems.Add(, ,
"عنصر 1", "صورة1")
item.SubItems(1) =
"وصف 1"
Set item =
ListView1.ListItems.Add(, , "عنصر 2", "صورة2")
item.SubItems(1) =
"وصف 2"
End Sub
التخصيص المتقدم
- تغيير ألوان الخلفية والنصوص: يمكنك تغيير ألوان
الخلفية والنصوص للعناصر المحددة أو غير المحددة.
- تصفية البيانات: يمكنك تصفية البيانات المعروضة
في الـ ListView بناءً على معايير محددة.
- ترتيب البيانات: يمكنك ترتيب البيانات في الـ
ListView بناءً على الأعمدة.
مثال كامل
Private Sub
UserForm_Initialize()
' إعداد ListView
With ListView1
.View = lvwReport
.ColumnHeaders.Add , , "الاسم", 100
.ColumnHeaders.Add
, , "العمر", 50
.ColumnHeaders.Add
, , "البلد", 100
.FullRowSelect =
True
.Gridlines = True
End With
' إضافة بيانات
Dim item As ListItem
Set item = ListView1.ListItems.Add(, ,
"أحمد")
item.SubItems(1) =
"25"
item.SubItems(2) = "مصر"
Set item =
ListView1.ListItems.Add(, , "محمد")
item.SubItems(1) =
"30"
item.SubItems(2) = "السعودية"
End Sub
Private
Sub ListView1_Click()
If ListView1.SelectedItem Is Nothing Then
Exit Sub
MsgBox "الاسم: " & ListView1.SelectedItem.Text
& vbCrLf & _
"العمر: " &
ListView1.SelectedItem.SubItems(1) & vbCrLf & _
"البلد: " &
ListView1.SelectedItem.SubItems(2)
End Sub
وفى النهاية
تعتبر أداة الـ ListView في Excel VBA تُعتبر أداة قوية
لعرض البيانات بشكل منظم وسهل القراءة. يمكنك تخصيصها بشكل كبير لتلبي احتياجاتك الخاصة،
سواء كان ذلك لعرض البيانات البسيطة أو المعقدة.