You are currently viewing انواع داده در VBA (با جدول محدوده مقادیر و پیشوند نام‌گذاری متغیرها)
نمای کلی انواع داده در VBA

انواع داده در VBA (با جدول محدوده مقادیر و پیشوند نام‌گذاری متغیرها)

VBA از انواع داده‌های مختلفی پشتیبانی می‌کند که انتخاب درست آن‌ها تأثیر مستقیمی بر سرعت اجرای برنامه، میزان مصرف حافظه و جلوگیری از خطاهای تبدیل نوع دارد.
در این مطلب، تمام انواع داده عددی و غیر عددی VBA را همراه با محدوده مقادیر، اندازه حافظه و پیشوند پیشنهادی برای نام‌گذاری متغیرها بررسی می‌کنیم.

🔢 انواع داده عددی در VBA

VBA چند نوع داده عددی دارد که از نظر دقت، حافظه مصرفی و محدوده مقادیر با هم متفاوت‌اند.
جدول زیر خلاصه این اطلاعات را نشان می‌دهد:

نام داده محدوده مقادیر حافظه موردنیاز پیشوند نام متغیر
Byte ۰ تا ۲۵۵ ۱ بایت byt
Integer ۳۲۷۶۸- تا ۳۲۷۶۷ ۲ بایت int
Long ۲،۱۴۷،۴۸۳،۶۴۸- تا ۲،۱۴۷،۴۸۳،۶۴۷ ۴ بایت lng
 LongLong1 ۹,۲۲۳,۳۷۲,۰۳۶,۸۵۴,۷۷۵,۸۰۸- تا ۹,۲۲۳,۳۷۲,۰۳۶,۸۵۴,۷۷۵,۸۰۷ ۸ بایت
LongPtr2 ۲,۱۴۷,۴۸۳,۶۴۸- تا ۲,۱۴۷,۴۸۳,۶۴۷ برای سیستم ۳۲ بیت ۹,۲۲۳,۳۷۲,۰۳۶,۸۵۴,۷۷۵,۸۰۸- تا ۹,۲۲۳,۳۷۲,۰۳۶,۸۵۴,۷۷۵,۸۰۷ برای سیستم ۶۴ بیت ۴ بایت – ۳۲ بیت ۸ بایت – ۶۴ بیت
Single -3.402823E+38 تا -1.401298E-45 برای اعداد منفی 1.401298E-45 تا 3.402823E+38 برای اعداد مثبت ۴ بایت sng
Double -1.79769313486232e+308 تا -4.94065645841247E-324 برای اعداد منفی 4.94065645841247E-324 تا 1.79769313486232e+308 برای اعداد مثبت ۸ بایت dbl
Currency ۹۲۲،۳۳۷،۲۰۳،۶۸۵،۴۷۷.۵۸۰۸ تا ۹۲۲،۳۳۷،۲۰۳،۶۸۵،۴۷۷.۵۸۰۷ ۸ بایت cur
Decimal3 ۷۹,۲۲۸,۱۶۲,۵۱۴,۲۶۴,۳۳۷,۵۹۳,۵۴۳,۹۵۰,۳۳۵+/- بدون اعشار ۷.۹۲۲۸۱۶۲۵۱۴۲۶۴۳۳۷۵۹۳۵۴۳۹۵۰۳۳۵+/- با ۲۸ اعشار ۰.۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۱ کوچکترین عدد غیر صفر ۱۴ بایت
 Variant (with numbers) تمام مقادیر داده نوع  Double را شامل می شود. ۱۶ بایت vnt
