کلاس ماژول و استاندارد ماژول -همه نکاتی که باید بدانید
سلام به سافت پلاس و یکی دیگر از آموزش های مربوط به برنامه نویسی VBA خوش آمدید . امروز می خواهیم در مورد دو تا اصطلاح خیلی مهم و کاربردی در برنامه نویسی وی بی ای با هم صحبت کنیم یعنی کلاس ماژول و استاندارد ماژول .
یکی از اولین اصطلاحاتی که معمولا در شروع برنامه نویسی وی بی ای چه در اکسس و چه در اکسل با آن زیاد برخورد خواهید کرد اصطلاحی است به اسم ماژول .
اما اینکه یک ماژول چی هست و چه کاربردی دارد را قرار است در این پست آموزشی مفصل راجع به آن با هم صحبت کنیم .
ما در این آموزش می خواهیم راجع به این موارد با هم صحبت کنیم :
فهرست محتوا
من علیرضا شهرآئینی هستم و اگر علاقمند به یادگیری این مباحث هستید از شما دعوت می کنم تا انتهای این آموزش من را همراهی کنید .
منظور از ماژول در برنامه نویسی VBA چیست ؟
ماژول یک اصطلاح و کلمه انگلیسی است . اگر به دنبال معنی آن در دیکشنری بگردید معانی مختلفی را می توانید برایش پیدا کنید .
اما یک عبارت توصیفی بهترین معنی بود که من برای این واژه پیدا کردم . آن عبارت هم این بود .
” هر یک از اجزای چیزی که می توان آنها را به طرق مختلف بر هم سوار کرد یا با هم در آمیخت ”
این تعریف یک تعریف کامل است اما مطمئنا این تعریف چیزی نیست که بخواهیم معنا و مفهوم ماژول را در برنامه نویسی وی بی ای بر مبنای آن فرا بگیریم .
پس بیایید این تعریف را کمی برای خودمان بشکافیم . برای این کار یک نگاهی به تصویر زیر بیندازید .
این تصویر مربوط به یک شاتل فضایی است . اما ربطش به موضوع آموزش ما یعنی ماژول چیست ؟
اگر دقت کنید یک شاتل فضایی را می شود به بخش های مختلفی تقسیم کرد . موشک های کمکی و یا مخزن سوخت یکی از این بخش هاست .
هر کدام از این اجزا را می توان روی همدیگر سوار کرد تا در نهایت به یک طرح کلی به نام شاتل فضایی برسیم . این همان تعریفی است که از اصطلاح ماژول داشتیم .
پس می شود گفت که هر کدام از این اجزا در حکم یک ماژول هستند .
حالا بیایید همین قضیه را به دنیای برنامه نویسی تعمیم بدهیم .
ما وقتی از یک کامپیوتر می خواهیم یک کار ی را برای ما انجام بدهد باید آن کار خاص را از طریق کدهایی برای کامپیوتر تعریف کنیم .
خیلی از مواقع هست که کارهایی که ما می خواهیم انجام بدهیم یک کار پیچیده است
معمولا ما برای اینکه بتوانیم یک کار پیچیده را راحت تر انجام بدهیم آن را به بخش های ساده تر تقسیم می کنیم . به هر کدام از این بخش ها که حاوی خطوط کدی هستند که به کامپیوتر می گویند که چطور یک کار پیچیده را انجام دهد در اصطلاح ماژول می گویند .
به تصویر زیر نگاه کنید.
اینجا تصویر مربوط به محیط کد نویسی اکسس است . اگر دقت کنید اینجا دو تا پوشه وجود دارد پوشه دوم مربوط به ماژول هایی است که خودمان می توانیم در برنامه ایجاد کنیم .
هر کدام از این ماژول ها را که باز کنید شامل خطوط کد مختلفی هستند که یک یا چند کار مختلف را برای برنامه تعریف کرده ایم .
چند نوع ماژول داریم ؟
توی برنامه نویسی وی بی ای ما دو نوع ماژول داریم . یکی را به اسم ماژول استاندارد می شناسیم و نوع دیگر را به اسم ماژول های کلاس .
در تصویر بالا هم هر دو تای این ماژول ها را می توانید مشاهده کنید .
ماژول هایی که در زیر مجموعه پوشه microsoft access class object هستند همه از نوع ماژول های کلاس هستند .
ماژول هایی که در زیر مجموعه پوشه modules قرار می گیرند همگی ماژول های استاندارد هستند .
فرق بین ماژول های استاندارد با ماژول های کلاس در چیست ؟
اولین تفاوت و فرق بین آنها در آیکون هایی است که برای هر کدام از آنها وجود دارد . این تفاوت را می توانید با دقت در تصویر بالا متوجه شوید .
اما فرق دوم که مهمترین فرق هم هست در عملکرد و کارایی هر کدام از این ماژول ها است .
ما با استفاده یک ماژول کلاس و کدهایی که در داخل آن قرار می دهیم می توانیم یک شی را در محیط برنامه نویسی به وجود بیاوریم .
اما منظور از شی چیست ؟
شی یا Object یکی از مفاهیم خیلی مهم و اساسی در برنامه نویسی است که حتما باید اطلاعات خوبی از مفهوم آن داشته باشید تا بتوانید با ماژول های استانداردی که قرار است یک شی را به وجود بیاورند کار کنید .
اگر می خواهید راجع به مفهوم شی اطلاعات بدست بیاورید حتما سری به لینک زیر بزنید .
یک تفاوت مهم دیگری که بین ماژول های کلاس و ماژول های استاندارد وجود دارد در زمینه حوزه دید ماژول هاست .
ماژول های استاندارد در حالت معمولی به صورت عمومی تعریف می شوند . یعنی اینکه هر کدی را که در داخل یک ماژول استاندارد قرار بدهید به راحتی از هر جای برنامه می توانید به آنها دسترسی داشته باشید .
اما در مورد ماژول های کلاس اینطور نیست . یعنی کدهایی که در داخل ماژول کلاس هستند معمولا به حالت محلی تعریف می شوند و خارج از روال موجود نمی توان به آنها دسترسی پیدا کرد .
منظور از شی در برنامه نویسی VBA چیست ؟
وقتی که صحبت از شی می شود باید آن را با سه تا چیز توصیف کنیم .
اول باید راجع به ویژگی های آن صحبت شود دوم راجع به کارهایی که آن شی می کند صحبت کنیم در آخر هم راجع به رویدادهای مربوط به آن صحبت شود .
خوب در برنامه نویسی ما سه تا عنوان Poperty – Event – Method را داریم که در خصوص اشیایی که می خواهیم داشته باشیم صحبت می کنند .
همه اینها را در داخل یک ماژول قرار می دهیم و اسم این ماژول را ماژول کلاس می گذاریم .
اجازه بدهید این قضیه را با یک مثال ساده بررسی کنیم .
به تصویر زیر نگاه کنید .
ماژول کلاس در حکم یک قالب است که از روی آن می شود اشیا را ایجاد کرد .
در تصویر بالا می خواهیم یک کیک درست کنیم . برای داشتن این کیک به سراغ قالب مورد نظر می رویم .
یعنی برای اینکه ما چیزی به اسم کیک داشته باشیم اول به سراغ ساختن قالب آن می رویم .
این قالب می تواند هر شکلی داشته باشد . می تواند دایره ای باشد یا مربعی یا مثل تصویر بالا یک قالب قلبی .
حالا که قالب کیک را داریم خیلی راحت می توانیم کیک مورد نظر خودمان را درست کنیم .
توی برنامه نویسی هم دقیقا یک چنین شرایطی را داریم .
در برنامه نویسی وی بی ای در اکسل یا اکسس ما با اشیا سر و کار داریم . اشیا در اینجا در حکم همان کیک مثال ما هستند .
در برنامه نویسی برای اینکه بتوانیم یک شی را ایجاد کنیم نیاز به تعریف کردن و ساختن یک قالب کلی برای آن شی داریم .
کار ساختن قالب اشیا در برنامه نویسی VBA در داخل ساختارهایی به اسم کلاس ماژول ها انجام می شود .
ساخت اشیا به کمک کلاس ماژول ها
اولین قدم برای تعریف کردن و یا ایجاد کردن یک شی در برنامه نویسی VBA این است که یک کلاس ماژول را برای خودتان ایجاد کنید .
ایجاد یک کلاس ماژول قسمت ساده کار است .
کافی است در محیط کد نویسی اکسل یا اکسس منوی Insert را باز کرده و روی گزینه Class Module کلیک کنید .به این کار برنامه یک کلاس ماژول را برایتان ایجاد می کند .
حالا برای تعریف شی مورد نظر خودتان باید شروع به کد نویسی کنید .
اما قبل از اینکه بخواهیم به سراغ تعریف یک کلاس و ایجاد شی از آن برویم اجازه بدهید یک دسته بندی برای کلاس های موجود در VBA تعریف کنیم .
بطور کلی کلاس ها را می شود به دو تا دسته تقسیم کرد .
دسته اول کلاس هایی هستند که از قبل توسط خود برنامه تعریف شده و در اختیار من وش ما قرار دارد و دیگر نیازی به تعریف کردن انها وجود ندارد .
بلکه ما خیلی راحت می توانیم با استفاده از آن کلاس ها شی مورد نظر خودمان را ایجاد کنیم .
مثلا به کدهای زیر نگاه کنید .
Dim Wk As Workbook
Dim ws AS Worksheet
ِDim Cht as Chart
اینجا 3 تا متغیر تعریف شده است. هر کدام از این متغیرها هم به یک کلاس خاص اشاره می کند .
workbook-worksheet و Chart تنها 3 تا از کلاس هایی هستند که در محیط اکسل از قبل تعریف شده اند و ما اینجا به آنها اشاره کرده ایم .
بعدا در مورد استفاده از این کلاس ها بیشتر با هم صحبت خواهیم کرد .
در ضمن برای ایجاد اشیا نیاز به آشنایی با کلمه کلیدی به اسم set دارید . توی مطلب آشنایی با کلمه کلیدی set و کاربرد ان در برنامه نویسی VBA مفصل راجع به آن صحبت کرده ام .
بیایید با هم یک کلاس ماژول بسازیم .
گفتیم یک کلاس ماژول در حُکم یک قالب برای شی مورد نظر ما می باشد . بنابراین یک قالب باید 3 تا چیز را توصیف کند .
1. ویژگی های شی ای که قرار است از روی آن ساخته شود .
2- متدها یا قابلیت هایی که شی مورد نظر قرار است داشته باشد .
3- رویدادهایی که برای آن شی می شود در نظر گرفت .
اول بیایید با یک مثال خیلی ساده کارمان را شروع کنیم .
برای شروع کار از منوی insert روی Class module کلیک کنید .
حالا در داخل کلاس ماژولی که برایتان ایجاد می شود کدهای زیر را وارد کنید .
Public name As String
Public color As String
Private price As Integer
با استفاده از این کدها ما 3 تا ویژگی را برای کلاس مورد نظرمان تعریف کرده ایم .
حالا هر جایی از پروژه خودتان می توانید از این کلاس به هر تعداد که شی خواستید ایجاد کنید .
این هم از مطلب مربوط به کلاس ماژول و کاربردش در برنامه نویسی VBA
امیدوارم که برایتان کاربردی و مفید بوده باشد .
خوشحال می شوم که نظر خودتان را در مورد این آموزش در قسمت دیدگاهها درج کنید .
در ضمن اگر علاقمند به یادگیری و کار با زبان برنامه نویسی وی بی ای در اکسل هستید به شما پیشنهاد می کنم که حتما از دوره جامع برنامه نویسی در اکسل که در داخل سایت قرار دارد استفاده کنید .
مطالب زیر را حتما مطالعه کنید
چطور زبان ورود اطلاعات در اکسس را کنترل کنیم ؟
با رعایت این نکات تبدیل به یک برنامه نویس حرفه ای در اکسل شوید .
۷ نکته مهم در برنامه نویسی VBA که باید آنها را بدانید
ماکرو نویسی در اکسل |ببینید که ماکروها چقدر کاربردی اند.
زبان وی بی ای مرده است
۱۰ کاری که بدون برنامه نویسی VBA قادر به انجامش نبودید .
توی این آموزش کارهایی رو بررسی می کنیم که فقط با استفاده از کدهای وی بی ای می شود آنها را در آفیس انجام داد .
دیدگاهتان را بنویسید