Me در VBA | کاربرد کلمه کلیدی Me در VBA و برنامه نویسی شیءگرا

کلمه کلیدی Me در VBA مشابه یک متغیر ضمنی (Implicit) عمل می نماید. در این آموزش موارد کاربرد این کلمه کلیدی را در VBA و ارتباط آن با برنامه نویسی شیءگرا را بررسی می نماییم.

متغیر ضمنی (Implicit)

اعلان متغیرها در VBA به دو صورت صریح و ضمنی انجام می شود. یک متغیر ضمنی در VBA نیاز به اعلان ندارد. کلمه کلیدی Me یک متغیر ضمنی است که VBA بصورت خودکار در هر ماژول کلاس ایجاد می نماید.

Me بصورت خودکار به یک نمونه خاص از کلاسی که کد در آن اجرا شده است اشاره دارد. به زبان ساده کلمه کلیدی Me وقتی در یک ماژول کلاس بکار می رود به همان ماژول کلاسی که در آن نوشته شده است اشاره دارد.

توجه داشته باشید که Me فقط در ماژول های کلاس و اشیاء کلاس در دسترس می باشد و بنابراین بخشی از برنامه نویسی شیءگرا می باشد.

کاربرد Me در VBA

با استفاده از کلمه کلیدی Me مقادیر ویژگی های یک کلاس را تغییر دهید و در صورت نیاز متدهای آن را اجرا نمایید. با توجه به کاربرد Me در ماژول های کلاس می توانیم کاربرد آن را در سه بخش زیر تقسیم بندی نماییم:

Me در اشیاء کلاس اکسس

Microsoft Access Class Objects
اشیاء کلاس مایکروسافت در اکسس

اشیاء کلاس اکسس شامل فرم ها و گزارش هایی است که در یک فایل اکسس ایجاد کرده اید. در تصویر می توانید نمای پنجره مرور پروژه در یک فایل اکسس نمونه را مشاهده نمایید.

همانطور که در تصویر نیز مشخص می باشد Form1 و report1 به ترتیب یک فرم و یک گزارش هستند و در ذیل پوشه Microsoft Access Class Objects طبقه بندی شده اند.

اشیاء کلاس اکسس، کلاس هایی هستند که توسط مایکروسافت بطور اختصاصی برای برنامه اکسس برنامه نویسی و ایجاد شده اند. هر کدام از این اشیاء دارای خواص و متدهای مختص به خود هستند که لیست کامل آنها در مرورگر شیء ویرایشگر VBE ذیل کتابخانه Access در کلاس Form در دسترس می باشد.

مثال

در مثال زیر با استفاده از کلمه کلیدی Me هنگام رخداد بارگذاری فرم [1] کنترلی بر روی فرم به نام txtName برای کاربر غیرفعال می شود. Me در اینجا به فرم از اکسس که کد در آن نوشته شده است اشاره دارد.

Me در اشیاء کلاس اکسل

Microsoft Excel Objects
اشیاء کلاس اکسل

اشیاء کلاس اکسل شامل صفحه ها و کاربرگ اکسل است. در تصویر می توانید نمای پنجره مرور پروژه در یک فایل اکسل نمونه را مشاهده نمایید.

در تصویر Sheet1 و ThisWorkbook به ترتیب یک صفحه و کاربرگ اکسل هستند و در ذیل پوشه Microsoft Excel Objects طبقه بندی شده اند.

لیست کامل آنها در مرورگر شیء ویرایشگر VBE ذیل کتابخانه Excel در دسترس می باشد.

مثال

در مثال زیر در ماکروی به نام sheetMacro با استفاده از Me مقدار سلول A1 صفحه را تغییر می دهیم. Me در کد زیر به صفحه ای از اکسل که کد در آن نوشته شده است اشاره دارد. بدیهی است که سلول A1 نیز در صفحه ای که Me به آن اشاره دارد قرار دارد.

Me در کلاس های ایجاد شده توسط کاربر

در مثال زیر در کلاس myWorkSheet آموزش روال Property Get یک متد جدید به نام meKeyword ایجاد می نماییم.
در این متد با استفاده از Me مرجع ویژگی setWs را تعیین و با تابع MsgBox ویژگی firstCell را به کاربر نمایش می دهیم.

حالا می توانیم یک ماکرو جدید ایجاد کنیم و متد meKeyword از کلاس myWorkSheet را اجرا نماییم.

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

1 × چهار =