تعریف متغیر ها و ثابت ها در وی بی (VBA) | قسمت اول

تعریف متغیر
۴.۶/۵ - (۹ امتیاز)

تعریف متغیر ها و ثابت ها در کدنویسی وی بی (VBA)

در وی بی (VBA) هم مثل سایر زبان های برنامه نویسی از متغیرها و ثابت ها جهت ذخیره مقادیر استفاده میشه. همینطور که از اسم این ها مشخصه، با تعریف متغیر ها، مقدار متغیرها تغییر میکنه ولی عموما ثابت ها مقادیری بدون تغییر به خود میگیرن.
به عنوان مثال شما میتونید از یک ثابت با نام PI برای ذخیره کردن عدد ۳.۱۴۱۵۹۲۶۵ استفاده کنید شاید سوالی که پیش بیاد این باشه که عدد پی همیشه همین مقدار خواهد بود و تغییر نمیکنه، پس چرا باید عدد اون رو به یک ثابت اختصاص بدیم؟ این کار رو برای راحتی دسترسی انجام میدیم، فرض کنید بخواید این عدد ۹ رقمی رو تو قسمت های مختلف از کدتون استفاده کنید، قطعا استفاده از ثابت PI که قبلا تعریف کرده ایم بسیار راحت تره.

همچنین میتونیم از متغیرها استفاده کنیم که مقادیر مختلف رو در زمان های مختلف درون خودش نگه داره. به عنوان مثال متغیری با نام SVat_Rate تعریف میکنیم که مقدار نرخ مالیات بر ارزش افزوده رو تو خودش نگه داره و برای استفاده در محاسبه مالیات اجناس خریداری شده استفاده بشه. مقدار این متغیر میتونه بسته به جنسی که خریده میشه متفاوت باشه.

جنس داده ها (Data Types)

هر متغیر و ثابتی برای ذخیره یک جنس از داده تعریف میشه. پس مهمه که تو تعریف متغیر ها و ثابت ها بدونید که چه جنسی باید انتخاب بشه. در جدول زیر انواع داده به همراه توضیحی برای کدوم و بازه ای که میتونن تو خودشون ذخیره کنن معرفی شده.

جنس دادهفضای اختصاصیتوضیحبازه قابل تخصیص
Byte۱ بایتمناسب برای استفاده اعداد مثبت۰ تا ۲۵۵
Boolean۲ بایتمقدار True یا FalseTrue یا False
Integer۲ بایتعدد غیر اعشاری-۳۲,۷۶۸ تا +۳۲,۷۶۷
Long۴ بایتعدد غیر اعشاری بزرگ-۲,۱۴۷,۴۸۳,۶۴۸ تا
+2,147,483,647
Single۴ بایتاعداد شناور با دقت یک اعشار-۳.4e38 تا +۳.4e38
Double۸ بایتعدد شناور با بازه بیشتر-۱.8e308 تا +۱.8e308
Currency۸ بایتعدد شناور با دقت ثابت-۹۲۲,۳۳۷,۲۰۳,۶۸۵,۴۷۷.۵۸۰۸ تا +۹۲۲,۳۳۷,۲۰۳,۶۸۵,۴۷۷.۵۸۰۷
Date۸ بایتروز و ساعت- این مقدار در واقع یک عدد اعشاری هست که بخش صحیح نماینده تاریخ و بخش اعشاری معرف ساعت هست.1st January ۱۰۰ تا 31st December ۹۹۹۹
Object۴ بایتارجاع به یک شئهر شئی
Stringمتغیرمجموعه ای از کارکترها رو در خود نگه داری میکنهحالت ثابت – تا ۶۵،۰۰۰ کارکتر حالت متغیر – تقریبا تا دو میلیارد کارکتر
Variantمتغیرمی تواند تاریخ، اعداد شناور یا مجموعه از کارکترها رو در خودش نگه داره. در واقع زمانی باید استفاده بشه که دقیقا مشخص نیست که چه چیزی قراره به آن تخصصی داده بشه.اعداد مانند جنس Double و متن مانند متغیر String

با توجه به جدول بالا شما میتونید با استفاده از انواع جنس های مختلف داده، اطلاعات رو در حافظه ذخیره کنید. از طرفی فراموش نکنید همیشه بهتره از متغیر با ظرفیت کمتر استفاده کنید. البته این نکته رو باید در نظر داشته باشید که هیچگاه اطلاعاتی که برنامه به متغیر تخصیص میدید نباید از ظرفیت متغیر بیشتر باشه.

