/ / Excel VBA Userform

Excel VBA Userform

إضافة عناصر التحكم | إظهار Userform | تعيين وحدات الماكرو | اختبار Userform

هذا الفصل يعلمك كيفية إنشاء Excel VBA Userform. شكل المستخدم الذي سنقوم بإنشائه يبدو كما يلي:

Excel VBA Userform

إضافة عناصر التحكم

لإضافة عناصر التحكم إلى Userform ، قم بتنفيذ الخطوات التالية.

1. افتح محرر Visual Basic. إذا لم يكن Project Explorer مرئياً ، فانقر فوق View ، Project Explorer.

2. انقر فوق Insert ، Userform. إذا لم يظهر Toolbox تلقائيًا ، فانقر فوق View ، Toolbox. يجب إعداد الشاشة على النحو التالي.

إعداد شاشة Userform في Excel VBA

3. أضف عناصر التحكم المدرجة في الجدول أدناه. بمجرد اكتمال ذلك ، يجب أن تكون النتيجة متوافقة مع صورة Userform المعروضة سابقًا. على سبيل المثال ، قم بإنشاء عنصر تحكم مربع نص بالنقر فوق مربع نص من Toolbox. بعد ذلك ، يمكنك سحب مربع نص في Userform. عند وصولك إلى إطار السيارة ، تذكر أن ترسم هذا الإطار أولاً قبل وضع أزرار الخيارين فيه.

4. قم بتغيير أسماء وتسميات عناصر التحكم وفقًا للجدول أدناه. يتم استخدام الأسماء في التعليمات البرمجية لـ Excel VBA. التسميات التوضيحية هي تلك التي تظهر على الشاشة. من الممارسات الجيدة تغيير أسماء عناصر التحكم. هذا سيجعل قراءة التعليمات البرمجية أسهل. لتغيير الأسماء والتسميات التوضيحية لعناصر التحكم ، انقر فوق عرض ، نافذة الخصائص وانقر فوق كل عنصر تحكم.

مراقبة اسم شرح
المستخدم DinnerPlannerUserForm مخطط العشاء
مربع الكتابة NameTextBox
مربع الكتابة PhoneTextBox
مربع القائمة CityListBox
صندوق التحرير DinnerComboBox
خانة الاختيار DateCheckBox1 13 يونيو
خانة الاختيار DateCheckBox2 20 يونيو
خانة الاختيار DateCheckBox3 27 يونيو
الإطار CarFrame سيارة
زر الخيارات CarOptionButton1 نعم فعلا
زر الخيارات CarOptionButton2 لا
مربع الكتابة MoneyTextBox
زر تدور MoneySpinButton
زر الأوامر OKButton حسنا
زر الأوامر ClearButton واضح
زر الأوامر زرالإلغاء إلغاء
7 تسميات لا حاجة للتغيير الاسم: ، رقم الهاتف: ، وما إلى ذلك

ملاحظة: مربع التحرير والسرد هو قائمة منسدلة حيث يمكن للمستخدم تحديد عنصر أو ملء اختياره / اختيارها. يمكن تحديد واحد فقط من أزرار الخيارات.

إظهار Userform

لإظهار Userform ، ضع زر أمر في ورقة العمل الخاصة بك وقم بإضافة سطر التعليمات البرمجية التالي:

Private Sub CommandButton1_Click()

DinnerPlannerUserForm.Show

End Sub

نحن الآن بصدد إنشاء Sub UserForm_Initialize. عند استخدام طريقة Show لـ Userform ، سيتم تنفيذ هذا الفرعي تلقائيًا.

1. افتح محرر Visual Basic.

2. في Project Explorer ، انقر بزر الماوس الأيمن فوق DinnerPlannerUserForm ، ثم انقر فوق عرض التعليمات البرمجية.

3. اختر Userform من القائمة المنسدلة اليسرى. اختر Initialize من القائمة المنسدلة اليمنى.

4. قم بإضافة أسطر التعليمات البرمجية التالية:

