
در آموزش رویه ها در VBA و شروع ساخت تابع در اکسل در مورد رویه ها و انواع اونها صحبت کردیم و دیدیم که دو نوع رویه داریم. یکی از نوع ساب (Sub) و دیگری از نوع تابع (Function). تو این آموزش میخوایم در مورد رویه تابع و ایجاد تابع دلخواه صحبت کنیم و ببینیم چطور میشه توابع دلخواه خودمون رو تو اکسل ایجاد کنیم و ازش در محاسبات استفاده کنیم.
برای اینکه یک تابع تعریف بشه باید دستورات اون رو بین دو دستور زیر قرار بدیم:
۱ ۲ ۳ ۴ ۵ |
Function . . . End Function |
همونطور که در آموزش قبلی گفتیم توابع بر خلاف ساب (Sub) باید یک مقدار رو برگردونن. این مقادیر باید این شرایط رو داشته باشند:
- نوع داده ای که یک تابع به ما میده باید در سطر اول شروع تابع تعریف شده باشه.
- مقداری که قراره توسط تابع برگردونده بشه باید اول به یک متغیر با نام همون تابع تخصیص داده بشه. این متغیر نیازی به تعریف شدن نداره، چون در هنگام تعریف تابع در واقع اون متغیر هم تعریف میشه.
یک مثال برای ایجاد تابع
فرض کنید میخوایم یکسری محاسبات ریاضی روی ۳ تا عدد انجام بدیم و نتیجه رو بدونیم. در تابع زیر سه آرگومان تعریف شده که سه عدد رو دریافت میکنه که جنس هر کدوم Double هست. قصد داریم دو آرگومان اول رو جمع بزنیم و آرگومان سوم رو ازشون کم کنیم:
۱ ۲ ۳ |
Function SumMinus(dNum1 As Double, dNum2 As Double, dNum3 As Double) As Double SumMinus = dNum1 + dNum2 - dNum3 End Function |
کد بالا نشون میده که چطوری داده ها توسط آرگومان به بدنه رویه ها منتقل میشن و ازشون در محاسبات استفاده میکنن. همچنین همونطور که میبینید این مقدار برگشتی این تابع از نوع Double تعریف شده که انتهای خط اول مشخص شده و نهایتا اینکه مقدار محاسبه شده درون متغیری همنام با تابع تعریف شده قرار داده میشه که به عنوان خروجی ازش استفاده میکنن.
فراخوانی یک تابع در وی بی (VBA) در زمان ایجاد تابع دلخواه
سوالی که بعد از ایجاد تابع دلخواه پرسیده میشه اینه که چطوری از توابعی که نوشتیم استفاده کنیم؟
اگر توابع تعریف شده درون یک ماژول (Module) قرار داشته باشند، امکان فراخوانی این توابع در سایر رویه ها هست. حتی امکان استفاده از اونا درون سلول های اکسل هم وجود داره و شما میتونید مثل یک تابع معمولی ازشون استفاده کنید و نتیجه رو تو سلول ببینید. پس برای استفاده از توابع دو راه وجود داره:
فراخوانی توابع با استفاده از سایر رویه ها
شما میتونید به سادگی یک تابع رو با تخصیص به یک متغیر فراخوانی کنید. مثال زیر نشون میده که چطوری تابعی که در قسمت بالا تعریف کردیم رو فراخوانی و استفاده میکنیم
۱ ۲ ۳ ۴ |
Sub main() Dim total as Double total = SumMinus(۵, ۴, ۳) End Sub |
تو این مثال یک ساب ایجاد کردیم و با دادن مقادیر به آرگومان تابع SumMinus نتیجه رو درون متغیر total قرار دادیم.
فراخوانی توابع از درون سلول های اکسل
راه دیگه برای استفاده از توابع تعریف شده، فراخوانی اونا از سلول ها هست. این کار مثل بقیه توابع اکسل هست و شما میتونید هر تابعی که تعریف کردید رو در سلول ها فراخوانی کنید.
پس میتونید تابع SumMinus رو با تایپ کردن درون سلول فراخوانی و مقداردهی کنید تا نتیجه محاسبات رو بیبینید:
=SumMinus(10,5,2)
تو این آموزش در مورد نحوه نوشتن (ایجاد تابع دلخواه) و فراخوانی توابع صحبت کردیم. در آموزش بعدی در مورد رویه ساب (Sub) صحبت میکنیم.
سلام و تشکر بخاطر اطلاعات علمی درون سایت شما
مخصوصا برنامه نویسی vba در اکسل که ببسیار مفید و کاربردی هست