كيفية التعامل مع النطاق Range من
خلال Input box
لقد تم سوالى عن كيفية تحديد اى نطاق او مدى
معين Range للعمل علية من حيث التحديد او تغيير الالوان او
التنسيقات او حتى الطباعة من خلال Inputbox VBA Excel وتم سؤالى عدة
مرات حيث شعرت أن تجربة المستخدم ستكون أكثر بساطة إذا منحتهم خيار تحديد البيانات
أو الخصائص من جدول البيانات الخاص بهم. لديك خياران للقيام بذلك ، حيث يمكنك إما سحب
هذه المعلومات من:
·
التحديد الحالي
للمستخدم Selection Range
·
نطاق خلايا محدد
مسبقًا أو اسم كائن
·
اطلب من المستخدم
كتابة عنوان خلية في صندوق إدخال Input box
ومن هنا أود أن أزعم أن النقطة الأخيرة المذكورة
أعلاه وهى استخدام صندوق الادخال Inputbox
VBA Excel ستكون على الأرجح هي الأكثر
وضوحًا للمستخدمين لأن هذة الاداة تمكنهم
من انهم يتمتعون بأكبر قدر من الحرية في تحديد
أي عنوان نطاق او مدى Range يريدونه في ذلك الوقت. ولكن هل يستحق منح المستخدم هذا القدر من الحرية؟
هل يستحق قضاء ساعات لا حصر لها في عمل ماكرو او كود VBA Excel لمنع أي إدخال
غير صحيح قد يدخله المستخدم في صندوق الإدخال الخاص بك Inputbox ؟
هذا هو المكان الذي سيوفر لك جمال كائن VBA
InputBox المدمج الوقت والجهد. دعونا
نلقي نظرة على كيفية استخدام InputBox
لمطالبة المستخدم بسهولة بتحديد نطاق من الخلايا حتى نتمكن من تخزين
موقع النطاق إلى متغير.
كيفية استخدام كائن InputBox
وهنا لن أخوض في كل تفاصيل ما يمكن أن يفعله
كائن InputBox حيث يمكنك قراءة جميع المميزات
عبر وثائق Microsoft
هنا. ومع ذلك ، سألاحظ أن InputBox
لابد ان يحتوي على بعض قيود الإدخال او بمعنى اخر البارميترات
الخاصة بصندوق الادخال InputBox وهى فى الواقع سهلة الاستخدام والتي يمكننا استخدامها لحساب جميع
معالجة الأخطاء التي نحتاجها لتأكيد قيام المستخدمين بإدخال نطاق صالح من Excel
بشكل صحيح. هذه الميزة تسمى
النوع.
Type of InputBox
Value |
Meaning |
0 |
A formula |
1 |
A number |
2 |
Text (Default) |
4 |
A logical value (True or False) |
8 |
A cell reference, as a Range object |
16 |
An error value, such as #N/A |
64 |
An array of values |
فيما يلي جميع الانواع التي يمكنك تعديلها أثناء استخدام كائن InputBox.
أهم السمات التي سنستخدمها هي سمات والعنوان والنوع.
Application.InputBox(Prompt,
Title, Default, Left, Top, HelpFile, HelpContextID,
Type)
أمثلة الاكوادالبرمجية لـ VBA InputBox
ما ستنفذه فى المثال التالى أكواد VBA
التالية بشكل فعال هو مطالبة المستخدم إما بإدخال أو تحديد نطاق خلية
معينة باستخدام مؤشره الفارة او كتابة
النطاق يدويا . وهنا يتمتع InputBox
هذا أيضًا بالقدرة على الرجوع إلى أوراق عمل مختلفة داخل ملف العمل
نفسه.و تتيح هذه المرونة والسهولة فى
الاستخدام حقًا للمستخدم الحصول على أفضل تجربة
أثناء تزويد ماكرو VBA الخاص بك بنطاق
خلايا متغير للعمل معه.
تحديد مجموعة من الخلايا للعمل على معاينة الطباعة
في مثال كود VBA هذا ، سيكون هدف
الماكرو هو استرداد قاعدة تنسيق رقم مخصص من المستخدم وتطبيقها على تحديد الخلية الحالي
للمستخدم وذلك بغرض معاينة الطباعة مثلا . سيتم استخدام InputBox
لتجميع إدخال خلية واحدة من المستخدم وتخزين تلك الخلية وجميع خصائصها
إلى متغير. بهذه الطريقة ، لا يحتاج المستخدم إلى كتابة قاعدة تنسيق الأرقام بنفسه
، بل يمكنه ببساطة الإشارة إلى خلية تم تطبيق القاعدة عليها بالفعل. هذه التقنية مفيدة
للغاية أيضًا في الحصول على مدخلات الألوان من المستخدمين.
Sub
dd()
Dim
rng As Range
Dim
x As Range
'On
Error Resume Next
Set
rng = Application.InputBox( _
Title:="Number Row Print", _
Prompt:="Select a Row number to
print in your sheet", _
Type:=8)
If rng Is Nothing Then Exit Sub
rng.Select
rng.PrintPreview
End
Sub