تابع دلخواه در اکسل
برنامه نویسی در اکسل به کمک نوعی از زبان ویژوال بیسیک انجام می شود که به اختصار به آن VBA (Visual Basic for Applications) گفته می شود. این امکان همزمان با نصب برنامه های آفیس نصب می شود و نیاز به نصب جداگانه ندارد.
برای آشنایی مختصر با این برنامه ذکر چند اصطلاح ضروری است.
تعریف سابروتین
سابروتین (subroutine) : برنامه های بزرگ نوشته شده در محیط VBA از قسمتهای کوچکتری به نام سابروتین (رویه) تشکیل می شوند.
هر سابروتین با کلمه کلیدی Sub شروع می شود و با کلمه کلیدی End Sub پایان می یابد.
در واقع می توان گفت که سابروتین کوچکترین واحد یک برنامه است که دستورات داخل این قسمت باعث انجام کاری می شوند. کلمات روتین – پراسیجر – متد و فانکشن نیز نامهای دیگری برای سابروتین می باشند.
ماژول: تعدادی از سابروتین ها با هم تشکیل یک ماژول را می دهند.
مراحل نوشتن برنامه
پس از باز کردن اکسل با زدن کلیدهای Alt+F11 به محیط برنامه نویسی (VBA) وارد می شویم.
از پنجره ظاهر شده و از منوی Insert گزینه Module را انتخاب میکنیم تا یک ماژول جدید ایجاد شود.
مطابق شکل پنجره project explorer ظاهر می شود. اگر این پنجره را نمی بینید می توانید از گزینه View آن را نمایش دهید یا از Ctrl+R برای نمایش آن استفاده نمایید.)
برای بار دوم از منوی insert گزینه Procedure را انتخاب نمایید تا پنجره add procedure باز شود.
در قسمت name نام دلخواه و در قسمت type گزینه function را انتخاب نمایید و کلید Ok را فشار دهید.
در این حالت عبارت () public function name در خط بالا و End function در خط پایین ظاهر می شود.
در این مثال ما به جای name از کلمه دلخواه addnum استفاده کرده ایم.
چون می خواهیم در هنگام اجرای تابع آدرس دو سلول دلخواه را وارد نماییم از آرگومان (ورودی) num1 و num2 در داخل پرانتز استفاده کرده ایم که ورودی ها با علامت کاما از همدیگر جدا شده اند.
درج توضیحات در برنامه
برای خوانایی برنامه از یک خط توضیح استفاده کرده ایم که در اول آن علامت کاما قرار گرفته است.
(عبارت بعد از علامت کاما به عنوان توضیحات می باشد و برنامه پردازشی روی آن انجام نمی دهد)
در خط بعد نام تابع را برابر جمع دو مقدار ورودی قرار داده ایم.
در واقع این تنها خط برنامه می باشد که حاصل جمع دو سلول را با هم جمع می کند.
عبارت End function نیز پایان برنامه را اعلام می کند.
تصاویر زیر مراحل اجرای کار را مشخص می کنند.
حال سئوال این است: با وجودی که اکسل دارای دستورات پیشرفته برای جمع می باشد چه نیازی به این تابع وجود دارد؟
در واقع این یک نمونه است و نشان میدهد که اگر توابعی که مورد نیاز ما بوده و در اکسل موجود نیستند و یا می خواهیم به روش ساده تری کاری را انجام دهیم، می توانیم با استفاده از امکانات برنامه نویسی این قابلیت ها را به برنامه اکسل اضافه کنیم.
حال برای استفاده از تابعی که ایجاد کرده ایم به محیط اکسل باز میگردیم.
در یک سلول علامت = را تایپ می کنیم و نام تابعی که ایجاد کرده ایم را وارد می کنیم (در اینجا addnum) ملاحظه میشود با تایپ چند حرف اول از نام تابع اکسل تابع ما را تشخیص داده و نام کامل آن را برای ما نمایش می دهد.
در واقع توابعی که توسط کاربر ایجاد می شوند در قسمتی به نام User Define قرار می گیرند که از لیست Insert function قابل دسترسی هستند.
ذخیره تابع
برای ذخیره صفحه حاوی برنامه باید آن را به صورت Enabled Workbook -Excel Macro ذخیره نماییم. در غیر این صورت تابع کار نخواهد کرد.
اکسل به طور پیش فرض برنامه های موجود در یک فایل را غیر فعال (Disable) می کند چونکه ممکن است این برنامه یک نوع ویروس باشد.
بعد از باز کردن فایل اکسل که شامل برنامه VBA می باشد با کلیک بر روی گزینه Enable Content که در بالای صفحه ظاهر می شود، برنامه را فعال کنید در غیر این صورت به برنامه دسترسی نخواهد داشت.
سلام ببخشید من alt+f11 رو میزنم وارد محیط برنامه نویسی نمیشم … ممنون میشم راهنمایی کنید
سلام.
اگر از لپ تاپ استفاده می کنی باید fn+alt+F11 استفاده کنی. یا از مسیر
file-options-customize ribbon تیک کنار گزینه Developer را فعال کنید تا ابزارهای کدنویسی به نوار ابزار اکسل اضافه گردد و از این قسمت می توانید به بخش های مختلف VBA دسترسی داشته باشید