VBA از انواع توابع زیر استفاده می کند:
توابع داخلی ریاضی؛
توابع ریاضی در VBA نشان داده نمی شوند.
توابع قالب بندی داده ها؛
توابع تبدیل را تایپ کنید
توابع داخلی ریاضی
ارزش برگشتی |
|||||||||||||||||||||
قدر مطلق عدد |
|||||||||||||||||||||
arctan(x) - مماس قوس مقدار پارامتر، بر حسب رادیان |
|||||||||||||||||||||
sin(x) - سینوس زاویه را از مقدار پارامتر، بر حسب رادیان برمیگرداند |
|||||||||||||||||||||
cos(x) - کسینوس زاویه مشخص شده بر حسب رادیان |
|||||||||||||||||||||
tg(x) - مماس زاویه را از مقدار پارامتر مشخص شده بر حسب رادیان برمی گرداند |
|||||||||||||||||||||
e x - عدد e را به توان مشخص شده برمیگرداند، جایی که e پایه لگاریتم طبیعی است. |
|||||||||||||||||||||
ln(x) - لگاریتم طبیعی مقدار یک عبارت عددی را برمی گرداند |
|||||||||||||||||||||
|
|||||||||||||||||||||
عدد تصادفی از بازه ) فرمت های اعداد نامگذاری شده
تابع گروهی از کدهای قابل استفاده مجدد است که می تواند در هر نقطه از برنامه شما فراخوانی شود. این کار نیاز به نوشتن مجدد همان کد را از بین می برد. این به برنامه نویسان اجازه می دهد تا جدا شوند برنامه بزرگبه بسیاری از عملکردهای کوچک و قابل مدیریت. علاوه بر توابع داخلی، VBA همچنین به شما امکان می دهد توابع تعریف شده توسط کاربر را بنویسید. در این مقاله یاد خواهید گرفت که چگونه توابع خود را در VBA بنویسید. تعریف تابعیک تابع VBA می تواند یک عبارت بازگشت اختیاری داشته باشد. اگر می خواهید مقداری را از یک تابع برگردانید، این امر ضروری است. به عنوان مثال، می توانید دو عدد را به یک تابع ارسال کنید و سپس می توانید انتظار داشته باشید که تابع ضرب خود را به تماس گیرنده شما برگرداند. توجه داشته باشید. یک تابع می تواند چندین مقدار جدا شده با کاما را به عنوان یک آرایه اختصاص داده شده به نام تابع برگرداند. قبل از استفاده از یک تابع، باید آن تابع خاص را تعریف کنیم. متداول ترین روش برای تعریف یک تابع در VBA استفاده از کلمه کلیدی Function به دنبال یک نام تابع منحصر به فرد است و ممکن است حاوی لیست پارامترها و عبارتی با کلمه کلیدی End Function باشد که پایان تابع را نشان می دهد. در زیر سینتکس اولیه آمده است. نحویک دکمه اضافه کنید و تابع زیر را اضافه کنید. تابع Functionname(parameter-list) عبارت 1 دستور 2 عبارت 3 ....... عبارت n تابع پایان مثالتابع زیر را اضافه کنید که یک ناحیه را برمی گرداند. توجه داشته باشید که مقدار/ مقادیر را می توان با نام خود تابع برگرداند. تابع find_area (طول به عنوان دو برابر، عرض اختیاری به عنوان متغیر) اگر IsMissing(Width) سپس find_area = طول * طول دیگر find_area = طول * عرض انتهای اگر تابع پایان فراخوانی تابعبرای فراخوانی یک تابع، با استفاده از نام تابع همانطور که در تصویر زیر نشان داده شده است، تابع را فراخوانی کنید. خروجی ناحیه مطابق شکل زیر به کاربر نمایش داده می شود. عملکرد نام ([فهرست_
استدلال ها]) یک مقدار همیشه حداقل یک بار و معمولاً زمانی که اجرای تابع به پایان می رسد به نام تابع اختصاص داده می شود. برای ایجاد یک تابع سفارشی، با ایجاد یک ماژول VBA شروع کنید (می توانید از یک ماژول موجود نیز استفاده کنید). کلمه کلیدی Function و به دنبال آن نام تابع و لیست آرگومان های آن (در صورت وجود) را در پرانتز وارد کنید. همچنین می توانید نوع داده مقدار بازگردانده شده توسط تابع را با استفاده از کلمه کلیدی As اعلام کنید (این اختیاری است اما توصیه می شود). کد VBA را که اقدامات لازم را انجام می دهد، قرار دهید و مطمئن شوید که مقدار مورد نیاز اختصاص داده شده است متغیر رویه، مطابق با نام تابع، حداقل یک بار در بدنه تابع. تابع با عبارت End Function به پایان می رسد. نام توابع از قوانین مشابه پیروی می کند. اگر قصد دارید از تابع در فرمول کاربرگ استفاده کنید، مطمئن شوید که عنوان به شکل آدرس سلول نباشد. همچنین، نام توابعی را که با نام توکارها مطابقت دارد، قرار ندهید توابع اکسل. اگر محدوده تابع تنظیم نشده باشد، پیش فرض Public است. توابع اعلام شده به عنوان خصوصی در گفتگو نمایش داده نمی شوند Function Wizard. تابع را می توان به یکی از روش های زیر فراخوانی کرد:
برنج. 3. فراخوانی یک تابع در پنجره اشکال زدایی برخلاف رویه ها، توابع در یک کادر محاوره ای ظاهر نمی شوند. ماکرو(منو توسعه دهنده –> کد –> ماکروها; یا Alt+F8). آرگومان های تابعآرگومان ها را می توان با متغیرها (از جمله آرایه ها)، ثابت ها، داده های کاراکتر یا عبارات نشان داد. برخی از توابع هیچ آرگومان نمی گیرند. توابع دارای هر دو آرگومان الزامی و اختیاری هستند. توابع بدون آرگوماناکسل چندین توابع داخلی دارد که هیچ آرگومان نمیگیرند، مانند RAND، TODAY، TODAY. ایجاد توابع سفارشی مشابه آسان است. مثلا: تابع کاربر() هنگامی که فرمول =User() را وارد می کنید، سلول نام را برمی گرداند کاربر فعلی(شکل 4). لطفاً توجه داشته باشید که هنگام استفاده از یک تابع بدون آرگومان در فرمول کاربرگ، باید پرانتزهای خالی را وارد کنید. برنج. 4. Formula =User() نام کاربر فعلی را برمی گرداند توابع تعریف شده توسط کاربر مانند توابع داخلی در اکسل رفتار می کنند. معمولاً یک تابع تعریف شده توسط کاربر در صورت نیاز مجدداً محاسبه می شود. اگر یکی از آرگومان های تابع تغییر کند. با این حال، می توانید توابع را به دفعات بیشتری محاسبه کنید. اگر یک اپراتور به رویه اضافه شود، وقتی هر سلولی تغییر می کند، این تابع دوباره محاسبه می شود Application.Volatile True متد Volatile شیء Application یک آرگومان دارد (درست یا نادرست). اگر تابع به صورت برجسته شده باشد فرار(قابل تغییر)، هر زمان که سلولی در کاربرگ تغییر کند دوباره محاسبه می شود. هنگامی که از آرگومان False متد Volatile استفاده می کنید، تابع تنها زمانی دوباره محاسبه می شود که یکی از آرگومان های آن در نتیجه محاسبه مجدد تغییر کند. اکسل دارای یک تابع RAND داخلی است. اما من خیلی دوست نداشتم که اعداد تصادفی با هر بار محاسبه مجدد کاربرگ تغییر کنند. بنابراین، من یک تابع ایجاد کردم که اعداد تصادفی را که با محاسبه مجدد فرمول ها تغییر نمی کنند، برمی گرداند. برای این کار از تابع داخلی VBA Rnd استفاده شد: تابع StaticRand() مقادیر به دست آمده با استفاده از این فرمول هرگز تغییر نمی کند. اما کاربر همچنان این توانایی را دارد که با استفاده از ترکیب کلید، فرمول را مجبور به محاسبه مجدد کند تابع با یک آرگومانبرنج. 5. جدول کمیسیون روش های مختلفی برای محاسبه کمیسیون وجود دارد. به عنوان مثال، با استفاده از فرمول زیر (اگر حجم فروش در سلول D1 قرار گیرد): IF(AND(D1>=0,D1<=9999,99);D1*0,08;ЕСЛИ(И(D1>= 10000; D1<=19999,99);D1*0,105; ЕСЛИ(И(D1>=20000;D1<=39999,99);D1*0,12;ЕСЛИ(D1>=40000;D1*0.14)))) این فرمول به چند دلیل شکست می خورد. اولاً، پیچیده است، تایپ کردن و متعاقباً ویرایش آن آسان نیست. دوم، مقادیر به شدت در فرمول تعریف شده اند و تغییر آن را سخت می کند. استفاده از VLOOKUP بسیار بهتر است (شکل 6). برنج. 6. استفاده از تابع VLOOKUP برای محاسبه کمیسیون حتی بهتر است (پس نیازی به استفاده از جدول جستجو ندارید) یک تابع سفارشی ایجاد کنید: کمیسیون عملکرد (فروش) پس از وارد شدن به یک ماژول VBA، این تابع می تواند در فرمول کاربرگ استفاده شود یا از رویه های دیگر VBA فراخوانی شود. وقتی فرمول زیر را در یک سلول وارد کنید، نتیجه 3000 خواهد بود: کمیسیون (B2) تابع DoubleCell() اگرچه این تابع کار می کند، اما در برخی موارد نتایج نادرستی ایجاد می کند. دلیل آن این است که موتور محاسبه اکسل محدوده هایی را که به عنوان آرگومان ارسال نمی شوند در نظر نمی گیرد. در نتیجه، گاهی اوقات تمام مقادیر مرتبط قبل از اینکه تابع مقداری را برگرداند، ارزیابی نمی شود. همچنین باید یک تابع DoubleCell بنویسید که مقدار سلول A1 را به عنوان آرگومان می گیرد. تابع DoubleCell (سلول) تابع با دو آرگومانتصور کنید که مدیر مورد بحث در بالا سیاست جدیدی را اجرا می کند که برای کاهش گردش کار کارکنان طراحی شده است: مبلغ کل کمیسیون های قابل پرداخت به ازای هر سالی که کارمند برای شرکت کار کرده است 1٪ افزایش می یابد. اجازه دهید تابع سفارشی کمیسیون را طوری تغییر دهیم که دو آرگومان بگیرد. آرگومان جدید نشان دهنده تعداد سال هایی است که کارمند برای شرکت کار کرده است. بیایید این را صدا کنیم ویژگی جدیدکمیسیون 2: عملکرد کمیسیون2 (فروش، سال) به عنوان مجرد تابع با آرگومان آرایهتوابع می توانند یک یا چند آرایه را به عنوان آرگومان بگیرند، آن آرایه(ها) را پردازش کرده و یک مقدار واحد را برگردانند. تابع زیر یک آرایه را به عنوان آرگومان می گیرد و مجموع عناصر آن را برمی گرداند. تابع SumArray(List) به عنوان Double تابع Excel INUMERIC قبل از اضافه کردن آن به کل، بررسی می کند که آیا هر عنصر یک عدد است یا خیر. افزودن این عملگر ساده اعتبارسنجی داده ها، خطاهای عدم تطابق نوع را هنگام تلاش برای انجام یک عملیات حسابی روی یک رشته حذف می کند. تابع با آرگومان های اختیاریبسیاری از توابع داخلی اکسل آرگومان های اختیاری دارند. یک مثال تابع LEFT است که کاراکترها را از سمت چپ رشته برمی گرداند. دارای نحو زیر است: ترک کرد( متن، تعداد_شخصیت) استدلال اول بر خلاف دومی لازم است. اگر آرگومان دوم ارائه نشود، اکسل مقدار 1 را در نظر می گیرد. توابع سفارشی طراحی شده در VBA همچنین می توانند آرگومان های اختیاری داشته باشند. شما یک آرگومان اختیاری را با پیشوند نام آرگومان با کلمه کلیدی اختیاری مشخص می کنید. در لیست آرگومان ها، آرگومان های اختیاری بعد از همه آرگومان های مورد نیاز تعریف می شوند. مثلا: تابع User2 (حروف بزرگ اختیاری به عنوان متغیر) اگر آرگومان False یا حذف شده باشد، نام کاربری بدون هیچ تغییری برگردانده می شود. اگر آرگومان تابع True باشد، نام کاربری به صورت کاراکتر برگردانده می شود. حروف بزرگ(با استفاده از تابع VBA Ucase). به اولین دستور تابع توجه کنید - حاوی تابع IsMissing VBA است که وجود یک آرگومان را تعیین می کند. اگر هیچ آرگومانی وجود نداشته باشد، عبارت، متغیر بزرگ را روی False (پیشفرض) تنظیم میکند. تابع VBA یک آرایه را برمی گرداندVBA حاوی بسیار است ویژگی مفیدآرایه نام دارد. یک مقدار Variant را برمیگرداند که حاوی یک آرایه است (یعنی چندین مقدار). اگر با فرمول های آرایه در اکسل آشنایی ندارید، پیشنهاد می کنم با اکسل شروع کنید. فرمول آرایه پس از کلیک وارد سلول می شود تابع MonthNames یک مثال ساده از استفاده از تابع Array در یک تابع تعریف شده توسط کاربر است. تابع MonthNames() تابع MonthNames آرایه افقی از نام ماه ها را برمی گرداند. در کاربرگ، 12 سلول را انتخاب کنید، فرمول =MonthNames() را وارد کنید و کلیک کنید تابعی که مقدار خطا را برمی گرداند
در زیر تابع RemoveVowels تبدیل شده است (به مثال در ابتدا مراجعه کنید). هنگامی که آرگومان آرگومان متنی نباشد از ساختار If-Then برای انجام یک عمل جایگزین استفاده می شود. این تابع تابع Excel ISTEXT را فراخوانی می کند که تعیین می کند آیا آرگومان حاوی متن است یا خیر. اگر سلول حاوی متن باشد، تابع یک نتیجه عادی را برمیگرداند. اگر سلول حاوی غیر متن باشد (یا خالی باشد)، آنگاه تابع خطای #VALUE را برمیگرداند! تابع RemoveVowels3(txt) As Variant توجه داشته باشید که نوع داده برای مقدار بازگشتی تابع تغییر کرده است. از آنجایی که تابع می تواند چیزی غیر از رشته را برگرداند، نوع داده به Variant تغییر کرده است. تابع با تعداد نامحدود آرگومانامکان ایجاد توابع سفارشی با تعداد نامحدود آرگومان وجود دارد. از یک آرایه به عنوان آخرین (یا تنها) آرگومان استفاده کنید و قبل از آن کلمه کلیدی ParamArray را قرار دهید (ParamArray فقط به آخرین آرگومان در لیست آرگومان یک رویه اشاره دارد. این همیشه یک نوع داده Variant است و همیشه یک آرگومان اختیاری است). تابع زیر مجموع همه آرگومان ها را برمی گرداند که می تواند یک مقدار (سلول) یا یک محدوده باشد. تابع SimpleSum(ParamArray arglist() As Variant) As Double اشکال زدایی تابعهنگام استفاده از فرمول کاربرگ برای آزمایش یک تابع، خطاهایی که در حین اجرا رخ می دهند در کادر محاوره ای پیام آشنا نمایش داده نمی شوند. فرمول به سادگی مقدار خطا (#VALUE!) را برمی گرداند. خوشبختانه، در هنگام اشکال زدایی توابع، این مشکل چندانی ایجاد نمی کند، زیرا همیشه چند راه حل وجود دارد.
برنج. 7. از پنجره اشکال زدایی برای نمایش نتایج هنگام اجرای یک تابع استفاده کنید در این حالت مقادیر دو متغیر Ch و i در پنجره اشکال زدایی نمایش داده می شود ( فوری) هر زمان که برنامه با دستور Debug.Print مواجه شد. مکان نما را در هر نقطه از رویه Test() قرار دهید و F5 را فشار دهید. روی انجیر شکل 7 نتیجه موردی را نشان می دهد که تابع آرگومان TusconArizona را می گیرد. با استفاده از روش MacroOptionsمیتوانید از روش MacroOptions شی Application استفاده کنید، که به شما امکان میدهد توابعی را که به عنوان بخشی از توابع داخلی اکسل توسعه دادهاید، اضافه کنید. این روش اجازه می دهد:
تابع توصیف () روی انجیر 8 نشان دادن کادرهای محاوره ای Function Wizardو آرگومان های تابعپس از اجرای روال DescribeFunction() برنج. 8. نمایش جعبه های محاوره ای Function Wizardو آرگومان های تابعبرای عملکرد سفارشی رویه DescribeFunction() فقط باید یک بار فراخوانی شود. پس از فراخوانی آن، اطلاعات مربوط به تابع در کتاب کار ذخیره می شود. اما اگر رویه را تغییر داده اید، دوباره آن را فراخوانی کنید. اگر با استفاده از روش MacroOptions یک دسته تابع را مشخص نکنید، تابع کاربرگ سفارشی در دسته ظاهر می شود. تعریف شده توسط کاربرکادر محاوره ای Function Wizard. جدول (شکل 9) اعداد دسته را فهرست می کند که می توانند به عنوان مقادیر آرگومان Category متد MacroOptions استفاده شوند. لطفاً توجه داشته باشید که برخی از این دستهها (10 تا 13) معمولاً در گفتگو نمایش داده نمیشوند Function Wizard. اگر یکی از توابع تعریف شده توسط کاربر به چنین دسته ای اختصاص داده شود، در کادر محاوره ای ظاهر می شود. استفاده از افزونه ها برای ذخیره توابع سفارشیبه صورت اختیاری، می توانید توابع سفارشی پرکاربرد را در یک فایل افزودنی ذخیره کنید. مزیت اصلی این روش این است که توابع را می توان در فرمول ها بدون مشخص کننده نام فایل استفاده کرد. فرض کنید یک تابع ZapSpaces سفارشی دارید. در فایل Myfuncs.xlsm ذخیره می شود. برای اعمال آن در فرمولی در کتاب کار دیگری (غیر از Myfuncs.xlsm)، باید فرمول زیر را وارد کنید: =Myfuncs.xlsm!ZapSpaces(A1:C12). اگر یک افزونه بر اساس فایل Myfuncs.xlsm ایجاد کنید و این افزونه در جلسه فعلی بارگذاری شود کار اکسل، سپس پیوند فایل را می توان با وارد کردن فرمول زیر نادیده گرفت: =ZapSpaces(A1:C12). ایجاد افزونه ها به طور جداگانه بررسی خواهد شد. یک مشکل احتمالی که می تواند از استفاده از افزونه ها برای ذخیره توابع تعریف شده توسط کاربر ایجاد شود، وابستگی کتاب کار به فایل افزودنی است. اگر کتاب کار را به کارمندی تحویل میدهید، حتماً یک نسخه از افزونه را نیز تحویل دهید که شامل عملکردهای مورد نیاز است. استفاده از توابع Windows APIVBA میتواند روشهایی را از فایلهای دیگری که ربطی به اکسل یا VBA ندارند، مانند فایلهای Dynamic Link Library (DLL) که توسط ویندوز و سایر برنامهها استفاده میشوند، قرض بگیرد. در نتیجه، VBA توانایی انجام عملیاتی را دارد که بدون روش های قرضی، خارج از توانایی های زبان است. Windows API (Application Programming Interface - Application Programming Interface) مجموعه ای از توابع در دسترس برنامه نویسان در محیط ویندوز. هنگامی که یک تابع ویندوز را از VBA فرا میخوانید، به API ویندوز دسترسی دارید. بسیاری از منابع ویندوزی که توسط برنامه نویسان ویندوز استفاده می شود را می توان از آنها دریافت کرد فایل های DLL، که برنامه ها و توابعی را که در حین اجرای برنامه متصل می شوند و نه در زمان کامپایل ذخیره می کنند. قبل از اینکه بتوان از یک تابع API ویندوز استفاده کرد، باید آن را در بالای یک واحد برنامه اعلام کرد. اگر ماژول برنامه یک ماژول استاندارد VBA نباشد (یعنی ماژول برای UserForm, ورقیا این کتاب، سپس تابع API باید به عنوان Private اعلام شود. اعلان یک تابع API دارای پیچیدگی هایی است - تابع باید تا حد امکان دقیق اعلام شود. بیانیه اعلان موارد زیر را به VBA می گوید:
پس از اعلام، تابع API می تواند در یک برنامه VBA استفاده شود. یک مثال تابع API را در نظر بگیرید که نام را نمایش می دهد پوشه های ویندوز(با استفاده از استاندارد بیانیه های VBAاین کار گاهی غیرممکن است). ابتدا اجازه دهید یک تابع API را اعلام کنیم: اعلان تابع PtrSafe GetWindowsDirectoryA Lib "kernel32" _ این تابع که دو آرگومان می گیرد، نام پوشه ای که سیستم عامل در آن نصب شده است را برمی گرداند. سیستم ویندوز. پس از فراخوانی این تابع، مسیر پوشه ویندوز در متغیر lpBuffer و طول رشته مسیر در متغیر nSize ذخیره می شود. مثال زیر نتیجه را در یک جعبه پیام نمایش می دهد: زیر ShowWindowsDir() در طی مراحل ShowWindowsDir، یک جعبه پیام نمایش داده می شود که محل پوشه ویندوز را نشان می دهد. گاهی اوقات شما نیاز به ایجاد یک پوشش برای توابع API دارید. به عبارت دیگر، شما تابع خود را با استفاده از تابع API ایجاد خواهید کرد. این رویکرد استفاده از تابع API را بسیار ساده می کند. در زیر نمونه ای از این تابع VBA آورده شده است: تابع WindowsDir() به عنوان رشته پس از اعلام این تابع، می توانید آن را از رویه دیگری فراخوانی کنید: MsgBox WindowsDir(). همچنین می توانید از این تابع در فرمول کاربرگ استفاده کنید: =WindowsDir(). توجه! هنگام استفاده از توابع Windows API در VBA از خراب شدن سیستم تعجب نکنید. قبل از تست کار خود را ذخیره کنید. تعیین وضعیت یک کلید
فرض کنید یک ماکرو VBA نوشته اید که از دکمه نوار ابزار اجرا می شود. اگر کاربر پس از کلیک روی دکمه کلید را نگه داشته باشد، میخواهید این ماکرو متفاوت اجرا شود در زیر برنامه ای است که تشخیص می دهد یک کلید در هنگام اجرای رویه رویداد Button_Click فشار داده شده است. برنج. 10. بررسی فشار دادن کلیدهای Shift، Ctrl و Alt کد تابع VBA را می توانید در فایل اکسل پیوست شده مشاهده کنید کار با ویژگی های ویندوز API می تواند بسیار پیچیده باشد. بسیاری از کتاب های برنامه نویسی بیانیه های تابع API را با مثال های مربوطه فهرست می کنند. به عنوان یک قاعده، شما فقط می توانید عبارات اعلان را کپی کنید و از توابع بدون کاوش در ماهیت آنها استفاده کنید. اکثر برنامه نویسان اکسل VBA عملکردهای API را به عنوان نوشدارویی برای اکثر وظایف می بینند. در اینترنت صدها نمونه کاملاً قابل اعتماد پیدا خواهید کرد که می توانید آنها را کپی و در برنامه خود جایگذاری کنید. AT فایل متنیشامل اعلان ها و ثابت های Windows API است. می توانید این فایل را در آن باز کنید ویرایشگر متنو اعلان های مناسب را در ماژول VBA کپی کنید. بر اساس کتاب. - م: دیالکتیک، 2013. - S. 287-323. عملکرد-رویهنوع خاصی از رویه VBA است که نتیجه را برمی گرداند. توابع رویه تعریف شده توسط کاربر، مانند توابع داخلی VBA، می توانند آرگومان های اختیاری و نامگذاری شده داشته باشند. شما نمی توانید از ضبط کننده ماکرو برای ضبط یک رویه عملکرد استفاده کنید، اگرچه می توانید یک ماکرو ضبط شده توسط ضبط کننده را ویرایش کنید و آن را به یک رویه عملکرد تبدیل کنید. تفاوت اصلی بین یک رویه تابع و سایر رویهها، علاوه بر این واقعیت که توابع مقداری را برمیگردانند و رویهها مقداری را برمیگردانند، این است که یک تابع رویه از آن استفاده میکند. کلید واژه ها عملکردو عملکرد پایانی. نحو: نام تابع () تابع کلمه کلیدی است که شروع یک تابع را اعلام می کند. نام - نام تابع. نام توابع از قوانین مشابهی با نامهای دیگر شناسه VBA پیروی میکند. Arglist - فهرست آرگومان های این تابع، عنصر اختیاری. نوع - هر نوع مقدار بازگشتی تابع. اگر نوع تعریف نشده باشد، نتیجه برگردانده شده توسط تابع رویه از نوع Variant است. نام = عبارت - انتساب تابعی که به VBA می گوید که تابع چه مقداری را باید برگرداند، اختیاری است. با این حال، همیشه باید یک دستور انتساب را در یک تابع رویه قرار دهید. عملکرد پایان - کلمات کلیدی که به عملکرد پایان می دهند. حتی اگر تابع هیچ آرگومان نداشته باشد (مثلاً Now، Date)، باید از پرانتز در اعلان تابع استفاده شود. به طور معمول، یک تابع برای انجام یک محاسبه و برگرداندن یک نتیجه در نظر گرفته شده است. هنگام اعلان یک رویه تابع، نام هر آرگومان ارسال شده به تابع مشخص می شود. نام آرگومان ها در لیست با کاما از هم جدا می شوند و باید از قوانینی پیروی کنند که برای هر شناسه VBA اعمال می شود. در زیر فهرستی از استفاده از سادهترین رویه تابع وجود دارد که فضاهای پیشرو و انتهایی را حذف میکند و تعداد کاراکترهای یک عبارت را شمارش میکند. بدون استفاده از تابع، لیست به صورت زیر خواهد بود: از این یک مثال ساده، من فکر می کنم ایده اصلی استفاده از توابع-روش ها واضح است - بهبود خوانایی کد برنامه و کاهش آن (به عبارت دیگر، رویه عملکرد زمانی نوشته می شود که همان "تکه" کد بیش از 2- رخ دهد. 3 بار در کد برنامه). در واقع، اگر رویه تابع ما نه از یک خط، بلکه مثلاً از 10 خط تشکیل شده باشد. و کد برنامه 5 بار از این تابع-روش استفاده می کند، سپس لیست کل برنامه کمتر از 38 خط خواهد بود. همانطور که قبلاً گفته شد، VBA همه آرگومان ها را به عنوان انواع Variant به تابع رویه ارسال می کند. شما می توانید انواع داده های خاصی را برای هر آرگومان در لیست آرگومان اعلام کنید. همچنین بخوانیدما با دستان خود نگهدارنده تلفن برای دوچرخه می سازیم کدام یک از دوچرخه سواران هنگام حمل و نقل مسافران قوانین را نقض می کنندبا یک هارد دیسک قدیمی چه کاری می توانید انجام دهید با یک هارد دیسک شکسته چه کاری می توانید انجام دهیدکلاس کارشناسی ارشد مواد و ابزار طراحی مدلسازی نحوه دریافت آینه زیرسیگاری و آهنربا از هارد = از یک HDD قدیمیکلیدواژه ها را وارد کنید. |