آشنایی با مفاهیم تابع ، روال و ماژول در برنامه نویسی VBA

امروز می خواهیم با هم به بررسی یکی از مفاهیم کاربردی تحت عنوان تابع و روال در برنامه نویسی VBA بپردازیم .

مطمئنا اگر بخواهید وارد دنیای برنامه نویسی VBA  شوید یکی از عبارتهایی که به کرات با آن سر و کار خواهید داشت همین عبارت روال و تابع می باشد .

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

از طرفی هم می خواهیم ببینیم که وقتی صحبت از یک تابع و روال در برنامه نویسی VBA می کنیم این دو از لحاظ عملکرد و کارکردی چه تفاوتهایی با هم دارند . 

و دست آخر اینکه چگونه و از طریق چه راههایی می توان توابع و روال ها را در محیط برنامه نویسی VBA  ایجاد نمود .

پس تا انتهای این آموزش همراه من باشید .

مطلب مرتبط : آشنایی با توابع نوع Domain  در اکسس.

مفهوم  روال در برنامه نویسی VBA  .

اگر بخواهیم که تعریفی از آنچه که در زبان فارسی به آن روال می گوییم و در دنیای برنامه نویسی تحت عنوان Procducer  می شناسیم داشته باشیم اینطور می توانیم بگوییم که :

” یک روال و یا ماژول در برنامه نویسی VBA  عبارت است از یکسری از دستورالعمل هایی که در قالب خطوط کد نوشته می شوند و در قرار است برنامه ما با استفاده از کامپایلر یا همان مفسر این خطوط کد را خوانده و مطابق دستورات درج شده کاری را برای ما انجام دهد . ”

خوب شاید این تعریف تا حدی کتابی و کلیشه ای باشد .

بیایید تعریف ساده ای از یک روال یا رویه داشته باشیم .

ببینید تمام کارهایی که  یک برنامه برای ما انجام می دهد با استفاده از کدهایی است که در قالب یک زبان برنامه نویسی در اختیار برنامه خود قرار می دهیم .

 حال ممکن است این کاری که ما  می خواهیم انجام دهیم یک کار بسیار ساده مانند بستن یک فرم باشد .

در این صورت فرآیند کد نویسی ما نیز خیلی ساده و در حد یک خط کد خواهد بود .

مثلا به کد زیر نگاه کنید .

 

ما در این کد به کامپیوتر خود گفته ایم که اگر کاربر بر روی دکمه ای به نام cmdclose  کلیک کرد فرمی به نام frmsabt  را ببندد . 

می بینید که کدهایی را که برای این کار نوشتیم حتی به اندازه یک خط هم نشد .

اما فرض کنید از برنامه خود بخواهیم که کاربر یک تکس باکس بخصوص بر روی فرم را پر کند و برای این کار هم شروطی را در نظر بگیریم . 

حالا به چند تا از این شرطها دقت کنید :

  • شرط اول اینکه کاربر به هیچ عنوان این تکس باکس را خالی نگذارد .
  • شرط دوم اینکه کاربر فقط مجاز به وارد کردن عدد باشد و به هیچ عنوان از حروف نتواند استفاده کند .
  • شرط سوم هم اینکه تعداد ارقامی که وارد می کند از ۱۰ رقم بیشتر نشود .
  • در انتها هم اگر تمام این شرطها برقرار بود رنگ پس زمینه تکس باکس ما به رنگ سبز در آید .

بسیار خوب می بینید که ما در اینجا چهار کار مختلف را از برنامه می خواهیم. 

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

پس روال مجموعه ای است از یک یا چند خط کد که قرار است یک یا چند کار را برای ما انجام دهند .

 

خوب در اینجا کاری که ما باید بکنیم باید لیستی از کارهای خود را تهیه کنیم و برمبنای اولویتی که مدنظر خودمان است این کارها را در قالب کدهای VBA در اختیار برنامه خود قرار دهیم .

معرفی و آشنایی با انواع روالها در VBA

بطور کل ما در برنامه نویسی VBA با سه نوع مختلف از روالها سر و کار داریم .

این رویه ها شامل موارد زیر هستند :

۱- ساب پروسیجر ها (Sub producer )

 این دسته از پروسیجرها از متداولترین انواع روال ها یا همان پروسیجرها می باشند .

ما تمام کارهایی را که مد نظر مان است در داخل این پروسیجرها نوشته و برای اجرا در اختیار برنامه خود قرار می دهیم .

این نوع از روال ها برای خود یک ساختار مشخص دارند به این صورت که همیشه یک ساب پروسیجر با کلمه Sub  شروع و با کلمات End sub  تمام می شود .

 در بین این دو کلمه کلیدی نیز کدهای مورد نظر ما قرار می گیرند. 

() Sub  sbname 

کدهای مورد نظر

End sub 

۲- فانکشن پروسیجر ها (Function Producer )

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

اما در عین حال برخی از تفاوتها هستند که باعث تمایز این دو از هم می شوند .

اولین تفاوت این است که یک فانکشن پروسیجر با کلمه کلیدی Function  شروع و با کلمات کلیدی End Function  خاتمه می یابد .

 

() Function sbname 

کدهای مورد نظر

End Function

اما دومین و مهمترین تفاوتی که بین این دو وجود دارد این است که ما از یک فانکشن پروسیجر می توانیم خروجی بگیریم اما در ساب پروسیجر وقتی که قطعات کد ما اجرا شد و کار مورد نظر به سرانجام رسید همه چیز تمام شده و خروجی برای ما ایجاد نمی شود . 

 

مفهوم ماژول در برنامه نویسی VBA

یکی دیگر از مفاهیم و اصطلاحاتی که در برنامه نویسی VBA  با آن زیاد سرو کار داریم اصطلاح ماژول است .

چیزی که ما تحت عنوان ماژول می شناسیم در واقع فایل هایی هستند که روال های خود را در آن ها ایجاد می کنیم و برنامه این روال ها را در قالب این فایل ها و تحت عنوان ماژول ذخیره می کند . 

خود این ماژول ها هم به نوبه خود به دو دسته تقسیم می شوند . 

۱- کلاس ماژول

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

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

نوع دیگر از ماژول ها ماژول های استاندارد هستند .

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

 در تصویر زیر می توانید هر دوی این ماژول ها را در محیط اکسس مشاهده کنید

تابع و روال در برنامه نویسی VBA

 این مطلب به تدریج تکمیل تر خواهد شد .

اگر پیشنهاد و یا سوالی در خصوص این مطلب دارید که به تکمیل تر کردن این مطلب کمک می کند را می توانید در بخش نظرات درج کنید .

تابع و روال در برنامه نویسی VBA

آموزش اکسس بازدید : 83 views 6 فوریه, 2020 ۰