VBA

الدرس التاسع: التعامل مع واجهات المستخدم (UserForms) في VBA

الدرس التاسع: التعامل مع واجهات المستخدم (UserForms) في VBA
الدرس التاسع: التعامل مع واجهات المستخدم (UserForms) في VBA

 الدرس التاسع: التعامل مع واجهات المستخدم (UserForms) في VBA

مقدمة

في هذا الدرس، سنتعرف على كيفية استخدام واجهات المستخدم (UserForms) في VBA لإنشاء تطبيقات تفاعلية. UserForms هي نوافذ منبثقة تتيح لك إضافة عناصر تفاعلية مثل الأزرار، القوائم المنسدلة، مربعات النصوص، وغيرها من عناصر التحكم التي تساعد المستخدمين على التفاعل مع التطبيق بطريقة سهلة ومرنة.

سوف نغطي كيفية إنشاء واجهة مستخدم باستخدام UserForms في كل من Excel و Access، وكيفية إضافة التحكمات وتخصيصها لاحتياجاتك.


1. إنشاء واجهة مستخدم (UserForm) في Excel باستخدام VBA

في Excel، يمكنك استخدام UserForms لإنشاء واجهات المستخدم الخاصة بك لتسهيل التفاعل مع البيانات.

1.1 إنشاء UserForm جديد

  1. افتح Excel.
  2. اضغط على Alt + F11 لفتح محرر VBA.
  3. في الشريط الجانبي، اضغط بزر الفأرة الأيمن على VBAProject (اسم الملف)، اختر Insert ثم UserForm.
  4. ستظهر نافذة جديدة UserForm، يمكنك تخصيصها بإضافة عناصر التحكم (مثل الأزرار، مربعات النصوص، القوائم المنسدلة) من صندوق الأدوات.

1.2 إضافة عناصر تحكم (Controls) إلى UserForm

إليك كيفية إضافة بعض العناصر الأساسية التي يمكن استخدامها في UserForm:

  • TextBox: لاستخراج نص من المستخدم.
  • CommandButton: لإضافة زر لتنفيذ إجراءات معينة.
  • ComboBox: لاختيار قيمة من قائمة منسدلة.
  • Label: لعرض نص ثابت في واجهة المستخدم.

Sub ShowUserForm()
UserForm1.Show
End Sub

شرح الكود:

  • UserForm1.Show: يقوم هذا السطر بإظهار UserForm1 التي أنشأناها في الخطوات السابقة.

1.3 إضافة كود للتحكم في عناصر UserForm

لنأخذ مثالًا بسيطًا على كيفية التعامل مع TextBox و CommandButton داخل UserForm.

  1. أضف TextBox إلى UserForm، ثم أضف CommandButton.
  2. اضغط مزدوجًا على الزر (CommandButton) لفتح نافذة الكود الخاصة به.
  3. اكتب الكود التالي:

Private Sub CommandButton1_Click()
Dim userInput As String
userInput = TextBox1.Value ' استلام النص المدخل في TextBox
MsgBox "لقد كتبت: " & userInput ' عرض النص في رسالة
End Sub

شرح الكود:

  • TextBox1.Value: يسترجع النص المدخل من TextBox.
  • MsgBox "لقد كتبت: " & userInput: يعرض النص المدخل في رسالة منبثقة.

1.4 تخصيص تنسيق UserForm

يمكنك تخصيص مظهر UserForm بشكل كامل عن طريق ضبط الخصائص مثل الألوان، الخطوط، والأبعاد. على سبيل المثال:


Private Sub UserForm_Initialize()
' تخصيص عنوان الفورم
Me.Caption = "واجهة المستخدم الخاصة بي"
' تخصيص حجم الفورم
Me.Width = 300
Me.Height = 200
' تخصيص لون الخلفية
Me.BackColor = RGB(240, 240, 240)
' تخصيص لون النص
CommandButton1.BackColor = RGB(0, 122, 204)
CommandButton1.ForeColor = RGB(255, 255, 255)
End Sub

شرح الكود:

  • Me.Caption: يحدد عنوان UserForm.
  • Me.Width و Me.Height: لضبط حجم UserForm.
  • Me.BackColor: لتحديد لون الخلفية.
  • CommandButton1.BackColor: لتحديد لون الزر.

2. إنشاء UserForm في Access باستخدام VBA

يمكنك أيضًا استخدام UserForms في Access لإنشاء واجهات تفاعلية للمستخدمين، حيث تكون النماذج في Access مشابهة لـ UserForms في Excel ولكنها تعتمد بشكل أكبر على استعلامات البيانات.

2.1 إنشاء نموذج (Form) في Access

  1. افتح Access.
  2. اختر Create من الشريط العلوي، ثم اختر Blank Form.
  3. في Design View، يمكنك إضافة عناصر تحكم مثل الأزرار، مربعات النصوص، القوائم المنسدلة، إلخ.

2.2 إضافة كود للتحكم في عناصر النموذج

لنأخذ مثالًا على Button و TextBox في Access:

  1. أضف TextBox وزر CommandButton إلى النموذج.
  2. اضغط بزر الفأرة الأيمن على الزر ثم اختر Build Event.
  3. اكتب الكود التالي في VBA:

Private Sub CommandButton1_Click()
Dim userInput As String
userInput = Me.TextBox1.Value ' استلام النص المدخل في TextBox
MsgBox "لقد كتبت: " & userInput ' عرض النص في رسالة
End Sub

شرح الكود:

  • Me.TextBox1.Value: يسترجع النص المدخل في TextBox داخل النموذج.
  • MsgBox: يعرض النص في رسالة منبثقة.

2.3 تخصيص مظهر النموذج

مثل Excel، يمكنك تخصيص Forms في Access عن طريق ضبط الخصائص مثل الألوان والخطوط.


Private Sub Form_Open(Cancel As Integer)
' تخصيص عنوان النموذج
Me.Caption = "واجهة المستخدم الخاصة بنظام Access"
' تخصيص لون الخلفية
Me.BackColor = RGB(255, 255, 255)
' تخصيص حجم الخط
Me.TextBox1.FontSize = 12
Me.TextBox1.ForeColor = RGB(0, 0, 0)
End Sub

شرح الكود:

  • Me.BackColor: يحدد لون الخلفية للنموذج.
  • Me.TextBox1.FontSize: يحدد حجم الخط في TextBox.
  • Me.TextBox1.ForeColor: يحدد لون النص داخل TextBox.

3. التعامل مع الأحداث المختلفة في UserForms و Forms

تدعم UserForms و Forms في Excel و Access العديد من الأحداث التي يمكن أن تستخدمها لتحسين التفاعل مع المستخدم. إليك بعض الأحداث الشائعة:

  • Click: يحدث عند النقر على عنصر تحكم.
  • Initialize: يحدث عند تحميل الـ UserForm أو الـ Form.
  • Change: يحدث عند تغيير قيمة عنصر تحكم.
  • Exit: يحدث عند مغادرة العنصر.

Private Sub TextBox1_Change()
MsgBox "لقد قمت بتغيير النص!"
End Sub

شرح الكود:

  • TextBox1_Change: يتم تفعيل هذا الحدث عندما يتم تغيير النص داخل TextBox.

خاتمة

في هذا الدرس، تعلمنا كيفية استخدام UserForms لإنشاء واجهات تفاعلية باستخدام VBA في Excel و Access. تعلمنا كيفية إضافة عناصر تحكم مثل TextBox و CommandButton، وتخصيص المظهر، والتفاعل مع الأحداث المختلفة.

في الدرس القادم، سنتناول كيفية التعامل مع الملفات الخارجية مثل قراءة وكتابة البيانات إلى ملفات نصية و Excel و Access باستخدام VBA.

تعليقات