-
ایجاد تابع دلخواه در اکسل
یکی از امکاناتی که از طریق کدنویسی VBA در اختیار کاربران است ، قابلیت ایجاد تابع دلخواه در اکسل است. با استفاده از این قابلیت شما خواهید توانست متناسب با نیاز خود یک تابع اختصاصی ایجاد کنید و در هرجا که آن را نیاز دارید فراخوانی و مورد بهره برداری قرار دهید. اصولا می توان گفت که توابع یا Functions در دسته بندی سابروتین یا رویه ها قرار دارند. شاید از خوتان بپرسید که سابروتین یا رویه چیست؟
-
سابروتین (رویه) (subroutine) چیست؟
هر برنامه ای که در محیط کدنویسی VBA در اکسل می نویسیم ، یک سابروتین (رویه) محسوب می شود. در واقع می توان گفت که برنامه های نوشته شده از سابروتین ها (رویه ها) تشکیل شده اند. هر سابروتین (رویه) با کلمه Sub آغاز می شود و با کلمه End sub خاتمه میابد. در بین این دو عبارت عملیاتی که تعریف میشود اجرا میگردد.
در مطالب قبلی با استفاده از کدنویسی در اکسل توانستیم مانع از ثبت متن در یک سلول شویم و حتی این امکان را فراهم کردیم که در مقابل Save as شدن یک فایل محدودیت ایجاد شود. حال اگر در هنگام کدنویسی تعدادی رویه را با هم ترکیب کنیم یک ماژول Module ساخته می شود که می تواند کارهای متعددی که از آن مورد انتظار است را انجام دهد.
توابع نیز به نوعی سابروتین هستند که با کلمه Function آغاز و با کلمه End Function خاتمه پیدا می کنند. ویژگی توابع آن است که با دریافت یک یا چند متغییر و انجام پردازش های لازم بر روی آنها می تواند نتیجه را در خروجی به کاربر تحویل دهد.
-
-
وارد محیط کدنویسی در اکسل شوید!
-
در ادامه قصد دارم تا مراحل گام به گام ایجاد تابع دلخواه در اکسل را از طریق کد نویبس VBA توضیح دهم. برای شروع کار لازم است تا بازدن کلید ترکیبی Alt+F11 وارد محیط کد نویسی در اکسل شویم. در تصویر زیر این محیط را مشاهده می کنید.
بعد از ورود به این محیط کافی است تا از طریق منوی Insert گزینه Module را انتخاب کنیم. با انجام این کار یک ماژول ساخته می شود و ما می توانیم کدنویسی خود را در داخل آن انجام داده و اقدام به ایجاد تابع دلخواه در اکسل کنیم، به این نوع از توابع User Defined Function گفته می شود.
مسأله ای که باید به آن توجه داشته باشید این است که ساختار یک تابع همانگونه خودتان با آن آشنایی دارید به گونه است که یک خروجی دارد. شما با توابع زیادی در اکسل سرو کار داشته اید و از آنها به کررات استفاده کرده اید.
مثلأ هرگاه یک تابع Sum را فراخوانی می کنید ، خروجی آن جمع دو یا چند عدد است ، یا در آموزش های قبلی در خصوص تابع Find در اکسل و عملکرد آن مطالبی را ارائه کردیم که بیانگر نحوه عملکرد توابع در اکسل است. در تابعی که بصورت دستی ایجاد می کنیم هم این مسأله صادق است.
مطلب پیشنهادی >> آموزش ماکرونویسی در اکسل
-
چگونه یک تابع بنویسیم؟
پس حالا به سراغ ایجاد یک تابع می رویم :
در تصویر بالا ملاحظه می کنید یک تابع ساده به نام mb2gb ایجاد کردیم که یک ورودی به نام mb دارد. همانگونه که دیده می شود برای ایجاد یک تابع باید بصورت زیر عمل کنیم:
Function() End Function
محاسباتی که قرار است در تابع انجام شود در بین دو عبارت Function و End Function قرار می گیرد. در این تابع می خواهیم تا با انجام یک محاسبه خیلی ساده واحد مگابایت را به گیگا بایت تبدیل کنیم.
بعد از آنکه نام تابع و ورودی آن را در خط اول برنامه تعریف کردیم باید یک علامت مساوی قرار دهیم و فرمول خود را بنویسیم.همانگونه که مشاهده می گردد ما ورودی تابع یعنی mb را بر عدد 1024 تقسیم کردیم تا عمل تبدیل واحد اندازه گیری حافظه ، مگابایت به گیگابایت انجام شود. سوالی که در ادامه ممکن است برای شما پیش بیاید این است که حالا چگونه می توان از تابع نوشته شده استفاده کرد؟ برای این سوال دو پاسخ وجود دارد:
-
استفاده از تابع نوشته شده در محیط سلول های اکسل
برای انجام اینکار مانند سایر توابع اکسل عمل می کنیم، یعنی با گذاشتن علامت مساوی اسم تابع مورد نظر را تایپ می کنیم. بعد از انجام اینکار ، نام تابع به نمایش در می آید. در این مثال ما بایستی ورودی تابع را به آن معرفی کنیم.
ورودی تابع را سلول B1 در نظر میگیریم و پس از آن با بستن پرانتز دکمه اینتر را از روی کیبورد فشار میدهیم تا نتیجه تابع به نمایش درآید.
همانطور که در تصویر بالا ملاحظه می کنید هنگامی که عدد 1024 را در سلول زرد رنگ وارد کردیم ، محاسبات بر اساس تابعی که نوشتیم انجام و عدد 1 به نمایش درآمد ، چون هر 1024 مگابایت معادل یک گیگابایت است. پس در مثال بالا دیدید که چطور می شود از تابع نوشته شده در سلولهای اکسل استفاده کرد. حالا می رویم سراغ روش بعدی.
-
استفاده از تابع نوشته شده در محیط کدنویسی VBA
در ادامه می خواهیم ببینیم که چطور می شود از تابع نوشته شده در سایر رویه ها استفاده کرد و با فراخوانی آن از نتایج آن در سایر محاسبات بهره برد. برای درک بهتر این مسأله یک مثال را با هم میبینیم.
در این مثال یک دکمه بر روی شیت قرار دادیم و وارد محیط کد نویسی دکمه در VBA شدیم. ابتدا یک متغیر بنام a از نوع Double ایجاد کردیم ، در مرحله بعدی مقدار این متغییر را با فراخوانی تابعی که قبلأ نوشته بودیم پُر کردیم.
در واقع در اینجا دیدیم که چگونه توانستیم تابع قبلی خود را فراخوانی و از آن برای محاسبات در سایر رویه ها استفاده کنیم. در نهایت هم مقدار متغیر a را با استفاده از یک Msgbox به نمایش در آوردیم که در تصویر زیر آنرا ملاحظه می کنید.
در ادامه از شما دعوت می کنم تا با تماشای فیلم زیر با نحوه ایجاد و بکار گیری یک نوع تابع که دارای دو متغیر هست آشنا شوید. تعریف تابع جدید در اکسل توانمندی شما را در کدنویسی اکسل بیشتر خواهد کرد و دست شما برای آنکه بتوانید در این محیط برنامه های کامل و موثرتری بنویسید باز تر خواهد گذاشت. در انتها باید به این نکته نوجه داشت که بایستی جهت ذخیره سازی فایل از فرمت Xlsm استفاده کنید.