Private Sub UserForm_Initialize()

"Empty NameTextBox
NameTextBox.Value = ""

"Empty PhoneTextBox
PhoneTextBox.Value = ""

"Empty CityListBox
CityListBox.Clear

"Fill CityListBox
With CityListBox
    .AddItem "San Francisco"
    .AddItem "Oakland"
    .AddItem "Richmond"
End With

"Empty DinnerComboBox
DinnerComboBox.Clear

"Fill DinnerComboBox
With DinnerComboBox
    .AddItem "Italian"
    .AddItem "Chinese"
    .AddItem "Frites and Meat"
End With

"Uncheck DataCheckBoxes

DateCheckBox1.Value = False
DateCheckBox2.Value = False
DateCheckBox3.Value = False

"Set no car as default
CarOptionButton2.Value = True

"Empty MoneyTextBox
MoneyTextBox.Value = ""

"Set Focus on NameTextBox
NameTextBox.SetFocus

End Sub

شرح: يتم إفراغ مربعات النص ومربعات القوائم ومربعات التحرير والسرد يتم ملؤها ، مربعات الاختيار غير محددة ، إلخ.

تعيين وحدات الماكرو

لقد أنشأنا الآن الجزء الأول من Userform. على الرغم من أنه يبدو أنيقًا بالفعل ، فلن يحدث أي شيء بعد النقر على أزرار الأوامر في Userform.

1. افتح محرر Visual Basic.

2. في Project Explorer ، انقر مرتين على DinnerPlannerUserForm.

3. انقر مرتين على زر تدور المال.

4. أضف سطر الرمز التالي:

Private Sub MoneySpinButton_Change()

MoneyTextBox.Text = MoneySpinButton.Value

End Sub

Explanation: يقوم سطر الكود هذا بتحديث مربع النص عند استخدام زر الدوران.

5. انقر مرتين على زر موافق.

6. قم بإضافة أسطر التعليمات البرمجية التالية:

Private Sub OKButton_Click()

Dim emptyRow As Long

"Make Sheet1 active
Sheet1.Activate

"Determine emptyRow
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1

"Transfer information
Cells(emptyRow, 1).Value = NameTextBox.Value
Cells(emptyRow, 2).Value = PhoneTextBox.Value
Cells(emptyRow, 3).Value = CityListBox.Value
Cells(emptyRow, 4).Value = DinnerComboBox.Value

If DateCheckBox1.Value = True Then Cells(emptyRow, 5).Value = DateCheckBox1.Caption

If DateCheckBox2.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & " " & DateCheckBox2.Caption

If DateCheckBox3.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & " " & DateCheckBox3.Caption

If CarOptionButton1.Value = True Then
    Cells(emptyRow, 6).Value = "Yes"
Else
    Cells(emptyRow, 6).Value = "No"
End If

Cells(emptyRow, 7).Value = MoneyTextBox.Value

End Sub

توضيح: أولاً ، نقوم بتنشيط Sheet1. بعد ذلك ، نحدد emptyRow. المتغير emptyRow هو أول صف فارغ ويزيد كل مرة يتم فيها إضافة سجل. أخيرًا ، نقوم بنقل المعلومات من Userform إلى أعمدة محددة من emptyRow.

7. انقر مرتين على زر مسح.

8. أضف سطر الرمز التالي:

Private Sub ClearButton_Click()

Call UserForm_Initialize

End Sub

Explanation: يستدعي سطر الكود هذا UserForm_Initialize Sub عندما تقوم بالضغط على زر Clear.

9. انقر مرتين على زر الغاء.

10. أضف سطر الرمز التالي:

Private Sub CancelButton_Click()

Unload Me

End Sub

Explanation: سطر الرمز هذا يغلق Userform عند الضغط على زر Cancel.

اختبار Userform

قم بإنهاء محرر Visual Basic ، أدخل التسميات الموضحة أدناه في الصف 1 واختبر Userform.

نتيجة:

اختبار Userform

اقرأ أيضًا: