اگرچه Excel در حال حاضر صدها توابع داخلی مانند SUM ، VLOOKUP ، LEFT و غیره دارد ، اما توابع داخلی موجود معمولاً برای انجام کارهای نسبتاً پیچیده کافی نیستند. با این حال ، نگران نباشید زیرا فقط باید خودتان توابع مورد نیاز را ایجاد کنید.
گام
مرحله 1. یک کتاب کار جدید ایجاد کنید یا کتاب کاری را که می خواهید با توابع تعریف شده توسط کاربر (UDF) پردازش کنید باز کنید
مرحله 2. ویرایشگر ویژوال بیسیک را در Microsoft Excel از طریق Tools-> Macro-> Visual Basic Editor باز کنید (یا میانبر Alt+F11 را فشار دهید)
مرحله 3. روی دکمه Module کلیک کنید تا یک ماژول جدید به کاربرگ خود اضافه کنید
می توانید بدون افزودن یک ماژول جدید ، یک UDF در یک کتاب کار ایجاد کنید ، اما این تابع در سایر کاربرگهای همان کتاب کار نمی کند.
مرحله 4. "سر" یا "نمونه اولیه" عملکرد خود را ایجاد کنید
نمونه اولیه تابع باید از ساختار زیر پیروی کند:
عملکرد عمومی "نام تابع" (پارامتر 1 به عنوان نوع 1 ، پارامتر 2 به عنوان نوع 2) به عنوان نوع نتیجه.
نمونه های اولیه می توانند تا آنجا که ممکن است عملکردهای زیادی داشته باشند و انواع آنها می تواند همه نوع داده های اساسی یا انواع شیء Excel در قالب Range باشد. می توانید پارامترهایی را به عنوان "عملگر" (عملگر) در نظر بگیرید که عملکرد روی آنها عمل می کند. به عنوان مثال ، وقتی SIN (45) را برای محاسبه سینوس 45 درجه می نویسید ، عدد 45 به عنوان پارامتر در نظر گرفته می شود. سپس ، کد تابع از این مقادیر برای انجام محاسبات و نمایش نتایج استفاده می کند.
مرحله 5. کد عملکرد را اضافه کنید تا مطمئن شوید که: 1) از مقدار داده شده توسط پارامتر استفاده می کنید. 2) نتیجه را به نام تابع منتقل کنید ؛ و 3) تابع را با جمله "تابع پایان" ببندید.آموزش برنامه نویسی در VBA یا هر زبان دیگری به زمان و راهنمایی دقیق نیاز دارد. خوشبختانه این توابع معمولاً دارای بلوک های کد کوچک هستند و از ویژگی های زبان برنامه نویسی استفاده چندانی نمی کنند. در اینجا برخی از عناصر زبان VBA قابل استفاده است:
- بلوک If (اگر) ، که به شما اجازه می دهد قسمتی از کد را تنها در صورت برآورده شدن شرایط اجرا کنید. به عنوان مثال:
- به شما می توانید کلمه کلیدی Else را به همراه قسمت دوم کد به دلخواه انتخاب نکنید.
- بلوک Do (do) ، که زمانی یا تا زمانی که شرط برآورده شود ، بخشی از کد while یا till را اجرا می کند. به عنوان مثال:
- به همچنین به خط دوم متغیر "اعلان" توجه کنید. می توانید متغیرهایی را برای استفاده بعدی به کد خود اضافه کنید. متغیرها به عنوان مقادیر موقتی در کد عمل می کنند. در نهایت ، اعلان تابع را BOOLEAN در نظر بگیرید ، که یک نوع داده است که فقط مقادیر TRUE یا FALSE را مجاز می کند. این روش برای تعیین اعداد اول بهینه نیست ، اما کد به گونه ای نوشته شده است که خواندن آن آسان است.
- برای بلوک (به) ، که مقدار مشخصی از کد را اجرا می کند. به عنوان مثال:
- یک مقدار ثابت که مستقیماً در فرمول سلول تایپ می شود. در این مورد ، متن (رشته) باید نقل قول شود.
- به عنوان مثال منابع سلول B6 یا محدوده ای مانند A1: C3 (پارامتر باید از نوع داده "محدوده" باشد)
-
یک تابع دیگر که در تابع شما قرار دارد (عملکرد شما همچنین می تواند در یک تابع دیگر قرار گیرد) ، به عنوان مثال: = Factorial (MAX (D6: D8))
مرحله 7. مطمئن شوید نتایج صحیح است
چندین بار از آن استفاده کنید تا مطمئن شوید که تابع قادر است مقادیر مختلف پارامترها را به درستی مدیریت کند:
نکات
- هنگام نوشتن بلوک های کد در ساختارهای کنترلی مانند If ، For ، Do و غیره ، مطمئن شوید که با فشار دادن چندین بار فاصله یا زبانه ، بلوک کد را دندانه وارد کرده اید (خط چپ را کمی داخل آن قرار دهید). این امر درک کد را آسان تر می کند و یافتن خطاها بسیار آسان تر می شود. علاوه بر این ، افزایش عملکرد آسان تر می شود.
- اگر نحوه نوشتن کد برای توابع را نمی دانید ، مقاله نحوه نوشتن ماکرو ساده در Microsoft Excel را مطالعه کنید.
- گاهی اوقات ، توابع برای محاسبه نتیجه نیازی به همه پارامترها ندارند. در این حالت ، می توانید از کلمه کلیدی Optional قبل از نام پارامتر در هدر تابع استفاده کنید. شما می توانید از تابع IsMissing (parameter_name) در کد خود استفاده کنید تا تعیین کنید که آیا به یک پارامتر مقدار داده شده است یا خیر.
- از اسامی استفاده نشده به عنوان توابع در Excel استفاده کنید تا هیچ توابع رونویسی و حذف نشوند.
- Excel دارای بسیاری از توابع داخلی است و اکثر محاسبات را می توان با استفاده از این توابع داخلی ، به صورت جداگانه یا به طور همزمان انجام داد. قبل از شروع برنامه نویسی خودتان ، به لیست توابع موجود اطمینان حاصل کنید. در صورت استفاده از توابع داخلی ، اجرا می تواند سریعتر انجام شود.
هشدار
- به دلایل امنیتی ، بسیاری از افراد ماکروها را غیرفعال می کنند. اطمینان حاصل کنید که به گیرندگان کتاب کار خود اطلاع دهید که کتاب کار ارائه شده دارای ماکرو است و این ماکروها به رایانه های آنها آسیب نمی رسانند.
- عملکرد استفاده شده در این مقاله بهترین راه برای حل مشکل مربوطه نیست. مثال برای توضیح استفاده از ساختارهای کنترل زبان استفاده می شود.
- VBA ، مانند سایر زبانها ، دارای چندین ساختار کنترل دیگر به غیر از Do ، If و For است. ساختار مورد بحث در اینجا تنها آنچه را که می توان در کد منبع تابع انجام داد توصیف می کند. راهنمای زیادی در اینترنت وجود دارد که می تواند برای یادگیری VBA مورد استفاده قرار گیرد.
نتیجه عملکرد عمومی (به عنوان عدد صحیح) به عنوان رشته
اگر مقدار> = 5 سپس
نتایج دوره = "پذیرفته شده"
در غیر این صورت
نتایج دوره = "رد شد"
پایان اگر
تابع پایان
به عناصر موجود در بلوک کد توجه کنید:
IF شرط پس کد کد دیگر کد END IF
تابع عمومی BilPrima (value As Integer) به صورت Boolean
Dim i As Integer
i = 2
BilPrima = درست است
انجام دادن
اگر مقدار / i = Int (مقدار / i) سپس
BilPrima = غلط
پایان اگر
i = i + 1
حلقه while i <value And NumberPrima = True
تابع پایان
دوباره به عناصر نگاه کنید:
LOOP WHILE/UNTIL را کد کنید
تابع عمومی فاکتور (مقدار بصورت عدد صحیح) به مدت طولانی
نتایج کم نور As Long
Dim i As Integer
اگر مقدار = 0 سپس
نتیجه = 1
ElseIf value = 1 سپس
نتیجه = 1
دیگری
نتیجه = 1
برای i = 1 برای ارزش گذاری
نتیجه = نتیجه * i
بعد
پایان اگر
فاکتوریل = نتیجه
تابع پایان
دوباره به عناصر نگاه کنید:
برای متغیر = حد پایین تا حد بالای کد بعدی
به همچنین ، به عنصر ElseIf اضافی در دستور If توجه کنید ، که به شما امکان می دهد گزینه های بیشتری را به کد در حال اجرا اضافه کنید. در نهایت ، تابع و متغیر "result" که Long نامیده می شود را در نظر بگیرید. نوع داده Long مقادیر بسیار بزرگتر از Integer را امکان پذیر می کند.
در زیر کد عملکردی که اعداد کوچک را به کلمات تبدیل می کند نشان داده شده است.
مرحله 6. به کتاب کار بازگردید و با نوشتن نماد "=" (=) و به دنبال آن نام تابع در سلول ، از تابع استفاده کنید
براکت های باز ("(") را بعد از نام تابع ، با استفاده از علامت بنویسید کما پارامترها را جدا کنید و با بستن براکت ها (")") پایان دهید. به عنوان مثال:
= NumberToLetter (A4)
به همچنین می توانید فرمول های خانگی را با جستجو در دسته بندی ها استفاده کنید تعریف شده توسط کاربر داخل گزینه Insert Formula. شما فقط روی دکمه کلیک کنید Fx در سمت چپ نوار فرمول. سه نوع فرم پارامتر در توابع وجود دارد: