Data Types

Data Types,Date,Byte,Double,Single,Long,Integer,text,numeric,Boolean,أنواع البيانات الرقمية,

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


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

أنواع البيانات غير الرقمية

نوع البيان الوصف حجمه في الذاكرة
Date تاريخ 8 بايت
(Variant (text سلسلة متغيرة الطول 22 بايت
(Variant (numeric أي قيمة بحجم Double 16 بايت
Boolean قيمة منطقية (True or False) 2 بايت
Char حرف واحد فقط 2 بايت
(String (fixed Length سلسلة ( طويلة )  1 : 65,400 characters
String - Variable Length
سلسلة متغيرة من 0 الى 2   billion characters
10 بايت
Object
كائن قد يكون شيت ، ملف عمل ...الخ ، في حالة استخدام هذا النوع يجب استخدام كلمة Set بعدها مباشرة لتحديد نوع الـ Object

4 بايت

أنواع البيانات الرقمية

نوع البيان الوصف حجمه في الذاكرة
Byte عدد صحيح صغير من 0 إلى 255 ،
وهو أصغر نوع بيانات رقمي لـ VBA ، و يُستخدم بشكل أقل.
واحد بايت
Integer عدد صحيح (من 32,768- الى 32,767) 2 بايت
Long عدد صحيح (من 2,147,483,648- الى  2,147,483,648) 4 بايت
Single عدد حقيقي
for negative values
3.402823E+38 to -1.401298E-45-
for positive values
 1.401298E-45 to 3.402823E+38 
4 بايت
Double عدد حقيقي طويل
for negative values
1.79769313486232e+308 to -4.94065645841247E-324-
 for positive values
 4.94065645841247E-324 to 1.79769313486232e+308
8 بايت
Decimal  79,228,162,514,264,337,593,543,950,335  +/-
if no decimal is use
  7.9228162514264337593543950335+/-
 (28 decimal places)
12 بايت
Currency وهو مماثل لـ Double باستثناء أنه يمكن أن يحتوي
على أربعة منازل عشرية فقط.
922,337,203,685,477.5808-
 to 922,337,203,685,477.5807
8 بايت



هناك ثلاثة أنواع من البيانات إثنان منهم (LongLong &  LongPtr ) تم اضافتهما بدءا من أوفيس 2010 & VBA 7.0  ، والثالث هو (User Defined Types) ، سيأتى الحديث عنهم بالتوضيحات .

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

Boolean (منطقية)

  1. يمكن أن يحتوي نوع البيانات المنطقية على القيمة True أو False.
  2. يستخدم نوع البيانات هذا 2 بايت.
  3. الكلمات الأساسية True و False مدمجة في الثوابت.
  4. القيمة الافتراضية هي False (أو صفر)
  5. أي قيمة لا تساوي الصفر تعادل True.
  6. True صحيح = -1
  7. False خطأ = 0
  8. غالبًا ما يتم استخدام متغير منطقي للتحقق من الحالة في عبارة If-Then-Else.


Byte (بايت)

  1. يمكن أن يحتوي نوع بيانات البايت على أي رقم موجب بين 0 و 255.
  2. يمكن استخدام هذا لاحتواء البيانات الثنائية.
  3. يستخدم نوع البيانات هذا بايت واحد
  4. القيمة الافتراضية هي 0.
  5. يمكن تخزين الأرقام الإيجابية فقط في هذا النوع من البيانات.
  6. سيؤدي تعيين رقم سالب لمتغير بايت إلى إنشاء خطأ وقت التشغيل.
  7. سيؤدي تعيين رقم أكبر من 255 إلى إنشاء خطأ وقت التشغيل.
  8. عند تحويل متغير منطقي إلى نوع بيانات VBA رقمي ، يصبح TRUE -1 ويصبح FALSE 0.
  9. عند تحويل نوع بيانات VBA رقمي إلى Boolean ، يصبح 0 FALSE وكل القيم الأخرى (بغض النظر عما إذا كانت سالبة أو موجبة) تصبح TRUE.


Currency ( دقة )

  1. هذا هو نوع بيانات القيمة.
  2. استخدم نوع بيانات العملة لتخزين الأرقام في النطاق من -922،337،203،477.5808 (-9.22 E14) إلى 922،337،203،685،477.5807 (+9.22 E14) .
  3. يجب عليك استخدام نوع البيانات هذا عندما لا تريد أي أخطاء التقريب.
  4. العملة دقيقة ، يتم تقريب مفردة ومزدوجة.
  5. هذا النوع من البيانات مفيد للحسابات التي تكون فيها الدقة مهمة بشكل خاص.
  6. يستخدم نوع البيانات هذا 8 بايت .
  7. القيمة الافتراضية هي 0.
  8. يتيح لك نوع البيانات هذا حفظ الأرقام بتنسيقات أرقام محددة .

Date ( تاريخ )

  1. يمكن أن يحتفظ نوع بيانات التاريخ بأي تاريخ من 1 يناير 0100 0:00:00 إلى 31 ديسمبر 9999 23:59:59.
  2. يعد استخدام نوع بيانات التاريخ هو أفضل طريقة للعمل مع التواريخ (والأوقات) في VBA.
  3. يتم تخزين المتغيرات التي تم التصريح عنها كنوع بيانات التاريخ فعليًا على أنها عشرية .
  4. يستخدم نوع البيانات هذا 8 بايت .
  5. القيمة الافتراضية هي  00:00:00
  6. يمكن استخدام نوع البيانات هذا لتخزين التواريخ والأوقات .
  7. من المهم أن تتذكر أن نطاق التاريخ في VBA أكبر من النطاق المقبول من Excel ، ومن هنا تأتي أهمية تعلم الـ VBA، علما بأنه تبدأ التواريخ في Excel من 1 يناير 1900 فقط.
  8. يمثل الجزء الصحيح عدد الأيام منذ 30 ديسمبر 1899. يتم تخزين أي تواريخ قبل هذا التاريخ كأرقام سالبة ، ويتم تخزين جميع التواريخ بعد كقيم إيجابية.


Decimal ( عدد عشري)

  1. يحتوي المتغير على نوع فرعي خاص يسمى Decimal والذي يمكن استخدامه للاحتفاظ بأعداد كبيرة جدًا.
  2. يجب التصريح عن نوع البيانات هذا كمتغير ولا يمكن إنشاؤه إلا باستخدام دالة التحويل CDec سنتطرق لها لاحقا.
  3. استخدم نوع البيانات هذا عندما لا تريد أخطاء التقريب.
  4. إذا كنت لا تحتاج إلى هذا النوع من الدقة ، فعليك دائمًا استخدام نوع البيانات المزدوج (Double) بدلاً من ذلك.
  5. يستخدم نوع البيانات هذا 14 بايت.
  6. القيمة الافتراضية هي فارغة لأنه يجب التصريح عنها كمتغير.
  7. يوفر نوع البيانات هذا أكبر عدد من الأرقام المهمة للرقم.
  8. نوع البيانات هذا هو الأبطأ في جميع أنواع البيانات الرقمية.
  9. يتسع نوع البيانات هذا إلى الأرقام المفردة أو المزدوجة
  10. يمكنك تحويل العلامة العشرية إلى مفردة أو مزدوجة دون حدوث خطأ في تجاوز السعة.

Double ( مزدوج )

  1. يحتوي هذا النوع من البيانات على رقم  مزدوج 
  2. الأرقام السالبة: -1.79769313486232 E308 إلى -4.94065645841247 E-324
  3. الأرقام الموجبة: +1.79769313486232 E308 إلى 4.94065645841247 E-324
  4. يستخدم نوع البيانات هذا 8 بايت
  5. القيمة الافتراضية هي 0.


Integer ( عدد صحيح )

  1. يمكن أن يحتوي نوع البيانات عدد صحيح على أي رقم بين -32،768 و 32،767.
  2. يستخدم نوع البيانات هذا 2 بايت.
  3. القيمة الافتراضية هي 0.
  4. يتم تحويل عدد صحيح إلى طويل ، على أنظمة 32 بت ، يتم تحويل نوع بيانات عدد صحيح ضمنيًا إلى نوع بيانات طويل ، لكن هذا التحويل لا يعني أنه يمكن قبول نطاق أكبر.
  5. إذا قمت بتعريف نوع بيانات عدد صحيح ، فلا يزال من الممكن أن يحتوي فقط على رقم يتراوح بين -32،768 و 32،767 ، لهذا السبب ، لا توجد نقطة توضح أي متغيرات بنوع بيانات عدد صحيح.
  6. في الواقع ، قد يكون استخدام نوع بيانات Long أسرع من استخدام نوع بيانات Integer لأنه لا يوجد تحويل ضمني.


Long ( طويل )

  1. هذا اختصار للأعداد الصحيحة الطويلة.
  2. يمكن أن يحتوي نوع البيانات الطويلة على أي رقم يتراوح بين -2،147،483،648 و 2،147،486،647 .
  3. يستخدم نوع البيانات هذا 4 بايت .
  4. القيمة الافتراضية هي 0.


LongLong ( طويل طويل ) 

  1. أضيف في Office 2010. VBA 7.0
  2. صالحة فقط على أنظمة 64 بت.
  3. تستخدم لتخزين أعداد صحيحة -9.2 E18 إلى +9.2 E18 .
  4. يبلغ حجم هذا النوع من البيانات 8 بايت (64 بت) .


LongPtr ( طويل حسب البيئة )

  1. أضيف في Office 2010. VBA 7.0
  2. هذا ليس نوع بيانات في حد ذاته لأنه يترجم إلى طويل أو طويل حسب البيئة.
  3. إذا كانت البيئة 32 بت ، فإن هذا يترجم إلى نوع بيانات طويل.
  4. إذا كانت البيئة 64 بت ، فهذا يترجم إلى نوع بيانات LongLong .


Single ( مفرد )

  1. يجب عليك دائمًا استخدام نوع البيانات Double بدلاً من ذلك لأن نوع البيانات هذا يقدم أخطاء التقريب.
  2. الأرقام السالبة: -3.402823 E38 إلى -1.401298 E-45
  3. الأرقام الموجبة: 1.401298 E-45 إلى 3.402823 E38
  4. يستخدم نوع البيانات هذا 4 بايت
  5. القيمة الافتراضية هي 0.


String ( سلسلة بيانات )
 يوجد نوعان من متغيرات السلسلة بطول ثابت Fixed Length وطول متغير Variable Length :

Fixed Length  طول ثابت

  1. يمكن أن يحتوي نوع بيانات السلسلة ذات الطول الثابت على ما بين 1 و 65،400 حرفًا.
  2. الحد الأقصى للطول هو 65.535 حرفًا
  3. القيمة الافتراضية هي عدد المسافات التي تساوي طول السلسلة.
  4. يتم الإعلان عن هذه مع عدد محدد من الأحرف.
  5. عندما تعلن أن المتغير من سلسلة نوع البيانات ، يمكنك تحديد الحد الأقصى لطول هذه السلسلة
  6. يعتبر العمل باستخدام سلاسل ذات طول ثابت أكثر فعالية قليلاً من العمل مع سلاسل ذات طول متغير.
  7. غالبًا ما يتم تمرير سلاسل ذات طول ثابت في واجهات برمجة تطبيقات Windows.

Variable Length طول متغير

  1. يمكن أن يحتوي نوع بيانات سلسلة الطول المتغير على ما بين 0 و 2 مليار حرف.
  2. القيمة الافتراضية هي السلسلة الفارغة "".
  3. يزيد نوع البيانات تلقائيًا وينقص في الحجم اعتمادًا على عدد الأحرف.
  4. هذا النوع من متغيرات السلسلة يمكن أن يحمل سلسلة من أي طول.
  5. يستخدم هذا النوع معظم الوقت.
  6. يتم تعيين سلسلة متغيرة الطول سلسلة ذات طول صفري ("") ، سلسلة فارغة أو سلسلة فارغة بشكل افتراضي.
  7. هذا لا يجب الخلط بينه وبين القيمة الفارغة للمتغير غير المعين (Variant).
  8. السلسلة ذات الطول الصفري ليست فارغة (لأنها تحتوي على قيمة معينة) وليست فارغة.

Object ( كائن )

  1. يحتوي نوع البيانات هذا على مرجع (أو عنوان) لكائن حقيقي.
  2. يستخدم نوع البيانات هذا 4 بايت .
  3. القيمة الافتراضية هي لا شيء (Nothing).
  4. مثلما يمكن لنوع البيانات المتغير تخزين أي نوع من المتغيرات ، يمكن لنوع بيانات الكائن تخزين أي نوع من الكائنات.
  5. كلما استخدمت نوع البيانات هذا ، فستستخدم دائمًا الربط المتأخر (late binding) سيأتى الحديث عن ذلك لاحقا .
  6. تعيّن عبارة Set مرجع كائن إلى متغير كائن ويجب استخدامها مع استثناء استخدام الحلقة التكرارية For Each مع هذا النوع.
  7. يمكنك معرفة ما إذا كان قد تم تعيين متغير كائن باستخدام الكلمات الأساسية "Is Nothing".
  8. تتم الإشارة إلى الكائنات الفردية بالاسم.
  9. تتم الإشارة إلى الكائنات في مجموعة بواسطة فهرس.
  10. لتجنب المراجع الطويلة المكررة عند استخدام الكائنات المؤهلة استخدم جملة Set لإنشاء متغير كائن لأن ذلك يساعد استخدام متغيرات الكائنات في تنفيذ التعليمات البرمجية بسرعة أكبر.

Variant ( متغير )

  1. نوع البيانات متغير قادر على الاحتفاظ بأي نوع من البيانات باستثناء سلاسل ذات طول ثابت والأنواع المعرفة من قبل المستخدم (user defined types).
  2. يمكن استخدام نوع البيانات البديل لجميع أنواع البيانات باستثناء سلاسل ذات طول ثابت وأنواع معرفة من قبل المستخدم(user defined types).
  3. يعمل نوع البيانات هذا تلقائيًا على تحديد نوع البيانات الأكثر ملاءمة استنادًا إلى القيمة التي تحددها.
  4. يمكنك استخدام نوع البيانات Variant بدلاً من أي نوع بيانات آخر للتعامل مع البيانات بطريقة أكثر مرونة.
  5. يحدث خطأ عندما تتجاوز المتغيرات المتغيرة التي تحتوي على قيم عملة وأرقام عشرية ومزدوجة نطاقاتها المحددة.
  6. يمكن أن يحتوي نوع بيانات المتغير أيضًا على القيم الخاصة "فارغة Empty" و "خالية Null" و "خطأ Error" ،
  7. قد يبدو هذا خيارًا سهلاً ولكنك تقوم بتسوية كل من السرعة والذاكرة باستخدام أنواع البيانات المتغيرة.
  8. إذا لم تعلن صراحة عن نوع بيانات المتغيرات الخاصة بك ، فسيتم تعيين نوع بيانات الى النوع المتغير.
  9. يمكن أن يحتوي نوع البيانات هذا على أي نوع من البيانات ويمكن أن يتغير نوع البيانات الخاص به اعتمادًا على ما تفعله به.

User Defined Types ( أنواع محددة من قبل المستخدم )

  1. يتيح لك نوع (أو بنية بيانات) يحدده المستخدم إنشاء نوع بيانات واحد يمكنه تمثيل أكثر من نوع بيانات مضمن.
  2. غالبا ما يختصر الى UDTs.
  3. القيمة الافتراضية هي القيمة الافتراضية للعناصر الفردية .
  4. يمكنك إنشاء نوع معرف من قبل المستخدم باستخدام بيان النوع ، النوع عبارة عن مجموعة من المتغيرات  ، هذا يجمع بين أنواع بيانات متعددة في نوع بيانات واحد.
  5. يتيح لك هذا تحديد متغير واحد للوصول إلى جميع المتغيرات . 
  6. يمكنك تحديد أنواع البيانات المعرفة من قبل المستخدم في الجزء العلوي من الوحدات النمطية الخاصة بك قبل أي إجراءات أو وظائف.
  7. بمجرد إنشاء نوعك ، استخدم عبارة Dim لإعلان متغير من هذا النوع.
  8. يجب دائمًا أن تكون مسبوقة بحرف كبير Type.
  9. عند تحديد نوع معرف من قبل المستخدم ، يجب أن تكون جميع المتغيرات الموجودة في الكتابة كبيرة
  10. UDT ليس متغيرًا ولا يشغل أي مساحة.
  11. يمكن أن تكون الأنواع مفيدة جدًا ولكن يوجد بها عدد من القيود: ( لا يمكنك التصريح عن مثيل جديد من النوع. يجب أن يتم الإعلان عنها جميعًا في وقت التصميم ، لا يمكنك التحقق من صحة أو تقييد القيم المخصصة للحقول المختلفة ، النوع هو مجرد بنية بيانات ثابتة ولا يمكن أن يكون له أي إجراءات مرتبطة به) .
  12. تبدأ بـ Type وبعدها تسمية المتغير وتنتهى بـ End Type .

مثال

'https://elshriefacademy.blogspot.com

Type guests
    first_name As String   
    last_name As String  
End Type
    
Sub variables()
            
    Dim p1 As guests
    
         p1.first_name = "Mahmoud"  
         p1.last_name = "El-Shrief"
    
    MsgBox p1.first_name & " " & p1.last_name
    
End Sub


Type-declaration character
الحروف التى تستخدم فى اختصار بعض انواع البيانات

حرف أو رمز نوع الإعلان
( الاختصار)
المتغير
% Integer
& Long
! Single
# Double
$ String
@ Currency

مثال


'https://elshriefacademy.blogspot.com

  Dim iNumber% 'integer



Developer MS Office VBA Application, Data Analyst, Designer And Developer of Blogger Templates, Microfinance, HR Specialist, leading businesses, Front End Web Developer.

More About

إرسال تعليق