ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
11 visibility
موضوع: آفیس توسط:

شما قبلاً می دانید که می توانید از برنامه های فرعی در ماکروهای خود استفاده کنید. VBA همچنین به شما اجازه می دهد تا توابعی را تعریف کنید که می توانند در ماکروهای خود استفاده شوند. تفاوت بین توابع و زیر روال ها در این است که توابع می توانند مقادیر را برگردانند، در حالی که زیر روال ها نمی توانند. ماکرو زیر را در نظر بگیرید:

Sub Macro1()
    TooMany = TestFunc
    If TooMany Then MsgBox "Too many columns selected"
End Sub
Function TestFunc() As Boolean
    TestFunc = False
    If Selection.Columns.Count > 10 Then
       TestFunc = True
    End If
End Function

ماکرو (Macro1) تابع TestFunc را فراخوانی می کند. این تابع بسته به آزمایشی که انجام می دهد مقدار False یا True را برمی گرداند. سپس Macro1 بر اساس مقدار بازگشتی عمل می کند. توجه داشته باشید که نام تابع می تواند در سمت راست علامت مساوی ظاهر شود. این باعث می شود توابع بسیار قدرتمند و بخش مهمی از هر برنامه ای باشند. در داخل تابع، نتیجه به TestFunc، که نام خود تابع است، اختصاص داده می شود. این مقدار برگردانده شده توسط تابع است.

همانند زیر روال ها، می توانید پارامترهایی را نیز به توابع خود منتقل کنید. این در ماکرو زیر نشان داده شده است:

Sub Macro1()
    A = 12.3456
    MsgBox A & vbCrLf & RoundIt(A)
End Sub
Function RoundIt(X) As Integer
    RoundIt = Int(X + 0.5)
End Function

این ماکرو ساده (Macro1) یک عدد را تعریف می کند و سپس از یک جعبه پیام برای نمایش آن و نتیجه ارسال عدد به تابع RoundIt استفاده می کند. خروجی 12.3456 و 12 است. توجه کنید که پارامتر باید به تابع داخل پرانتز ارسال شود. همچنین توجه داشته باشید که تابع از همان نام متغیری که ارسال شده است استفاده نمی کند. این به این دلیل است که VBA مقدار X (آنچه تابع به آن نیاز دارد) را مجدداً اختصاص می دهد بنابراین با مقدار A (آنچه برنامه در حال ارسال به تابع است) مطابقت دارد. نکته مهمی که در انتقال پارامترها به توابع باید به خاطر داشته باشید این است که برنامه شما باید همان تعداد پارامتری را که تابع انتظار دارد ارسال کند و پارامترها باید از انواع منطبق و با ترتیب مناسب باشند.

اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

برای جلوگیری از این تایید در آینده, لطفا وارد شده یا ثبت نام کنید.
اگر حساب گوگل دارید به راحتی وارید شوید

0 پاسخ وجود دارد

سوال مشابهی یافت نشد

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما

23.2k سوال

8.5k پاسخ

608 دیدگاه

9.7k کاربر

132 نفر آنلاین
0 عضو و 132 مهمان در سایت حاضرند
بازدید امروز: 18021
بازدید دیروز: 22514
بازدید کل: 15165223
...