بسم الله الرحمن الرحيم
اهلا بكم متابعى موقع عالم الاوفيس
المتغيرات فى لغة البرمجة VBA
في VBA
، يشبه المتغير صندوق تخزين يتم تخزينه في نظامك ولكن يمكنه تخزين
قيمة فيه ويمكنك استخدام هذه القيمة في التعليمات البرمجية الخاصة بك ويمكنك تغيير
هذه القيمة إذا كنت تريد (كما يوحي الاسم ، "المتغير" شيء قيمته غير ثابتة).
للإعلان
عن متغير ، عليك اتباع إجراء بسيط:
استخدم الكلمة الأساسية "Dim" في البداية.
حدد اسمًا للمتغير.
استخدم الكلمة الأساسية "As"
بعد الاسم.
حدد "نوع البيانات" للمتغير وفقًا
للقيمة التي تريد تخصيصها له.
استخدمنا هنا اسم " startDate " وحددنا نوع البيانات
" Date ". بعد التصريح عن متغير
يمكنك إسناد قيمة له.
Dim startDate As Date
startDate = “11/10/2018
الآن ، متى استخدمت startDate في الكود الخاص
بك ، سيستخدم Excel التاريخ الذي
قمت بتعيينه له.
أنواع البيانات Data
Types
في VBA
، تعد أنواع البيانات أساسًا أنواع البيانات التي تحتاج إلى تحديدها
أثناء تخزين قيمة في متغير أو ثابت. على سبيل المثال ، إذا كنت تريد تخزين تاريخ في
متغير ، يجب أن تعلن عن هذا التاريخ المتغير كنوع بياناته في المقام الأول.
شرح أنواع البيانات
فيما يلي القائمة الكاملة لأنواع البيانات التي
يمكنك استخدامها في VBA.
Data Type |
Bytes Used |
Range of Values |
Byte |
1 byte |
0 to 255 |
Boolean |
2 bytes |
True or False |
Integer |
2 bytes |
-32,768 to 32,767 |
Long (long integer) |
4 bytes |
-2,147,483,648 to 2,147,483,647 |
Single |
4 bytes |
-3.402823E38 to -1.401298E-45 for
negative values; 1.401298E-45 to 3.402823E38 for positive values |
Double |
8 bytes |
-1.79769313486231E308
to-4.94065645841247E-324 for negative values; 4.94065645841247E-324 to
1.79769313486232E308 for positive values |
Currency |
8 bytes |
-922,337,203,685,477.5808 to
922,337,203,685,477.5807 |
Decimal |
14 bytes |
+/-79,228,162,514,264,337,593,543,950,335
with no decimal point;+/-7.9228162514264337593543950335 with 28 places to the
right of the decimal |
Date |
8 bytes |
January 1, 100 to December 31,
9999 |
Object |
4 bytes |
Any Object reference |
String (variable-length) |
10 bytes + string length |
0 to approximately 2 billion |
String (fixed length) |
Length of string |
1 to approximately 65,400 |
Variant (with numbers) |
16 bytes |
Any numeric value up to the range
of a Double |
Variant (with characters) |
22 bytes + string length |
Same range as for variable-length
String |
User-defined |
Varies |
The range of each element is the
same as the range of its data type |
يوصى بهذا بشدة للإعلان عن نوع البيانات للمتغيرات
والثوابت.
عندما تحدد نوع البيانات لمتغير أو ثابت ، فهذا
يضمن صحة بياناتك ويمنعك من إدخال نوع غير صالح من البيانات. إذا حذفت نوع البيانات
، فسيقوم VBA بتطبيق نوع البيانات المتغير
على المتغير الخاص بك - فهو الأكثر مرونة ولن يخمن VBA
نوع البيانات الذي يجب أن يكون.
نصيحة: أفضل طريقة لعدم تخطي تحديد أنواع البيانات
هي استخدام الخيار الصريح في أعلى الوحدة النمطية قبل بدء أي رمز.
التعبير عن المتغير (صريح او ضمنا
)
يمكنك التصريح عن متغير سواء بشكل صريح أو ضمني.
يعني التصريح الصريح أنه قبل تعيين قيمة لمتغير ، فإنك تعلنها وتحدد قيمتها. والفائدة
من ذلك هي عندما تقوم بتعريفه ويقوم VBA
دائمًا بتخزين البيانات بهذا التنسيق.
هذا مثال:
Dim myDate As Date
لذلك عندما تقوم بتخزين القيمة في VBA
، ستطبق دائمًا تنسيق التاريخ على ذلك. لكن مع الإعلان الضمني ، لا
تهتم ببيان الإعلان الصريح هذا. بدلاً من ذلك ، يمكنك تحديد قيمة المتغير واستخدامه
في بيان التعليمات البرمجية. في الإعلان الضمني ، يخزن VBA
البيانات في نوع متغير متغير لأنك لم تحدد النوع.
بعبارة أخرى ، إذا كنت تستخدم متغيرًا في شفرتك
دون التصريح عنه ، فهذا أمر ضمني. فيما يلي مثال على الإعلان الضمني:
myDate = "11/10/1990"
هذه هي الطريقة التي تقوم بها ببساطة بتعيين
القيمة إلى متغير واستخدامها في عبارات التعليمات البرمجية الخاصة بك. إذا سألتني ،
فمن الأفضل دائمًا التصريح عن متغير قبل استخدامه. إنها ليست ممارسة جيدة فحسب ، بل
إنها تجعل شفرتك تعمل بشكل أسرع وتجعل من السهل فهمها.
متغير ثابت Static
Variable
حسنًا ، لقد أخبرتك أن المتغير هو المكان الذي
يمكنك فيه تغيير القيمة ولكن هذا شيء مختلف. باستخدام متغير عادي عند اكتمال الإجراء
، سيتم حذف القيمة المخزنة في المتغير من ذاكرة VBA
، ولكن إذا كنت لا تريد أن تفقد هذه القيمة ، يمكنك جعل هذا المتغير ثابتًا.
لجعل المتغير ثابتًا بحيث يحتفظ بالقيمة ، ما
عليك سوى استخدام الكلمة الرئيسية "Static"
بدلاً من استخدام "Dim".
تسمية متغير Naming
a Variable
يمكنك تسمية متغير (تنطبق هذه القواعد أيضًا
على اسم الثابت والإجراء) بالطريقة التي تريدها ولكن هناك بعض القواعد التي تحتاج إلى
اتباعها:
·
يمكنك استخدام
الحروف الأبجدية والأرقام وبعض علامات الترقيم ولكن يجب أن يكون الحرف الأول من الاسم
أبجديًا.
·
المسافات أو النقاط
ليست أحرفًا صالحة لاستخدامها في الاسم ولكن يمكنك استخدام شرطة سفلية لجعل الاسم قابلاً
للقراءة.
·
لا يمكنك استخدام
رموز خاصة في الاسم.
·
يمكن أن يصل طول
الاسم إلى 254 حرفًا ولكن باستخدام اسم لا معنى له.
·
هناك العديد من
الكلمات المحجوزة ، وهي كلمات لا يمكنك استخدامها للاسم. إذا حاولت استخدام إحدى هذه
الكلمات ، فستتلقى رسالة خطأ.
·
لا يفرق VBA
بين الحالات.
النطاق
او المدى Scope
في هذه المرحلة
، تعرف الإجراءات وأي إجراء مفيد في أي موقف ، وتتعرف أيضًا على المتغيرات وكيفية تحديد
أنواع بياناتها.
الشيء المهم التالي
هو فهم النطاق ، مما يعني التوافر. هذا هو المكان الذي يمكن استخدامه فيه. عندما تحدد
متغيرًا ، يحدد النطاق ما إذا كان يمكنك استخدامه خارج إجراءات المنزل أم لا. هناك
ثلاث طرق لتحديد النطاقات للمتغيرات (ثابت وحتى مع الإجراء بأكمله).
Procedure-Level
مستوى الإجراء: يمكنك فقط استخدام متغير في نفس الإجراء حيث تصرح
عنه.
Module-Level
مستوى الوحدة: يجعل المتغير يمكن الوصول إليه من جميع الإجراءات
في وحدة نمطية.
Module-Level
(Public)مستوى الوحدة (عام): يجعل المتغير يمكن الوصول إليه من جميع
الإجراءات في جميع الوحدات.
The
default scope النطاق الافتراضي للمتغير هو
الإجراء (مستوى الإجراء) الذي يتم فيه الإعلان عن هذا المتغير.