در آموزش قبل با مفاهیم شیء و کلاس در VBA آشنا شدیم. در این آموزش می خواهیم یک کلاس ساده ایجاد و روش های مختلف تعریف خواص (Properties) یک کلاس در VBA را بررسی کنیم.
فهرست مطالب
کاربرد خواص کلاس در برنامه نویسی
خواص یک شیء صفاتی است که آن شیء را توصیف می نماید. بعنوان مثال صفات یک میوه می تواند شامل نام، رنگ و مزه آن باشد.
برنامه نویسی رویه ای یا روال وار بر پایه نوشتن روال ها یا توابعی که عملیاتی بر روی داده ها انجام می دهند استوار است، در حالی که پایه برنامه نویسی شیءگرا (OOP) بر ساختن اشیائی حاوی هم توابع (رفتارها) و هم داده ها استوار است. [1]
کاربرد خواص یا صفات یک کلاس در برنامه نویسی شیءگرا نگهداری داده ها می باشد. خواص یک کلاس می توانند داده ها را در خود ذخیره نمایند و در صورت نیاز هر زمان که نیاز باشد داده ها را برگردانند.
روش های ایجاد خواص کلاس در VBA
در VBA دو روش برای ایجاد خواص (Properties) برای یک کلاس وجود دارد.
- ایجاد خواص با اعلان متغیر Public
- ایجاد خواص با استفاده از روال Property
در این آموزش می خواهیم با استفاده از VBA یک کلاس به نام Fruit ایجاد و خواص آن را با استفاده از اعلان دو متغیر Public ایجاد نماییم.
ایجاد کلاس Fruit
ویرایشگر کد VBA (VBE) در اکسل یا اکسس را باز کنید و یک ماژول کلاس جدید از منوی Insert ایجاد نمایید. در پنجره خواص (Properties Window) ویرایشگر VBE نام ماژول را از Class1 به Fruit تغییر و کلید Enter را فشار دهید.
با استفاده از آیکون و یا با استفاده از کلیدهای ترکیبی Ctrl+S اکسل یا اکسس را ذخیره نمایید. پنجره پروژه در اکسل یا اکسس شما باید به شکل زیر باشد.
حالا می توانید در پنجره کد، خواص (Properties) و رفتارهای (Methods) کلاس را تعریف نماییم.
ایجاد خواص کلاس Fruit
VBA با اعلان یک متغیر Public (عمومی) در سطح ماژول یک کلاس یک خاصیت هم نام با نام متغیر برای آن کلاس ایجاد می نماید. کدهای زیر دو خاصیت name و color برای کلاس Fruit ایجاد می نمایند.
Public name As String
Public color As String
Private count As Integer
متغیر count با دستور Private اعلان شده است و سطح دسترسی اختصاصی دارد و بنابراین جزء خواص کلاس نمی باشد.
ایجاد یک شیء از روی کلاس Fruit
از منوی Insert روی گزینه Module کلیک نمایید تا یک ماژول (استاندارد) ایجاد گردد. نحوه تعیین مقادیر برای خواص یک کلاس و دریافت مقدار خواص یک کلاس را می توانید در کدهای زیر مشاهده نمایید.
Sub test()
Dim apple As New Fruit ' اعلان و ایجاد شیء جدید بطور همزمان
apple.name = "apple" ' تعیین مقدار برای خاصیت نام کلاس
apple.color = "red" ' تعیین مقدار برای خاصیت رنگ کلاس
Debug.Print apple.name ' دریافت مقدار خاصیت نام کلاس
Debug.Print apple.color ' دریافت مقدار خاصیت رنگ کلاس
End Sub
بیشتر بخوانید
توابع توکار VBA | لیست کامل توابع داخلی در ویژوال بیسیک
عملگرهای VBA | انجام عملیات روی داده ها و ایجاد عبارت ها
حلقه در VBA | ایجاد حلقه برای تکرار دستورات در ویژوال بیسیک
کدهای VBA | آشنایی با کدها و دستور زبان برنامه نویسی VBA
دستور IF | اجرای مشروط کد با استفاده از عبارت های شرطی و منطقی
آرایه در VBA | آرایه ها و کاربرد آن ها در برنامه نویسی
میدان دید متغیر در VBA | نحوه دسترسی به متغیرها در قسمت های مختلف پروژه