
تعریف متغیر ها و ثابت ها در کدنویسی وی بی (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 |
با توجه به جدول بالا شما میتونید با استفاده از انواع جنس های مختلف داده، اطلاعات رو در حافظه ذخیره کنید. از طرفی فراموش نکنید همیشه بهتره از متغیر با ظرفیت کمتر استفاده کنید. البته این نکته رو باید در نظر داشته باشید که هیچگاه اطلاعاتی که برنامه به متغیر تخصیص میدید نباید از ظرفیت متغیر بیشتر باشه.
استفاده از کوچکترین متغیرهای مورد نیاز در کدها باعث میشه که سرعت برنامه افزایش پیدا کنه و حجم برنامه کمتر بشه. با این کار از حافظه استفاده بهینه میکنید.
تعریف متغیرها و ثابت ها
قبل از استفاده از متغیرها و یا ثابت ها بهتره که اون رو برای برنامه تعریف کنید. این کار با اضافه کردن کد زیر به برنامه قابل انجام شدنه:
۱ |
Dim Variable_Name As Data_Type |
در کد بالا به جای Variable_Name نام متغیری که شما قصد دارید تعریف کنید قرار بدید و به جای Data_Type باید یکی از جنس های متغیر در جدول بالا استفاده بشه. به عنوان مثال:
۱ ۲ |
Dim sVAT_Rate As Single Dim i As Integer |
تعریف ثابت ها هم شبیه تعریف متغیر ها هست به جز زمانیکه قصد تخصیص مقدار در همان ابتدای تعریف ثابت هست. از مثال زیر برای تعریف متغیرها در وی بی (VBA) استفاده کنید:
۱ ۲ |
Const iMaxCount = ۵۰۰۰ Const iMaxScore = ۱۰۰ |
تا اینجا با انواع متغیرها آشنا شدیم و نحوه معرفی اونها رو یاد گرفتیم. در قسمت بعدی این آموزش منتظر این باشید که به سوال زیر جواب بدیم:
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 بررسی بشه.
سلام
چطور می توان برای مقدار دادن به متغیری مثلا n از نوع intiger در vba مقداری از دادخل سلول اختصاص داد تا در حلقه تکرار for i=1 to n استفاده کرد
سلام
کافیه قبل از شروع حلقه کد زیر رو بنویسید:
n = sheet1.range(“A1”)
با درود و احترام خدمت اساتید گرامی سرکار خانم خاکزاد و جناب آقای چراغی
جا دارد به نوبه خودم از زحمات و تلاش های شما جهت آموزش و بالا بردن سطح دانش کسانی که دنبال آموختن هستن تشکر کنم و یه خسته نباشید بگم بابت مطالب عالی و رایگانی که در اختیار بقیه دوستانتون میذارید
موفق و موید باشید
سلام
خداقوت
جدول خالی است؟
درود بر شما
اصلاح شد
ممنون از توجهتون