روال Property Get در VBA | کاربرد روال Property Get در شیءگرایی

در این آموزش از مبحث برنامه نویسی شیء گرا در VBA کاربرد روال Property Get و خواندن مقدار یک ویژگی کلاس در VBA را بررسی می نماییم.

معرفی روال Property Get

در دو آموزش قبلی با کاربرد روال های Property Let و Property Set آشنا شدیم. کاربرد روال Property Let تعیین مقدار برای ویژگی یک شیء و کاربرد روال Property Set تعیین مرجع برای ویژگی یک شیء وقتی ویژگی هم یک شیء است، می باشد.

هر دو روال Property Let و Property Set باعث می شوند که یک داده در شیء ایجاد شده از کلاس ذخیره شود. در واقع این دو روال فقط نوشتنی (Write-only) می باشند و نمی توانید داده ای را از درون شیء بخوانند.

برای خواندن داده ها از درون شیء باید از روال Property Get استفاده نماییم. وقتی که در ساختار یک کلاس برای یک ویژگی، یک روال Property Get تعریف شود امکان خواندن مقدار آن ویژگی در خارج از شیء نیز مهیا می شود.

دریافت مقدار یک ویژگی با استفاده از روال Property Get

برای اینکه ویژگی یک شیء خواندنی نیز باشد بایستی از قبل روال Property Get در ساختار کلاسی که شیء به آن تعلق دارد اعلان شده باشد.

دریافت مقدار ویژگی ایجاد شده با روال Property Let

در مثال کلاس Fruit در آموزش روال Property Let وقتی که خواستیم مقدار ویژگی name را برای شیء orange دریافت کنیم کامپایلر خطای Invalid use of property را ایجاد و برنامه متوقف گردید.

برای اینکه بتوانیم ویژگی name را خواندنی نیز بکنیم، کد زیر را در پنجره کد کلاس Fruit اضافه نمایید.

حالا اگر مجدداً در یک ماژول استاندارد کد زیر را کپی و در پنجره Immediate نام روال test را تایپ و کلید Enter را فشار دهید. ملاحظه می کنید که این دفعه خطای Invalid use of property را دریافت نمی کنید و مقدار ویژگی در پنجره Immediate چاپ می شود.

دریافت مقدار ویژگی ایجاد شده با روال Property Set

گفته شد که ویژگی ای که با استفاده از روال Property Set مرجع آن تعیین می شود، خودش یک شیء می باشد. بنابراین دریافت مقدار برای یک شیء امکان پذیر نمی باشد و خطای حین اجرا (Run-Time Error '91') را ایجاد می نماید.

در اینگونه موارد فقط می توانیم ویژگی یک ویژگی را دریافت نماییم. برای باز شدن موضوع مثال روال Property Set را در نظر بگیرید. روال setWs مرجع ویژگی clsWS را تعیین می کرد. ویژگی clsWS یک شیء از کلاس Worksheet است، یعنی در واقع یک کاربرگ اکسل می باشد.

یکی از ویژگی های کلاس Worksheet ویژگی Cells می باشد که یک ویژگی فقط خواندنی می باشد و مقداری که در یک سلول وجود دارد را برمی گرداند. در کد زیر با استفاده از این ویژگی کلاس Worksheet که در ویژگی clsWS نیز وجود دارد می خواهیم مقدار اولین سلول اولین صفحه کاربرگ جاری اکسل را دریافت نماییم.

در پنجره کد کلاس myWorkSheet کد زیر را اضافه نمایید.

در یک ماژول استاندارد کد زیر را کپی نمایید و سپس در پنجره Immediate نام روال test را تایپ و کلید Enter را فشار دهید.

هر مقداری که در اولین سلول در اولین صفحه اکسل نوشته شده باشد در پنجره Immediate چاپ خواهد شد.

دریافت فایل اکسل مثال ها

ملاحظات

هنگام استفاده از روال Property Get در VBA بخاطر داشته باشید که :

  • تعداد پارامتر (آرگومان) های روال Property Get باید کمتر از روال Property Let یا Property Set متناظر با آن باشد.
  • نوع داده روال Property Get باید دقیقاً مشابه نوع داده روال Property Let یا Property Set متناظر با آن باشد.

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

3 × چهار =