۱. این نوع متغیر فقط برای VBA نسخه ۷.۰ و آفیس ۶۴ بیت در دسترس می باشد. ۲. این نوع در واقع یک نوع داده نمی باشد و در سیستم های ۳۲ بیتی به نوع Long و در سیستم های ۶۴ بیتی به نوع LongLong تبدیل می شود. استفاده از این نوع وقتی می تواند مفید باشد که قرار است کد نوشته شده بر روی محیط آفیس ۳۲ و ۶۴ بیتی در دسترس باشد.
  • ۳. اعلان این نوع متغیر باید به صورت Variant صورت پذیرد و از طریق تابع CDEC نوع به Decimal تغییر یابد.
  • 💡 نکته:
    برای برنامه‌هایی که نیاز به محاسبات مالی دقیق دارند، از نوع Currency استفاده کنید. این نوع خطاهای اعشاری مربوط به محاسبات اعشاری معمولی را ندارد.

    📘 مثال:

    Dim curSalary As Currency
    curSalary = 125000.75

    انواع داده غیرعددی در VBA

    داده‌های غیر عددی برای نگهداری متن، تاریخ، اشیاء و ساختارهای داده‌ای به کار می‌روند.
    در جدول زیر ویژگی‌های آن‌ها را مشاهده می‌کنید:

    نام داده محدوده مقادیر حافظه موردنیاز پیشوند نام متغیر
    Boolean1 True یا False ۲ بایت bln
    Collection Unknown Unknown col
    Date January 1, 100 تا December 31, 9999 ۸ بایت dtm
    Dictionary Unknown Unknown
    Object هر نوع مصداق شیء ۴ بایت obj
    String (variable-length) ۰ تا حدود ۲ بیلیون ۱۰ بایت + طول نویسه str
    String (fixed-length)2 ۱ تا حدود ۶۵۴۰۰ طول نویسه str
    Variant (with characters) ۰ تا حدود ۲ بیلیون ۲۲ بایت + طول نویسه (۲۴ بایت روی سیستم ۶۴ بیت) vnt
    User-defined (using Type)3 معادل نوع داده ای که اعلان می شود. معادل نوع داده ای که اعلان می شود.
    ۱. وقتی که نوع داده عددی تبدیل به این نوع شود، عدد ۰ معادل False و سایر اعداد معادل True می باشد. اگر این نوع داده تبدیل به سایر انواع داده شود False تبدیل به ۰ (صفر) می شود و  True تبدیل به ۱- (منهای یک) می شود. ۲. برای اعلان متغیر String با طول ثابت می بایست طول نویسه در خط اعلان متغیر بعد از علامت ستاره (* / Asterisk) درج گردد. مثال Dim s As String * 3 ۳. این نوع داده از طریق دستور Type اعلان می شود.

    💡 نکته:
    در VBA، رشته‌ها (String) می‌توانند متغیر یا با طول ثابت باشند.
    اگر در حال پردازش داده‌های بسیار حجیم هستید (مثلاً فایل متنی بزرگ)، استفاده از رشته با طول ثابت می‌تواند کارایی را افزایش دهد.

    📘 مثال:

    Dim strCode As String * 3
    strCode = "ABC"

    ⚙️ نکات مهم در انتخاب نوع داده

    🔸 سرعت در مقابل حافظه:
    نوع‌هایی مانند Integer و Long از حافظه کمی استفاده می‌کنند، اما اگر محاسبات اعشاری نیاز دارید، Single یا Double مناسب‌ترند.

    🔸 استفاده از Variant را محدود کنید:
    هرچند Variant انعطاف‌پذیر است و می‌تواند هر نوع داده‌ای را در خود نگه دارد، اما باعث کندی اجرا و مصرف بیشتر حافظه می‌شود.

    🔸 توجه به نسخه آفیس و معماری سیستم:
    اگر قصد دارید کد شما روی سیستم‌های ۳۲ و ۶۴ بیتی اجرا شود، از LongPtr استفاده کنید تا نیاز به تغییر دستی نوع داده نداشته باشید.

    📚 منبع

    Data Type Summary – Microsoft Docs

    🧭 جمع‌بندی

    انتخاب نوع داده مناسب در VBA یکی از پایه‌های طراحی کد حرفه‌ای است.
    اگر در پروژه‌های بزرگ یا فایل‌های اکسل سنگین کار می‌کنید، بهتر است همیشه محدوده مقادیر مورد انتظار را در نظر بگیرید و از نوع داده متناسب با آن استفاده کنید.
    در پست بعدی، به تبدیل نوع داده‌ها (Type Conversion) و توابعی مانند CInt, CDbl, CStr و … خواهیم پرداخت.

    آیا می‌دانید:

    با یادگیری VBA در اکسل، می‌توانید فرآیندهای تکراری را به‌طور خودکار انجام دهید و زمان بیشتری برای تحلیل داده‌ها صرف کنید. این زبان قدرتمند به شما امکان می‌دهد تا ماکروهای سفارشی ایجاد کنید و وظایف پیچیده را به‌سادگی مدیریت کنید.