در وب سایت ایران VBA در فواصل مختلف آموزش سعی خواهیم کرد برای تقویت یادگیری پروژه هایی مرتبط با آموزش هایی که فراگرفته اید را تشریح نماییم. در این بخش از آموزش های رایگان وی بی ای بعنوان اولین برنامه VBA سایت می خواهیم یک برنامه ساده را با استفاده از ماکرونویسی در اکسل گام به گام پیاده سازی، بررسی و تحلیل نماییم.
پیش نیازهای آموزشی این بخش:
ویرایشگر کد VBA
ماژول در VBA
متغیر در VBA
ثابت در VBA
عملگرهای VBA
اولویت عملگرها
روال در VBA
توابع توکار VBA
پنجره Immediate (آنی)
در آموزش های قبلی سایت در مرحله اول با ویرایشگر VBE بعنوان ابزار نوشتن کد در بسته Office، ماژول بعنوان محل ذخیره کدها، متغیرها بعنوان محل ذخیره داده ها و ثابت ها آشنا شدیم. دانستیم که با ترکیب عملگرها با متغیرها و ثابت ها می توانیم عبارات منطقی و ریاضی ایجاد نماییم. در مرحله بعد با روال ها آشنا شدیم و یاد گرفتیم که روال دنباله ای نامگذاری شده از دستورها است که بعنوان یک بخش واحد اجرا می شود. در نهایت نیز با برخی از توابع داخلی توکار پرکاربرد VBA آشنا شدیم.
الان وقت آن است که با نوشتن اولین برنامه VBA خود آموخته هایمان را در معرض آزمون قرار دهیم.
اولین برنامه VBA یک برنامه ساده و ابتدایی می باشد، اما همین برنامه ساده و ابتدایی در تقویت یادگیری موضوعاتی که تا این لحظه فراگرفته اید نقش مهمی را ایفا می نماید.
شما باید زمانی را صرف درست کردن این برنامه ها کنید چون که تمرین باعث می شود که بیشتر با محیط VBA آشنا شوید و به سرعت مطالب برنامه نویسی را هضم نمایید.
پروژه ۱ : اولین برنامه VBA
هدف برنامه
محاسبه توان دوم عدد دریافتی از کاربر و نمایش نتیجه محاسبات به کاربر
تحلیل هدف
هدف این پروژه را می توان به جملات زیر تقسیم نمود:
- دریافت عدد از کاربر
- محاسبه توان دوم
- نمایش نتیجه محاسبات به کاربر
جملات کوتاه شده بالا کار ما را برای نوشتن برنامه راحت می نماید. هر یک از جملات کوتاه بالا نمایانگر یک وظیفه (کار) در برنامه نویسی می باشند.
وظیفه اول – دریافت عدد از کاربر
برای دریافت عدد از کاربر می توانیم از تابع داخلی InputBox استفاده نماییم. تابع InputBox اطلاعات دریافتی از کاربر را که از طریق جعبه متن داخل پنجره آن به VBA بر می گرداند.
برای استفاده از خروجی تابع InputBox باید نتیجه آن را در یک متغیر ذخیره نماییم. بنابراین در اولین مرحله با استفاده از کد زیر متغیر را اعلان نماییم.
Dim strUserInput As String
متغیر strUserInput
یک متغیر از نوع داده رشته ای String
می باشد. علت انتخاب نوع داده String
این است که مقدار بازگشتی تابع InputBox از نوع داده رشته ای String
می باشد و نمی تواند در نوع داده دیگری (به استثناء نوع داده Variant) ذخیره گردد.
حالا که متغیر strUserInput
را اعلان نموده ایم می توانیم مقدار بازگشتی تابع InputBox را با استفاده از کد زیر در آن ذخیره نماییم.
strUserInput = InputBox("عدد موردنظر خود را براي محاسبه توان دوم وارد نماييد")
وظیفه دوم – محاسبه توان دوم
برای انجام وظیفه دوم اولین برنامه VBA ما باید از عملگر ریاضی توان برای محاسبه توان دوم عدد دریافتی از کاربر استفاده نماییم. در اینجا نیز مانند وظیفه اول به یک متغیر برای ذخیره مقدار توان دوم احتیاج داریم.
حالا در کنار متغیر قبلی که اعلان نموده ایم متغیر جدید را مطابق کد زیر اعلان می نماییم.
Dim strUserInput As String
Dim intCalculatedNumber As Integer
حالا می توانیم با استفاده از متغیر intCalculatedNumber
و عملگر توان، مقدار توان دوم را طبق کد زیر محاسبه نماییم.
intCalculatedNumber = strUserInput ^ 2
وظیفه سوم – نمایش نتیجه محاسبات به کاربر
برای انجام وظیفه سوم اولین برنامه VBA خود می توانیم از تابع داخلی MsgBox مطابق کد زیر استفاده نماییم.
MsgBox intCalculatedNumber
آماده سازی برنامه جهت اجرا
در مراحل قبلی، هدف اولین برنامه VBA خود را به وظایف تقسیم نمودیم. حالا نوبت آن است که برنامه خود را جهت اجرا آماده نماییم.
انتخاب برنامه میزبان
کدهای VBA بصورت مستقل نمی توانند اجرا شوند و می بایست از طریق یک برنامه میزبان اجرا گردند.
برنامه میزبان می تواند یکی از برنامه های بسته آفیس باشد که VBA را پشتیبانی می نماید. ما در اولین برنامه VBA اکسل (Excel) را بعنوان برنامه میزبان انتخاب نموده ایم.
ایجاد ماژول برای ذخیره کدها
حال باید برای ذخیره کدهای خود یک ماژول را انتخاب نماییم. ما در اولین برنامه VBA شیء اکسل ThisWorkbook را انتخاب نموده ایم.
با دوبار کلیک روی شیء ThisWorkbook پنجره کدنویسی برای این شیء مطابق شکل زیر فعال خواهد گردید.
ایجاد روال برای اجرای برنامه
ما در اولین برنامه خود با تقسیم هدف برنامه به وظایف کوچک کدهای برنامه خود را تهیه نمودیم، حالا باید وظایف را به گونه ای در VBA طبقه بندی نماییم که همه وظایف با هم و برای رسیدن به هدف واحد انجام وظیفه نمایند.
اگر مطالب قبلی سایت درباره روال ها را مطالعه کرده باشید، اشاره کردیم که VBA از روال ها برای دسته بندی دستورهایی که هدف مشترکی را دنبال می نمایند استفاده می نماید.
بنابراین ما برای اجرای برنامه خود نیازمند ایجاد یک روال می باشیم. با توجه به اینکه اولین برنامه ما قرار نیست که مقدار بازگشتی داشته باشد از یک روال Sub با نام myFirstVbaProgram برای محصور نمودن کدهای برنامه VBA خود به شکل استفاده می نماییم.
Sub myFirstVbaProgram()
End Sub
کدهای اولین برنامه VBA خود را به شکل زیر در بدنه روال myFirstVbaProgram تایپ نمایید.
Sub myFirstVbaProgram()
Dim strUserInput As String
Dim intCalculatedNumber As Integer
strUserInput = InputBox("عدد موردنظر خود را براي محاسبه توان دوم وارد نماييد")
intCalculatedNumber = strUserInput ^ 2
MsgBox intCalculatedNumber
End Sub
اجرای برنامه
برای اجرای اولین برنامه VBA از ویرایشگر VBE را ببندید و مطابق شکل زیر از سربرگ توسعه دهنده (Developer) روی گزینه Macros کلیک نمایید.
در پنجره Macro باز شده با انتخاب ماکروی ThisWorkbook.myFirstVbaProgram و کلیک روی کلید Run مطابق تصویر زیر اولین برنامه VBA خود را اجرا نمایید.
تبریک! شما اولین برنامه VBA خود را اجرا نموده اید.
دانلود فایل اکسل اولین برنامه VBA
بیشتر بخوانید
توابع توکار VBA | لیست کامل توابع داخلی در ویژوال بیسیک
عملگرهای VBA | انجام عملیات روی داده ها و ایجاد عبارت ها
حلقه در VBA | ایجاد حلقه برای تکرار دستورات در ویژوال بیسیک
کدهای VBA | آشنایی با کدها و دستور زبان برنامه نویسی VBA
دستور IF | اجرای مشروط کد با استفاده از عبارت های شرطی و منطقی
آرایه در VBA | آرایه ها و کاربرد آن ها در برنامه نویسی
میدان دید متغیر در VBA | نحوه دسترسی به متغیرها در قسمت های مختلف پروژه