نکته:
استفاده از کوچکترین متغیرهای مورد نیاز در کدها باعث میشه که سرعت برنامه افزایش پیدا کنه و حجم برنامه کمتر بشه. با این کار از حافظه استفاده بهینه میکنید.

 

تعریف متغیرها و ثابت ها

قبل از استفاده از متغیرها و یا ثابت ها بهتره که اون رو برای برنامه تعریف کنید. این کار با اضافه کردن کد زیر به برنامه قابل انجام شدنه:

Dim Variable_Name As Data_Type

در کد بالا به جای Variable_Name نام متغیری که شما قصد دارید تعریف کنید قرار بدید و به جای Data_Type باید یکی از جنس های متغیر در جدول بالا استفاده بشه. به عنوان مثال:

Dim sVAT_Rate As Single
Dim i As Integer

تعریف ثابت ها هم شبیه تعریف متغیر ها هست به جز زمانیکه قصد تخصیص مقدار در همان ابتدای تعریف ثابت هست. از مثال زیر برای تعریف متغیرها در وی بی (VBA) استفاده کنید:

Const iMaxCount = 5000
Const iMaxScore = 100

تا اینجا با انواع متغیرها آشنا شدیم و نحوه معرفی اونها رو یاد گرفتیم. در قسمت بعدی این آموزش منتظر این باشید که به سوال زیر جواب بدیم:

چرا باید متغیرها رو در کدها تعریف کنیم؟

کلیدواژه : مقدماتی
134

من سامان چراغی هستم. دانش آموخته مقطع فوق لیسانس دانشگاه تربیت مدرس در رشته مهندسی صنایع. از سال 1388 اکسل و برنامه نویسی VBA رو به صورت حرفه ای شروع کردم.

دیدگاه کاربران
  • فرهاد سرافراز ۱۷ شهریور ۱۴۰۲ / ۶:۰۹ ب٫ظ
    Private Sub cmdSend_Click()
    'Range("A2").Value = txtFirstName.Text
    'Range("B2").Value = txtLastName.Text
    'Range("C2").Value = txtMobile.Value
    
    Range("A2").Select
    ActiveCell.End(xlDown).Select
    lastrow = ActiveCell.Row
    MsgBox lastrow
     End Sub

    با سلام و خسنه نباشید. اساتید محترم برای lastrow چه متغیری باید درنطر گرفته شمد تا برنامه اجرا شود .

    • سامان چراغی ۱۲ فروردین ۱۴۰۳ / ۱۰:۴۲ ق٫ظ

      درود، سوالتون واضح نیست

  • محمد وحدتی ۲۱ تیر ۱۴۰۲ / ۳:۵۶ ب٫ظ

    سلام وقت بخیر.
    یه برنامه نوشتم برای فرم لاگین برای معرفی یکی از متغیر هام ارور میده..هرکار کردم درست نشد..ممنون میشم راهنماییم کنید

    • سامان چراغی ۴ شهریور ۱۴۰۳ / ۹:۴۰ ق٫ظ

      درود
      باید نوع خطا و لاینی که خطا داره ایجاد میشه در Debugging بررسی بشه.

  • R ۲۵ دی ۱۴۰۱ / ۳:۲۱ ب٫ظ

    سلام

    چطور می توان برای مقدار دادن به متغیری مثلا n از نوع intiger در vba مقداری از دادخل سلول اختصاص داد تا در حلقه تکرار for i=1 to n استفاده کرد

    • سامان چراغی ۲۵ دی ۱۴۰۱ / ۹:۳۸ ب٫ظ

      سلام
      کافیه قبل از شروع حلقه کد زیر رو بنویسید:
      n = sheet1.range(“A1”)

  • علی فرج نسبت ۳۱ مرداد ۱۳۹۷ / ۸:۰۱ ق٫ظ

    با درود و احترام خدمت اساتید گرامی سرکار خانم خاکزاد و جناب آقای چراغی
    جا دارد به نوبه خودم از زحمات و تلاش های شما جهت آموزش و بالا بردن سطح دانش کسانی که دنبال آموختن هستن تشکر کنم و یه خسته نباشید بگم بابت مطالب عالی و رایگانی که در اختیار بقیه دوستانتون میذارید

    موفق و موید باشید

  • مرتضی ۲۵ بهمن ۱۳۹۶ / ۱۱:۵۴ ق٫ظ

    سلام
    خداقوت
    جدول خالی است؟

    • آواتار
      حسنا خاکزاد ۲۵ بهمن ۱۳۹۶ / ۱۲:۱۶ ب٫ظ

      درود بر شما
      اصلاح شد
      ممنون از توجهتون

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *