پروژه در VBA مجموعه ای از ماژول ها می باشد. [1] در این آموزش قسمت های مختلف یک پروژه VBA در اکسل را بررسی می کنیم و یک ماکروی آموزشی در هر یک از این قسمت ها ایجاد و ذخیره می نماییم.
فهرست مطالب
پیش نیازهای آموزشی
- آشنایی با محیط ویرایشگر کد ویژوال بیسیک در اکسل (VBE)
- آشنایی با انواع ماژول در VBA و تفاوت بین ماژول و کلاس
- آشنایی با انواع روال یا procedure و کاربرد آن در VBA
قسمت های مختلف یک پروژه VBA در اکسل
ماکروها در اکسل در ویرایشگر کد ویژوال بیسیک که به اختصار VBE (مخفف Visual Basic Editor) نامیده می شود، نوشته می شوند.
وقتی در یک کاربرگ اکسل جدید VBE را باز نمایید، نمای آن به صورت تصویر زیر می باشد.
بصورت پیش فرض پنجره مرور پروژه (Project Explorer) ویرایشگر VBE در اکسل شامل سه شاخه (مطابق تصویر) می باشد.
- VBAProject (Book1) : محتوای یک پروژه VBA، که در یک فایل اکسل به نام Book1 ذخیره شده است را نمایش می دهد.
- Microsoft Excel Object : اشیاء مرتبط با اکسل شامل صفحات اکسل و کاربرگ را نمایش می دهد.
- Sheet1 : شیء صفحه اکسل (Excel sheet) است و به صفحه Sheet1 در فایل اکسل Book1 اشاره دارد. در صورتی که کاربرگ اکسل بیشتر از یک صفحه داشته باشد، به طور خودکار در این قسمت اضافه خواهند شد.
- ThisWorkbook : شیء کاربرگ اکسل (Workbook) است و به کاربرگ Book1 اشاره دارد.
Sheet1 و ThisWorkbook دو تا از مکان هایی هستند که ماکروهای اکسل را می توانند در خود ذخیره نمایند. ماژول (استاندارد) مکان دیگری است که می تواند ماکروها را در خود ذخیره نماید.
افزودن ماژول (استاندارد) به پروژه VBA اکسل
برای ایجاد یک ماژول استاندارد در ویرایشگر VBE منوی Insert را باز و روی گزینه Module کلیک نمایید. VBE ماژول جدیدی با نام Module1 در پوشه Modules ایجاد می نماید.
در پنجره خواص (Properties Window) ویرایشگر VBE در قسمت (name) می توانید نام ماژول را تغییر دهید. در این آموزش نام ماژول را تغییر نمی دهیم.
نمای پنجره مرور پروژه (Project Explorer) ویرایشگر VBE پس از افزودن ماژول استاندارد مانند تصویر مقابل می باشد. همانطور که در تصویر نیز مشخص می باشد، VBE یک پوشه جدید بنام Modules ایجاد کرده است و ماژول Module1 را در آن قرار داده است.
مکان های ذخیره ماکرو در اکسل
با توجه به توضیحات داده شده در قسمت قبلی، در یک پروژه VBA در اکسل سه نوع محل ذخیره برای ماکروها وجود دارد.
اشیاء صفحه اکسل (Sheet1 (Sheet1))
در ویرایشگر VBA در اکسل به تعداد صفحاتی که در یک کاربرگ وجود دارد یک شیء صفحه بصورت خودکار در پروژه VBA ایجاد می شود. در هر یک از اشیاء صفحه می توانید ماکروهای موردنیاز را ایجاد و ذخیره نمایید.
در فایل اکسل این آموزش فقط یک صفحه بنام Sheet1 وجود دارد.
روی آیکون Sheet1 (Sheet1) دوبار کلیک نمایید تا پنجره کد این شیء باز شود. کد زیر را در پنجره کد کپی نمایید.
Public Sub sheetMacro()
MsgBox "این ماکرو در شیء صفحه ۱ اکسل ذخیره شده است.", vbInformation + vbMsgBoxRtlReading
End Sub
شیء ThisWorkbook اکسل
شیء ThisWorkbook در اکسل به کاربرگ اکسل اشاره دارد. بدیهی است که در هر پروژه VBA در اکسل فقط یک شیء از این نوع وجود خواهد داشت. در این شیء نیز می توانید ماکروهای اکسل را ایجاد و ذخیره نمایید.
روی آیکون ThisWorkbook دوبار کلیک نمایید تا پنجره کد این شیء باز شود. کد زیر را در پنجره کد کپی نمایید.
Public Sub ThisWorkbookMacro()
MsgBox "اين ماکرو در شيء کاربرگ ذخيره شده است.", vbInformation + vbMsgBoxRtlReading
End Sub
ماژول (استاندارد)
ماژول استاندارد مکان دیگری است که می توانید ماکروهای اکسل را در آن ایجاد و ذخیره نمایید. یک پروژه VBA در اکسل می تواند تعداد زیادی ماژول داشته باشد.
روی آیکون Module1 دوبار کلیک نمایید تا پنجره کد آن باز شود. کد زیر را در پنجره کد کپی نمایید.
Public Sub Module1Macro()
MsgBox "اين ماکرو در ماژول 1 ذخيره شده است.", vbInformation + vbMsgBoxRtlReading
End Sub
نمایش و اجرای ماکرو در اکسل
برای اجرای ماکروها در اکسل از سربرگ Developer گزینه Mocros را انتخاب نمایید.
همانطور که مشاهده می کنید اکسل سه ماکرو را مطابق تصویر زیر پنجره Macro نمایش می دهد. می توانید هر یک را انتخاب و روی گزینه Run کلیک نمایید تا نتیجه را مشاهده نمایید.
فایل اکسل این آموزش را می توانید از این لینک دریافت نمایید.
در آموزش بعد با قسمت های مختلف پروژه VBA در اکسل بیشتر آشنا خواهیم شد.