تعرفنا معا في الدروس السابقة علي عدد من ادوات الفورم الشائعة
ودرسنا اليوم سوف نتعـرف علي
UserForm Controls - CheckBox, OptionButton and ToggleButton
UserForm Controls - ScrollBar and SpinButton
الدرس الخامس
أولا: ScrollBar Control
عنصر تحكم شريط التمرير(ScrollBar ) تمكن من تغيير (زيادة أو إنقاص) القيمة المعروضة من قبل عناصر التحكم UserForm الأخرى أو قيمة في نطاق ورقة العمل. انها لفائف من خلال مجموعة من القيم عندما يقوم المستخدم: زيارة لأسهم التمرير، (الثاني) تستمر مربع التمرير، أو (الثالث) النقرات في منطقة بين سهم التمرير ومربع التمرير. ضوابط شريط التمرير وSpinButton - الفرق بين الاثنين هو أن مربع التمرير يمكن سحب لتغيير قيمة عنصر التحكم على زيادات أكبر (مع الحفاظ على مقدار منخفض مقابل النقرات) التي مزايا شريط تمرير لجعل الاختيار من عبر عدد كبير من القيم وتغطي مجموعة واسعة جدا.
يحدد SmallChange التغيير التدريجي، كقيمة عدد صحيح (متغير طويل)، الذي يحدث عندما يقوم المستخدم بالنقر فوق سهم التمرير. يحدد LargeChange وتغيير تدريجي عندما ينقر المستخدم بين سهم التمرير ومربع التمرير. القيمة الافتراضية هي 1 لكل من الخصائص.
مثال
نرغب في حساب الدفعة لقرض معين
يتم إدخال قيمة القرض ومعدل الفائدة الثانوي وفترة السداد السنوي عن طريق استخدام السكرول بار
اولا : قبل تنفيذ الفورم نفكر ماهو الغرض الذي سوف ننفذ من اجله الفورم
وطريقة تنفيذه ونخطط لذلك
ونحس به (روح الاكسيل ) كل منا له طابع خاص في عرض وتشكيل الفورم الخاص به
سوف نستخدم في الفورم مجموعة من المعطيات كالتالي
1- شريط تمرير لادخال مبلغ القرض مع مربع نص لاظهار القيمة
2- شريط تمرير لادخال معدل الفائدة الثانوي مع مربع نص لاظهار القيمة
3- شريط تمرير لادخال فترة السداد السنوي مع مربع نص لاظهار القيمة
4- سوف احتاج لزر امر لادخال الكود البرمجي لعملية الحساب
5- وسوف احتاج مربع عنوان لاظهار قيمة الدفعة الشهرية
معا ايضا
سوف نتعلم كيفية اضافة العناوين عن طريق الفورم باستخدام الخاصية ( CAPTION)
التنفيذ
بعدما خططنا لما نريد تنفيذه بالضبط
سوف نقوم بتنفيذ الفورم كالتالي
(( التطبيق بالمرفقات ))
وسوف باختيار الاكواد الخاصة بالفورم
في حدث انطلاق الفورم سوف نقوم بتحديد العنواين الخاصة باستخدام CAPTION وتحديد خصائص كل من اشرطة التمرير الثلاثة وتنسيقاتهم المستخدمة
والشرح مع الكود
Private Sub UserForm_Initialize()
'ÇáÝÑÖ
Label1.Caption = "ãÈáÛ ÇáÞÑÖ :"
ScrollBar1.Min = 0
ScrollBar1.Max = 10000
ScrollBar1.Orientation = fmOrientationHorizontal
ScrollBar1.SmallChange = 5
ScrollBar1.LargeChange = 100
ScrollBar1.Value = 0
'ãÚÏá ÇáÝÇÆÏÉ ÇáÓäæí
' æÖÚäÇ ÚäæÇä áãÑÈÚ ÇáÚäæÇä 2
Label2.Caption = "ãÚÏá ÇáÝÇÆÏÉ ÇáÓäæí (%) :"
ScrollBar2.Min = 0
ScrollBar2.Max = 1000
ScrollBar2.Orientation = fmOrientationHorizontal
ScrollBar2.SmallChange = 1
ScrollBar2.LargeChange = 10
ScrollBar2.Value = 0
'set properties for controls in re of Loan Tenure:
Label3.Caption = "ÝÊÑÉ ÇáÓÏÇÏ (ÈÇáÓäÉ)"
ScrollBar3.Min = 0
ScrollBar3.Max = 50
ScrollBar3.Orientation = fmOrientationHorizontal
ScrollBar3.SmallChange = 1
ScrollBar3.LargeChange = 4
ScrollBar3.Value = 0
'set properties for Label which displays Monthly Instalment:
Label4.Caption = "ÇáÏÝÚÉ ÇáÔåÑíÉ"
Me.Caption = "ScrollBar Control"
End Sub
نحدد ان قيمة كل نص (تكست بوكس ) = لقيمة شريط التمرير كالتالي
Private Sub ScrollBar1_Change()
'
TextBox1.Value = ScrollBar1.Value * 1000
TextBox1.Value = Format(TextBox1.Value, "#,##0")
End Sub
Private Sub ScrollBar2_Change()
'
TextBox2.Value = ScrollBar2.Value / 10
End Sub
Private Sub ScrollBar3_Change()
TextBox3.Value = ScrollBar3.Value / 2
End Sub
وفي النهاية الكود المستخدم لحساب الدفعة الشهرية
وقما له بتخصيص زر امر
Private Sub CommandButton1_Click()
'áÍÓÇÈ ÇáÏÝÚÉ ÇáÔåÑíÉ
Dim mi As Currency
If Not TextBox1.Value > 0 Then
MsgBox "ãä ÝÖáß ÃÏÎá ãÈáÛ ÇáÞÑÖ !"
Exit Sub
ElseIf Not TextBox2.Value > 0 Then
MsgBox "ÇáÑÌÇÁ ÇÏÎÇá ãÚÏá ÇáÝÇÆÏÉ ÇáÓäæí !"
Exit Sub
ElseIf Not TextBox3.Value > 0 Then
MsgBox "ÇáÑÌÇÁ ÇÏÎÇá ãÏÉ ÇáÞÑÖ !"
Exit Sub
Else
mi = Pmt((TextBox2.Value / 100) / 12, TextBox3.Value * 12, TextBox1.Value)
'
Label4.Caption = " ÇáÏÝÚÉ ÇáÔåÑíÉ " & Round(mi, 2) * -1
End If
End Sub
شرح الاكواد والتطبيق بالمرفقات
ثانيا: SpinButton Control
يتم استخدام عنصر تحكم SpinButton، مماثلة إلى عنصر تحكم شريط التمريرScrollBar ، إلى زيادة أو إنقاص قيمة (ماعدا التاريخ، الوقت) المعروضة من قبل عناصر التحكم UserForm الأخرى (مربع نص، تسمية، ...) أو القيمة في نطاق ورقة العمل. عنصر تحكم SpinButton (ويشار إلى عنصر تحكم سبينر أيضا) وظائف مثل عنصر تحكم شريط التمريرScrollBar ، مع خصائص مشابهة (. SmallChange، أدني، أعلي، والتوجه، ...). يحدد SmallChange التغيير التدريجي، كقيمة عدد صحيح (متغير طويل)، الذي يحدث عندما يقوم المستخدم بالنقر فوق سهم التمرير. لا يملك عنصر تحكم SpinButton خاصية LargeChange، مثل في شريط التمرير. في شريط التمرير العمودي النقر فوق سهم التمرير يقلل من قيمة في حين النقر فوق سهم التمرير على سبينر عمودي يزيد من قيمة.
ضوابط شريط التمرير وSpinButton - الفرق بين الاثنين هو أن مربع التمرير يمكن سحب لتغيير قيمة عنصر التحكم على زيادات أكبر (مع الحفاظ على مقدار منخفض مقابل النقرات) التي مزايا شريط تمرير لجعل الاختيار من عبر عدد كبير من القيم وتغطي مجموعة واسعة جدا.
مثال: استخدام عنصر تحكم SpinButton لتغيير البيانات في مربع نص، ضمن نطاق (A2:A10)
سوف نقوم بتصميم الفورم بالشكل التالي
لاضافة العناصر الي الليست بوكس
Private Sub loadListBox()
'ÇÖÇÝÉ ÇáÚäÇÕÑ Çáí ÇááíÓÊ ÈæßÓ ãä æÑÞÉ ÇáÚãá
Dim n As Integer
Dim cell As Range
Dim rng As Range
' ãÕÏÑ ÇáÈíÇäÇÊ
Set rng = sheet1.Range("A2:A10")
For n = 1 To ListBox1.ListCount
ListBox1.RemoveItem ListBox1.ListCount - 1
Next n
For Each cell In rng.Cells
Me.ListBox1.AddItem cell.Value
Next cell
End Sub
Private Sub UserForm_Initialize()
'ÇÖÇÝÉ ÇáÚäÇÕÑ Çáí ÇááíÓÊ ÈæßÓ
loadListBox
Me.Caption = "SpinButton Control"
End Sub
الكود مع الشرح بالمرفقات
ثالثا: RefEdit control
عنصر التحكم RefEdit لا تتوفر إلا في UserForm VBA، ويسمح للمستخدم لتحديد نطاق ورقة عمل من مربع، أو أن اكتب في نطاق فيه. يعرض عنصر التحكم RefEdit عنوان الخلية أو نطاق (يمكن أن تكون خلية واحدة أو نطاق من الخلايا المتجاورة أو غير المتجاورة) الذي يختار المستخدم أو يدخل عن طريق كتابة فيها للحصول على خلية أو نطاق عناوين التي يتم تخزينها في التحكم RefEdit .
رابعا:CheckBox
الخاصية قيمة خانة اختيار تشير إلى ما إذا كانت محددة أم لا. تشير قيمة True إلى تحديد خانة الاختيار، خطأ يشير إلى أن يتم مسح عليه، ويدل على قيمة خالية التي لا تحديده ولا تطهيرها، وسوف تظهر مظللة خانة الاختيار في هذه الحالة. يجب تعيين قيمة الخاصية TripleState (يمكن وضعها إما في إطار خصائص أو باستخدام ماكرو أو التعليمات البرمجية ل VBA) إلى True لخانة الاختيار ليكون لها قيمة خالية.
خامسا:OptionButton
يستخدم OptionButton لجعل اختيار واحد من خيارات متعددة. ويشار أيضا إلى أنه على زر الراديو، الذي يختار خيار واحد من مجموعة من الخيارات الخاصة التبادلية. إذا لم يتم تجميع OptionButtons، واختيار واحد OptionButton في UserForm سوف ازالة اختيار كل OptionButtons الأخرى في النموذج. جميع OptionsButtons ضمن مجموعة معينة تصبح يستبعد بعضها بعضا ومكتفية ذاتيا ضمن تلك المجموعة ولا تؤثر على اختيار OptionButtons خارج تلك المجموعة. سوف اختيار
مثال
التطبيقات والشرح والاكواد مشروحة سطر سطر مع التنفيذ لكل أداة
بالمرفقات التالية
وللموضوع بقية في شرح
UserForm Controls - Frame, MultiPage and TabStrip
ملفات مرفقة
اضغط هنا