كل ما تحتاج لمعرفته حول متغيرات vba

متغير VBA

في VBA، يكون المتغير بمثابة صندوق تخزين يتم تخزينه في نظامك، ولكن يمكنه تخزين قيمة هناك ويمكنك استخدام هذه القيمة في التعليمات البرمجية الخاصة بك وتغيير تلك القيمة إذا أردت (كما يوحي اسمه، “VARIABLE” “” هو الشيء الذي لم يتم تحديد قيمته).”

للإعلان عن متغير، يجب عليك اتباع إجراء بسيط:

  1. استخدم الكلمة الأساسية “خافت” في البداية.
  2. حدد اسمًا للمتغير.
  3. استخدم الكلمة الأساسية “باسم” بعد الاسم.
  4. حدد “نوع البيانات” للمتغير بناءً على القيمة التي تريد تخصيصها له.

لقد استخدمنا هنا الاسم “startDate” وحددنا نوع البيانات “Date”. بعد الإعلان عن المتغير، يمكنك تعيين قيمة له.

 Dim startDate As Date startDate = “11/10/2018”

الآن، عندما تستخدم تاريخ البدء في التعليمات البرمجية الخاصة بك، يستخدم Excel التاريخ الذي حددته.

أنواع البيانات

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

وأوضح أنواع البيانات

فيما يلي القائمة الكاملة لأنواع البيانات التي يمكنك استخدامها في VBA.

نوع البيانات
البايتات المستخدمة
مدى من القيم
بايت
1 بايت
0 إلى 255
منطقية
2 بايت
صحيحة أو خاطئة
جميع
2 بايت
-32.768 إلى 32.767
طويل (عدد صحيح طويل)
4 بايت
-2,147,483,648 إلى 2,147,483,647
وحيد
4 بايت
-3.402823E38 إلى -1.401298E-45 للقيم السالبة؛ 1.401298E-45 إلى 3.402823E38 للقيم الإيجابية
مزدوج
8 بايت
-1.79769313486231E308 إلى -4.94065645841247E-324 للقيم السالبة؛ 4.94065645841247E-324 إلى 1.79769313486232E308 للقيم الإيجابية
نقدي
8 بايت
-922,337,203,685,477.5808 إلى 922,337,203,685,477.5807
عدد عشري
14 بايت
+/-79 228 162 514 264 337 593 543 950 335 بدون العلامة العشرية؛ +/-7.9228162514264337593543950335 مع 28 منزلة عشرية على يمين العلامة العشرية
تاريخ
8 بايت
1 يناير 100 إلى 31 ديسمبر 9999
هدف
4 بايت
أي مرجع الكائن
سلسلة (طول متغير)
10 بايت + طول السلسلة
0 إلى حوالي 2 مليار
سلسلة (طول ثابت)
طول السلسلة
1 إلى حوالي 65,400
البديل (مع الأرقام)
16 بايت
أي قيمة رقمية تصل إلى نطاق مزدوج
البديل (مع الأحرف)
22 بايت + طول السلسلة
نفس النطاق كسلسلة متغيرة الطول
تعريف المستخدم
متنوع
نطاق كل عنصر هو نفس نطاق نوع البيانات الخاص به

يوصى بهذا بشدة للإعلان عن نوع البيانات للمتغيرات والثوابت .

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

نصيحة: أفضل طريقة لعدم تخطي تحديد أنواع البيانات هي استخدام الخيار الصريح الموجود في أعلى الوحدة قبل بدء أي تعليمة برمجية.

صراحة أو ضمنا

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

هنا مثال:

 Dim myDate As Date

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

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

 myDate = “11/10/1990”

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

متغير ثابت

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

لجعل المتغير ثابتًا بحيث يحتفظ بالقيمة، ما عليك سوى استخدام الكلمة الأساسية “Static” بدلاً من استخدام “Dim”.

قم بتسمية متغير

يمكنك تسمية متغير (تنطبق هذه القواعد أيضًا على اسم الثابت واسم الإجراء) كما تريد، ولكن يجب عليك اتباع بعض القواعد:

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

نِطَاق

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

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

  1. مستوى الإجراء: يمكنك فقط استخدام متغير في نفس الإجراء الذي قمت بإعلانه فيه.
  2. مستوى الوحدة النمطية (خاص): يجعل المتغير قابلاً للوصول من جميع الإجراءات في الوحدة النمطية.
  3. مستوى الوحدة (عام): يجعل المتغير قابلاً للوصول من كافة الإجراءات في كافة الوحدات.

النطاق الافتراضي للمتغير هو الإجراء (مستوى الإجراء) الذي يتم فيه الإعلان عن هذا المتغير.

ولكن اسمحوا لي أن أشارككم شيئًا من العالم الحقيقي.

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

اضف تعليق

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