خواص کلاس در VBA | ایجاد خواص کلاس با استفاده از اعلان متغیر در VBA

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

آیا می‌دانید:

آموزش VBA به شما کمک می‌کند تا کنترل بیشتری بر بسته آفیس داشته باشید. با استفاده از این زبان برنامه‌نویسی، می‌توانید ماکروها و برنامه‌های پیشرفته‌ای بسازید که فرآیندهای طولانی و پیچیده را ساده کنند.

کاربرد خواص کلاس در برنامه نویسی

خواص یک شیء صفاتی است که آن شیء را توصیف می نماید. بعنوان مثال صفات یک میوه می تواند شامل نام، رنگ و مزه آن باشد.

برنامه نویسی رویه ای یا روال وار بر پایه نوشتن روال ها یا توابعی که عملیاتی بر روی داده ها انجام می دهند استوار است، در حالی که پایه برنامه نویسی شیءگرا (OOP)‌ بر ساختن اشیائی حاوی هم توابع (رفتارها)‌ و هم داده ها استوار است. [1]

کاربرد خواص یا صفات یک کلاس در برنامه نویسی شیءگرا نگهداری داده ها می باشد. خواص یک کلاس می توانند داده ها را در خود ذخیره نمایند و در صورت نیاز هر زمان که نیاز باشد داده ها را برگردانند.

روش های ایجاد خواص کلاس در VBA

در VBA دو روش برای ایجاد خواص (Properties) برای یک کلاس وجود دارد.

  • ایجاد خواص با اعلان متغیر Public
  • ایجاد خواص با استفاده از روال Property

در این آموزش می خواهیم با استفاده از VBA یک کلاس به نام Fruit ایجاد و خواص آن را با استفاده از اعلان دو متغیر Public ایجاد نماییم.

ایجاد کلاس Fruit

ویرایشگر کد VBA (VBE) در اکسل یا اکسس را باز کنید و یک ماژول کلاس جدید از منوی Insert ایجاد نمایید. در پنجره خواص (Properties Window) ویرایشگر VBE نام ماژول را از Class1 به Fruit تغییر و کلید Enter را فشار دهید.

در صورتی که پنجره خواص را مشاهده نمی کنید می توانید کلید F4 را فشار دهید تا نمایش داده شود.

با استفاده از آیکون و یا با استفاده از کلیدهای ترکیبی 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

نکته
در کد بالا اعلان متغیر شیء apple از نوع کلاس Fruit پیوند زودهنگام (Early-bound) متغیر به شیء نامیده می شود. استفاده از این روش برای اعلان متغیرهای حاوی شیء علاوه بر افزایش کارایی به شما این امکان را می دهد که از قابلیت تکمیل خودکار ویرایشگر VBE نیز بهره مند شوید.

نمایش خواص کلاس در VBA

بعنوان مثال پس از اعلان متغیر شیء apple در خط دوم ویرایشگر VBE به محض تایپ علامت . (نقطه) پس از apple یک لیست حاوی خواص کلاس Fruit مثل تصویر روبرو نمایش خواهد داد. در آینده خواهید دید که در این لیست رفتارهای کلاس نیز نمایش داده خواهد شد.

دیدگاهتان را بنویسید