نسخه 3 افزونه تقویم شمسی با امکانات بیشتر منتشر شد!!! (برای مشاهده اینجا کلیک کن)
سبد خرید
0

محصولی در سبد خرید نیست.

بازگشت به فروشگاه
تمام دسته ها
  • تمام دسته ها
  • ابزارها
  • افزونه ها
  • اکسل مدیا
  • Power BI
  • Power Pivot
  • Power Query
  • توابع اکسل
  • دسته‌بندی نشده
  • دیده بان
  • گوگل شیت
  • مسائل کاربردی
  • معرفی کتاب
  • نمودار ها
  • وی بی - ماکرو

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

کلیدواژه : مقدماتی
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”)

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

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

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

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

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

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

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

ارسال دیدگاه

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

توسط
تومان