جدول vba: الدليل الأساسي إلى المتقدم

النقاط الرئيسية

  • فكر في جدول ضمن جدول VBA كقاعدة بيانات صغيرة لتخزين البيانات وتنظيمها (على سبيل المثال: اسم الطالب والموضوع والنتائج).
  • قبل استخدامه، يجب أن تعلن عن مصفوفة؛ بنوع بياناتها وعدد القيم التي تريد تخزينها فيها.

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

ما هو الجدول في VBA؟

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

يمكنك تخزين كل هذه المعلومات في جدول، ليس فقط لطالب واحد بل لمئات الطلاب. هنا مثال بسيط لشرح الجدول.

مثال لشرح جدول

في المثال أعلاه، لديك مصفوفة مكونة من عشرة عناصر (حجم المصفوفة) ولكل عنصر موضع محدد (الفهرس).

لذلك، إذا كنت تريد استخدام عنصر موجود في المركز الثامن، فيجب عليك الإشارة إلى هذا العنصر باستخدام رقم الفهرس الخاص به.

المصفوفة التي استخدمناها في المثال أعلاه هي مصفوفة أحادية البعد. لكن لاحقًا في هذا الدليل، سنتعرف أيضًا على المصفوفات متعددة الأبعاد.

كيفية الإعلان عن مصفوفة في VBA

كما ذكرت أعلاه، المصفوفة هي نوع المتغير، لذلك تحتاج إلى الإعلان عنها باستخدام الكلمات الأساسية (Dim وPrivate وPublic وStatic). على عكس المتغير العادي، عندما تعلن عن مصفوفة، يجب عليك استخدام زوج من الأقواس بعد اسم المصفوفة.

لنفترض أنك تريد الإعلان عن مصفوفة استخدمناها في المثال أعلاه.

خطوات الإعلان عن المصفوفة

  • أولاً، استخدم الكلمة الأساسية “Dim”، وأدخل اسم الجدول واكتب الأقواس.
    use-the-keyword-dim
  • بعد ذلك، تحتاج إلى تحديد نوع البيانات للمصفوفة. إذا لم يكن لديك نوع بيانات محدد، فسيقوم VBA بتعيين نوع البيانات المناسب.
    specify-data-type-of-an-array
  • بعد ذلك، عليك تحديد عدد العناصر التي تريد تخزينها في المصفوفة.
    define-the-number-of-items
  • في النهاية، لتعيين قيمة لعنصر في مصفوفة، يجب عليك استخدام رقم فهرس العنصر لتعريفه ثم تعيين قيمة له.
    assign-a-vale-to-an-item

الرمز الكامل

 Sub vba_array_example() Dim StudentsNames(10) As String StudentsNames(0) = "Waylon" StudentsNames(1) = "Morton" StudentsNames(2) = "Rudolph" StudentsNames(3) = "Georgene" StudentsNames(4) = "Billi" StudentsNames(5) = "Enid" StudentsNames(6) = "Genevieve" StudentsNames(7) = "Judi" StudentsNames(8) = "Madaline" StudentsNames(9) = "Elton" End Sub

ملاحظات سريعة

  • في الكود أعلاه، لديك أولاً عبارة Dim التي تحدد المصفوفة أحادية البعد والتي يمكنها تخزين ما يصل إلى 10 عناصر ولها نوع بيانات سلسلة.
  • بعد ذلك، لديك 10 أسطر من التعليمات البرمجية التي تحدد عناصر المصفوفة من 0 إلى 9.

جدول بنوع بيانات مختلف

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

لذلك من الأفضل تحديد نوع بيانات محدد عند الإعلان عن مصفوفة ما لم يكن من الضروري استخدام نوع البيانات المتغير.

إرجاع المعلومات من مصفوفة

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

ردود الفعل من الجدول

في الكود أعلاه، قمت بإدخال القيمة في الخلية A1 باستخدام عنصر الصفيف 8.

استخدم قاعدة الخيار 1

أنا متأكد من أن هذا السؤال يدور في ذهنك الآن، لماذا بدأنا قائمة العناصر لدينا من الصفر بدلاً من الواحد؟

حسنا، هذا ليس خطأ.

عندما تم إنشاء لغات البرمجة لأول مرة ، أدى بعض الإهمال إلى جعل هذه البنية عبارة عن قائمة من العناصر في مصفوفة. في معظم لغات البرمجة، يمكنك العثور على نفس بنية عناصر القائمة.

ومع ذلك، على عكس معظم لغات الكمبيوتر الأخرى، يمكنك في VBA تطبيع كيفية عمل الفهرس، مما يعني أنه يمكنك جعله يبدأ بالرقم 1. الشيء الوحيد الذي عليك فعله هو إضافة عبارة بناءً على الخيارات في بداية الوحدة قبل الإعلان عن array.array.

الآن سيبدو هذا الجدول كما يلي:

استخدام الخيار قاعدة 1

البحث في جدول

عندما تقوم بتخزين القيم في مصفوفة، قد تكون هناك أوقات تحتاج فيها إلى إجراء بحث عن المصفوفة.

في هذه الحالة، عليك أن تعرف الطرق التي يمكنك استخدامها. انظر الآن إلى الكود أدناه والذي يمكن أن يساعدك على فهم كيفية البحث عن قيمة في مصفوفة.

 Sub vba_array_search() 'this section declares an array and variables _ that you need to search within the array. Dim myArray(10) As Integer Dim i As Integer Dim varUserNumber As Variant Dim strMsg As String 'This part of the code adds 10 random numbers to _ the array and shows the result in the _ immediate window as well. For i = 1 To 10 myArray(i) = Int(Rnd * 10) Debug.Print myArray(i) Next i 'it is an input box that asks you the number that you want to find. Loopback: varUserNumber = InputBox _ ("Enter a number between 1 and 10 to search for:", _ "Linear Search Demonstrator") 'it's an IF statement that checks for the value that you _ have entered in the input box. If varUserNumber = "" Then End If Not IsNumeric(varUserNumber) Then GoTo Loopback If varUserNumber < 1 Or varUserNumber > 10 Then GoTo Loopback 'message to show if the value doesn't found. strMsg = "Your value, " & varUserNumber & _ ", was not found in the array." 'loop through the array and match each value with the _ the value you have entered in the input box. For i = 1 To UBound(myArray) If myArray(i) = varUserNumber Then strMsg = "Your value, " & varUserNumber & _ ", was found at position " & i & " in the array." Exit For End If Next i 'message box in the end MsgBox strMsg, vbOKOnly + vbInformation, "Linear Search Result" End Sub 
بحث في جدول
  1. في الجزء الأول من الكود لديك متغيرات تحتاج إلى استخدامها لاحقًا في الكود.
  2. بعد ذلك، الجزء التالي هو توليد أرقام عشوائية باستخدام RND للحصول على 10 قيم للمصفوفة.
  3. بعد ذلك، مربع إدخال للسماح بإدخال القيمة التي تريد البحث عنها في الجدول.
  4. في هذا الجزء لديك رمز للسلسلة لاستخدامه في مربع الرسالة إذا لم يتم العثور على القيمة التي أدخلتها.
  5. يستخدم هذا الجزء من التعليمات البرمجية حلقة للتكرار عبر كل عنصر من عناصر المصفوفة والتحقق مما إذا كانت القيمة التي أدخلتها موجودة في المصفوفة أم لا.
  6. يعرض الجزء الأخير من الكود رسالة تشير إلى ما إذا تم العثور على قيمة أم لا.
ما هو فبا

تعرف على المزيد حول جداول VBA

اضف تعليق

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *