همانطور كه در جلسات قبل ذكر كرديم متغير ها در زبان وي بي اكسل چند دسته اند :

1- عددي

2- غير عددي

3- ثابت ها

4- كاربر ساخته

كه محدوده ي هر كدام را در زير مشاهده ميكنيد ( راهنماي اكسل 2007 ) :

Data Type Summary

The following table shows the supported data types, including storage sizes and ranges.

Data type Storage size Range
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
(single-precision floating-point)
4 bytes -3.402823E38 to -1.401298E-45 for negative values; 1.401298E-45 to 3.402823E38 for positive values
Double
(double-precision floating-point)
8 bytes -1.79769313486231E308 to
-4.94065645841247E-324 for negative values; 4.94065645841247E-324 to 1.79769313486232E308 for positive values
Currency
(scaled integer)
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; smallest non-zero number is
+/-0.0000000000000000000000000001
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
(using Type)
Number required by elements The range of each element is the same as the range of its data type.

 

اين متغير هاكه با كلمه ي كليدي DIM  معرفي مي شوند حيطه ي فعاليت ( اثر ) مشخصي دارند :

1-  متغير هاي ماكرو

2- متغير هاي ما‍‍ژول

3- متغيرهاي پرو‍ژه ( سراسري)

1- متغير هايي كه در سطح ماكرو تعريف مي شوند تنها در همان ماكرو شناخته مي شوند.

SUB TEST1()

DIM A AS SINGLE

 A=INPUTBOX(" ENTER A NUMBER :")

 MSGBOX A

END SUB

2-  اما نوع دوم متغير ها آنهايي هستند كه بايد درون تمام ماکروهای يك ماژول شناخته شوند ، براي اينكار كافي است متغير را در ابتداي ماژول قبل از تمام ماكروها ( قسمت اعلان يا DECLARATION) تعريف كرد و سپس در تمام  ماکرو های آن ماژول میتوان از آن استفاده کرد: 

 ۳- اما اگر بخواهیم این متغیر در تمام ماژول های یک پروژه شناخته شود کافی است در قسمت اعلان بجای کلمه ی dim از كلمه ي GLOBAL  استفاده كنيم .در اين حالت متغير سراسري شده و در تمام ماكرو ها ي يك پروژه شناخته مي شود.

GLOBAL S AS STRING

در ضمن بايد بدانيم كه مجموعه ماكرو ها تشكيل يك ماژول داده و مجموعه ي ماژول ها تشكيل يك پروژه را مي دهد .

نكته 1 : اگر بخواهيم درون يك ماكرو پس از اتمام آن مقادير متغير هايش تهي نشود كافي است بجاي DIM از واژه كليدي STATIC  استفاده كنيم . در اين حالت حتي پس از اتمام ماكرو مقادير متغير ايستا حفظ شده تا مقادير جديد به آن تعلق پيدا كند.