توابع توکار VBA | لیست کامل توابع داخلی در ویژوال بیسیک

زبان VBA (Visual Basic for Applications) مجموعه‌ای گسترده از توابع داخلی یا Built-in Functions را در اختیار کاربر قرار می‌دهد. این توابع برای انجام محاسبات عددی، تبدیل داده‌ها، پردازش متن، کنترل خطا و بسیاری عملیات دیگر استفاده می‌شوند.

در این آموزش از ایران VBA فهرست کامل توابع داخلی VBA را همراه با توضیح، مثال و نتیجه بررسی می‌کنیم تا بتوانید از آن‌ها در پروژه‌های خود به‌صورت مؤثر استفاده کنید.

تعریف

توابع توکار یا ذاتی یا داخلی توابعی هستند که در زبان برنامه نویسی VBA پیاده سازی و بهینه سازی آنها توسط کامپایلر صورت گرفته است و در دسترس برنامه نویس قرار گرفته اند.

توابع توکار به منظور افزایش سرعت، سادگی و کارایی درون کامپایلر VBA تعبیه شده اند تا عملیات پرکابردی را که خلال برنامه نویسی ممکن است مورد استفاده اکثر برنامه نویسان قرار بگیرد را بر عهده بگیرند. بعنوان مثال تابع توکار Sin به منظور محاسبه سینوس در کامپایلر قرار داده است.

توابع توکار مانند روال Function عملیاتی را انجام می دهند و در پایان مقدار بازگشتی را نتیجه می دهند، با این تفاوت که معماری توابع توکار توسط کامپایلر می شود و همچنین توابع توکار در VBA بعنوان روال دسته بندی نمی شوند، به این معنا که توابع توکار تا زمانی که درون یک روال قرار نگیرند هیچ عملیاتی را انجام نخواهند داد.

VBA طیف وسیعی از توابع داخلی را پشتیبانی می نماید که در زیر با آنها آشنا خواهیم شد.

آیا می‌دانید:

آموزش VBA برای هر کسی که به دنبال بهبود کارایی است، ضروری است. با یادگیری این زبان، می‌توانید ابزارهای شخصی‌سازی‌شده بسازید که به شما در تسریع و دقت بیشتر در کارها کمک می‌کنند.

۱- توابع تبدیل (Conversion functions)

توابع تبدیل در VBA برای تغییر نوع داده یا مقدار به فرمتی دیگر به‌کار می‌روند. این توابع هنگام کار با ورودی‌های متنی یا داده‌های ترکیبی بسیار مفید هستند.

تابع دستور زبان هدف مثال نتیجه
Asc Asc(string) محاسبه کد اَسکی اولین نویسه آرگومان string Asc("ABC") 65
Chr Chr(charcode)
ChrB(charcode)
ChrW(charcode)
محاسبه نویسه مرتبط با کد نویسه
محاسبه داده‌های بایت مرتبط با کد نویسه
محاسبه نویسه یونیکد مرتبط با کد نویسه
Chr(65) A
CVErr CVErr(errornumber) ایجاد کد خطای تعریف‌شده توسط کاربر CVErr(2001) Error 2001
Format Format(Expression, [Format], [FirstDayOfWeek], [FirstWeekOfYear]) قالب‌بندی عبارت Format("17:4:23", "hh:mm:ss") 17:04:23
Hex Hex(number) تبدیل اعداد از مبنای ۱۰ به مبنای ۱۶ Hex(10) A
Oct Oct(number) تبدیل اعداد از مبنای 10 به مبنای 8 Oct(459) 713
Str Str(number) محاسبه رشته متناظر با عدد Str(459) " 459"
Val Val(string) مقدار عددی اعداد موجود در یک رشته را محاسبه می‌کند Val(" 2 45 7") 2457

۲- توابع ریاضی (Math functions)

توابع ریاضی VBA برای محاسباتی مانند سینوس، لگاریتم، قدر مطلق و تولید اعداد تصادفی استفاده می‌شوند. در ادامه برخی از پرکاربردترین آن‌ها آورده شده است.

تابع دستور زبان هدف مثال نتیجه
Abs Abs(number) محاسبه قدر مطلق عدد Abs(-50.3) 50.3
Atn Atn(number) محاسبه آرک تانژانت یک عدد (نتیجه تابع بر حسب رادیان نمایش داده می شود) Atn(1)*4 3/14159265358979
Cos Cos(number) محاسبه کسینوس زاویه (آرگومان number بر حسب رادیان باید تکمیل شود) Cos(0) 1
Exp Exp(number) تابع نمایی ex Exp(1) 2/71828182845905
Int
Fix
Int(number)
Fix(number)
محاسبه قسمت صحیح عدد (تابع Int همواره number را به نزدیکترین عدد صحیح محاسبه می نماید ولی تابع Fix فقط قسمت اعشاری number را حذف می نماید) Int(99.8)
Fix(99.8)
Int(-99.2)
Fix(99.2)
99
99
100-
99-
Log Log(number) محاسبه لگاریتم طبیعی آرگومان number Log(2/71828182845905) 1
Rnd Rnd [(Number)] ایجاد عدد اتفاقی کمتر از 1 و صفر Int((6 * Rnd) + 1) ایجاد یک عدد اتفاقی بین یک و شش
Sgn Sgn(number) علامت آرگومان number را بر می گرداند Sgn(12)
Sgn(-12)
Sgn(0)
1
-1
0
Sin Sin(number) محاسبه سینوس زاویه (آرگومان number بر حسب رادیان باید تکمیل شود) Sin(0) 0
Sqr Sqr(number) محاسبه رادیکال عدد در مبنای ۲ Sqr(4) 2
Tan Tan(number) محاسبه تانژانت زاویه (آرگومان number بر حسب رادیان باید تکمیل شود) tan(0.785398) 0/999999673205157

۳- توابع تبدیل نوع داده (Type conversion functions)

در VBA گاهی لازم است نوع داده یک متغیر (مثلاً رشته یا عدد) تغییر کند. توابع این بخش برای انجام این کار طراحی شده‌اند.

تابع دستور زبان هدف نوع داده نتیجه تابع
CBool CBool(expression) تبدیل نوع داده آرگومان تابع به نوع داده Boolean Boolean
CByte CByte(expression) تبدیل نوع داده آرگومان تابع به نوع داده Byte Byte
CCur CCur(expression) تبدیل نوع داده آرگومان تابع به نوع داده Currency Currency
CDate CDate(expression) تبدیل نوع داده آرگومان تابع به نوع داده Date Date
CDbl CDbl(expression) تبدیل نوع داده آرگومان تابع به نوع داده Double Double
CDec CDec(expression) تبدیل نوع داده آرگومان تابع به نوع داده Decimal Decimal
CInt CInt(expression) تبدیل نوع داده آرگومان تابع به نوع داده Integer Integer
CLng CLng(expression) تبدیل نوع داده آرگومان تابع به نوع داده Long Long
CLngLng CLngLng(expression) تبدیل نوع داده آرگومان تابع به نوع داده LongLong LongLong (فقط در پلتفرم های ۶۴ بیتی)
CLngPtr CLngPtr(expression) تبدیل نوع داده آرگومان تابع به نوع داده LongPtr LongPtr
CSng CSng(expression) تبدیل نوع داده آرگومان تابع به نوع داده Single Single
CStr CStr(expression) تبدیل نوع داده آرگومان تابع به نوع داده String String
CVar CVar(expression) تبدیل نوع داده آرگومان تابع به نوع داده Variant Variant

۴. توابع رشته‌ای (String Functions)

توابع رشته‌ای در VBA برای کار با متن‌ها (String) به کار می‌روند. از جمله عملیات متداول می‌توان به بریدن، جستجو، جایگزینی، و محاسبه طول رشته اشاره کرد.

نام تابع توضیح مثال خروجی
Len() طول یک رشته را برمی‌گرداند. Len("Iran VBA") 8
Left() تعداد مشخصی از کاراکترهای سمت چپ رشته را بازمی‌گرداند. Left("Excel VBA", 5) Excel
Right() تعداد مشخصی از کاراکترهای سمت راست رشته را بازمی‌گرداند. Right("Excel VBA", 3) VBA
Mid() قسمتی از رشته را از محل دلخواه استخراج می‌کند. Mid("IranVBA", 3, 4) anVB
InStr() محل اولین وقوع یک زیررشته را در رشته اصلی برمی‌گرداند. InStr("Visual Basic", "Basic") 8
Replace() قسمتی از متن را با متن جدید جایگزین می‌کند. Replace("Hello World", "World", "VBA") Hello VBA

مثال ترکیبی:

' حذف فاصله‌های اضافی از متن و نمایش طول نهایی
Dim txt As String
txt = "  Iran VBA  "
MsgBox Len(Trim(txt))  ' خروجی: 8

۵. توابع تاریخ و زمان (Date & Time Functions)

توابع تاریخ و زمان در VBA برای دریافت یا محاسبه تاریخ و ساعت، تفاضل بین دو تاریخ، و قالب‌بندی مقادیر زمانی استفاده می‌شوند.

نام تابع توضیح مثال خروجی
Now() تاریخ و ساعت جاری سیستم را برمی‌گرداند. Now() 11/2/2025 8:10:06 PM
Date() فقط تاریخ جاری را بازمی‌گرداند. Date() 11/2/2025
Time() فقط ساعت جاری را بازمی‌گرداند. Time() 8:10:52 PM
DateAdd() مقدار مشخصی زمان به تاریخ اضافه می‌کند. DateAdd("d", 7, Date()) 7 روز بعد از امروز
11/9/2025
DateDiff() تفاضل بین دو تاریخ را برحسب روز، ماه یا سال محاسبه می‌کند. DateDiff("d", #1/1/2024#, Date()) تعداد روز از ابتدای سال
671
Format() قالب‌بندی سفارشی برای تاریخ یا زمان. Format(Now(), "yyyy/mm/dd hh:nn") 2025/11/02 20:11

مثال:

' محاسبه سن بر اساس تاریخ تولد
Dim age As Integer
age = DateDiff("yyyy", #5/22/1990#, Date)
MsgBox "سن شما: " & age

۶. توابع فایل و سیستم (File & System Functions)

توابع فایل و سیستم در VBA برای بررسی وجود فایل‌ها یا پوشه‌ها، دسترسی به اطلاعات سیستم و مسیرهای کاری به کار می‌روند.

نام تابع توضیح مثال خروجی
Dir() نام فایل یا پوشه مطابق الگو را برمی‌گرداند. Dir("C:\*.xls*") اولین فایل Excel در درایو C
FileLen() حجم فایل را به بایت برمی‌گرداند. FileLen("C:\Report.xlsm") مثلاً 204800
GetAttr() ویژگی‌های فایل را (مثلاً فقط‌خواندنی یا مخفی) بازمی‌گرداند. GetAttr("C:\Report.xlsm") 1 = ReadOnly
CurDir() مسیر جاری کاری را بازمی‌گرداند. CurDir() C:\Users\Admin\Documents
Environ() دسترسی به متغیرهای محیطی سیستم مانند نام کاربر. Environ("USERNAME") Admin

مثال:

' بررسی وجود فایل
If Dir("C:\Data\Report.xlsx") <> "" Then
    MsgBox "فایل موجود است."
Else
    MsgBox "فایل یافت نشد."
End If

۷. توابع کنترل خطا (Error Handling Functions)

شیء Err در VBA برای دسترسی به اطلاعات خطای آخر اتفاق‌افتاده استفاده می‌شود. این شیء به‌صورت خودکار هنگام بروز خطا مقداردهی می‌شود و شامل ویژگی‌هایی مانند شماره خطا (Err.Number)، توضیح خطا (Err.Description) و منبع آن (Err.Source) است. با استفاده از Err.Clear می‌توان اطلاعات خطای جاری را پاک کرد و آماده دریافت خطای بعدی شد.

Sub Example_ErrorHandling()
    On Error Resume Next    ' ادامه اجرای برنامه حتی در صورت بروز خطا
    Dim x As Integer
    x = 10 / 0              ' ایجاد خطا (تقسیم بر صفر)

    If Err.Number <> 0 Then
        MsgBox "کد خطا: " & Err.Number & vbCrLf & _
               "توضیح: " & Err.Description & vbCrLf & _
               "منبع: " & Err.Source, vbExclamation, "مدیریت خطا در VBA"
        Err.Clear            ' پاک کردن خطا برای استفاده مجدد
    End If
End Sub

VBA چند تابع داخلی برای تشخیص و مدیریت خطاها در زمان اجرا دارد. این توابع معمولاً همراه با دستور On Error استفاده می‌شوند.

نام تابع توضیح مثال خروجی
Err.Number شماره خطای آخرین خطا را برمی‌گرداند. Err.Number مثلاً 11 (تقسیم بر صفر)
Err.Description توضیح متنی خطا را بازمی‌گرداند. Err.Description Division by zero
Err.Clear() خطای جاری را پاک می‌کند. Err.Clear() ---
IsError() بررسی می‌کند که آیا مقدار داده‌شده نوع خطاست یا خیر. IsError(CVErr(2004)) True
CVErr() یک مقدار خطا برای استفاده در سلول‌های اکسل ایجاد می‌کند. CVErr(2004) Error 2004

مثال:

On Error Resume Next
Dim x As Integer
x = 10 / 0
If Err.Number <> 0 Then
    MsgBox "خطا: " & Err.Description
    Err.Clear
End If

۸- سایر توابع داخلی

این بخش شامل توابع متفرقه اما کاربردی است که در هیچ‌یک از دسته‌های قبلی قرار نمی‌گیرند، مانند Format، Now و IsNull.

تابع MsgBox

تابع دستور زبان هدف مثال نتیجه
MsgBox MsgBox (prompt, [ buttons, ] [ title, ] [ helpfile, context ]) نمایش پنجره پیغام به کاربر با استفاده از آرگومان‌ها (arglist) MsgBox "آیا اطلاعات فرم را تایید می نمایید؟", vbOKCancel نمایش پنجره پیغام به کاربر که شامل دو کلید OK و Cancel می‌باشد
  • لیست آرگومان ها با استفاده از «,» (کاما) جدا می شوند.
  • غیر از آرگومان prompt که اجباری می باشد، سایر آرگومان ها اختیاری هستند.
  • آرگومان prompt می تواند یک رشته String (مانند مثال جدول بالا) و یا یک متغیر که حاوی اطلاعات یک رشته می باشد تعریف گردد.
  • آرگومان buttons ترکیب کلید هایی که می بایست در پنجره پیغام بکار رود را تنظیم می نماید.

تابع InputBox

تابع دستور زبان هدف مثال نتیجه
InputBox InputBox (prompt, [ title ], [ default ], [ xpos ], [ ypos ], [ helpfile, context ]) یک کادر دریافت اطلاعات را به کاربر نمایش می‌دهد، اطلاعات را از کاربر در یک جعبه متنی دریافت می‌نماید و پس از کلیک کاربر یک رشته حاوی محتویات جعبه متنی را برمی‌گرداند. InputBox "لطفا تاريخ تولد خود را وارد نماييد" تابع توکار InputBox

مقدار بازگشتی تابع داخلی InputBox از نوع داده String می باشد. بنابراین برای ذخیره اطلاعات دریافتی از کاربر باید یک متغیر از نوع String اعلان نمایید.

تابع Array

تابع دستور زبان هدف مثال نتیجه
Array Array(arglist) ایجاد آرایه با استفاده از لیست آرگومان‌ها (arglist) MyWeek = Array("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun") MyWeek(2) = Tue
  • لیست آرگومان ها با استفاده از «,» (کاما) جدا می شوند.
  • کران پایین یک آرایه بصورت پیش فرض صفر می باشد. شما می توانید با استفاده از دستور Option Base 1 کران پایین را به یک تغییر دهید. دقت داشته باشید که دستور Option Base فقط در سطح ماژول قابل استفاده می باشد. در مثال بالا فرض شده است که Option Base روی یک تنظیم شده است.

تابع LBound

تابع دستور زبان هدف
LBound LBound(arrayname, [dimension]) کران پایین در دسترس برای یک آرایه (arrayname) را با توجه به بعد انتخابی (dimension) برمی‌گرداند.
  • آرگومان dimension تعیین کننده این است که کران پایین برای کدام بعد باید بازگردانده شود. مقدار یک (1) برای بعد اول، دو (2) برای بعد دوم و به همین ترتیب. اگر حذف شود مقدار پیش فرض آن یک (1) می باشد.
  • تابع LBound به همراه تابع UBound برای محاسبه اندازه هر کدام از ابعاد یک آرایه بکار می رود. بطور مثال دستور
    UBound(A, 2) - LBound(A, 2) + 1
    اندازه بعد دوم آرایه A را محاسبه می نماید.
  • تنظیم Option Base می تواند روی مقدار بازگشتی تابع LBound تاثیر بگذارد.
  • استفاده از بند To به هنگام اعلان یک آرایه با استفاده از هر یک دستورات اعلان متغیر (Dim, Private, Public, ReDim, Static) باعث خواهد شد که هر عددی که در اعلان مشخص شده باشد بعنوان کران پایین تعیین گردد. مقدار تعیین شده در بند To بر تنظیم Option Base ارجح می باشد. ( این موضوع در مثال مشخص می باشد )

مثال

Dim Lower
Dim MyArray(1 To 10, 5 To 15, 10 To 20)     ' اعلان آرایه سه بعدی با کران های بالا و پایین تعیین شده
Dim AnyArray(10)  ' اعلان آرایه یک بعدی
Lower = Lbound(MyArray, 1)     ' مقدار بازگشتی: 1.
Lower = Lbound(MyArray, 2)     ' مقدار بازگشتی: 5.
Lower = Lbound(MyArray, 3)    ' مقدار بازگشتی: 10.
Lower = Lbound(AnyArray)    ' مقدار بازگشتی: 0 یا 1. به مقدار تنظیم Option Base بستگی دارد.

تابع UBound

تابع دستور زبان هدف
UBound UBound(arrayname, [dimension]) کران بالای در دسترس برای یک آرایه (arrayname) را با توجه به بعد انتخابی (dimension) برمی‌گرداند.
  • آرگومان dimension تعیین کننده این است که کران پایین برای کدام بعد باید بازگردانده شود. مقدار یک (1) برای بعد اول، دو (2) برای بعد دوم و به همین ترتیب. اگر حذف شود مقدار پیش فرض آن یک (1) می باشد.
  • تابع UBound به همراه تابع LBound برای محاسبه اندازه هر کدام از ابعاد یک آرایه بکار می رود. بطور مثال دستور
    UBound(A, 2) - LBound(A, 2) + 1
    اندازه بعد دوم آرایه A را محاسبه می نماید.
  • تنظیم Option Base روی مقدار بازگشتی تابع UBound تاثیری ندارد. استفاده از بند To به هنگام اعلان یک آرایه با استفاده از هر یک دستورات اعلان متغیر (Dim, Private, Public, ReDim, Static) باعث خواهد شد که هر عددی که در اعلان مشخص شده باشد بعنوان کران بالا تعیین گردد. مقدار تعیین شده در بند To بر تنظیم Option Base ارجح می باشد. ( این موضوع در مثال مشخص می باشد )

مثال

Dim Upper
Dim MyArray(1 To 10, 5 To 15, 10 To 20)    ' اعلان متغیر حاوی آرایه
Dim AnyArray(10)
Upper = UBound(MyArray, 1)    ' مقدار بازگشتی: 10.
Upper = UBound(MyArray, 3)    ' مقدار بازگشتی: 20.
Upper = UBound(AnyArray)      ' مقدار بازگشتی: 10.

تابع Choose

تابع دستور زبان هدف مثال نتیجه
Choose Choose(index, choice-1, [choice-2, ..., [choice-n]]) با توجه به آرگومان index یکی از آرگومان‌های choice-1 تا choice-n را برمی‌گرداند. Choose(1, "Speedy", "United", "Federal") Speedy
  • آرگومان index از نوع داده عددی است و باید بین یک و تعداد آرگومان های choice باشد.
  • آرگومان های choice می توانند هر نوع عبارت Variant که حاوی یکی از انتخاب ها است، باشند.
  • در صورتی که آرگومان index بیشتر از انتخاب ها باشد تابع مقدار Null را برمی گرداند.

تابع CreateObject

تابع دستور زبان هدف مثال نتیجه
CreateObject CreateObject(class, [servername]) یک شیء اکتیوایکس را ایجاد و برمی‌گرداند. Set ExcelSheet = CreateObject("Excel.Sheet") یک شئ مطابق صفحه گسترده اکسل ایجاد می‌نماید.
  • آرگومان class نام برنامه کاربردی و کلاس شیء ای که باید ایجاد شود می باشد. دستور این آرگومان به شکل  appname.objecttype می باشد و شامل دو قسمت appname (نام برنامه کاربردی که شیء را ارائه می نماید) و objecttype (نوع یا نام کلاس شیء ای که باید ایجاد شود) می باشد.
  • آرگومان اختیاری servername نام سرور شبکه ای است که قرار است شیء روی آن ایجاد شود می باشد.(در صورتی که بخواهید شیء را روی یک کامپیوتر درون شبکه ایجاد نماید)
  • بعد از ایجاد شیء توسط تابع، شیء ایجاد شده تمامی متدها و خواص مرجع شیء ای که نمونه آن را ایجاد کرده است را خواهد داشت.

فرایند اتصال شئ ایجاد شده توسط تابع CreateObject در زمان اجرای برنامه صورت می پذیرد. این به این علت است که برای ایجاد شیء توسط این تابع ابتدا متغیر با استفاده از بند As Object اعلان می شود که بدین معناست که متغیر می تواند حاوی مرجع هر نوع شی ای باشد؛ و بنابراین دسترسی به شیء از طریق شیء فقط در زمان اجرای برنامه امکان پذیر می باشد. این نوع متغیر Late-Bound نامیده می شود. نوع مقابل این متغیر early-bound می باشد. مرجع یک متغیر early-bound در زمان اعلان مشخص می گردد و بعد از اعلان فقط می تواند حاوی مرجع شئ اعلان شده باشد، اما از لحاظ کارایی بهتر از متغیر Late-Bound عمل می نماید.

تابع VarType

تابع دستور زبان هدف مثال نتیجه
VarType VarType(varname) یک مقدار Integer را برمی‌گرداند که نشان‌دهنده زیرگروه یک متغیر و یا نوع خاصیت پیش‌فرض یک شیء می‌باشد. MyCheck = VarType(StrVar) مقدار ۸ را برمی‌گرداند
  • تابع داخلی VarType برای تشخیص نوع داده یک متغیر کاربرد دارد. در صورتی که در آرگومان تابع بجای یک متغیر از یک شیء استفاده نمایید تابع نوع داده خاصیت (Property) پیش فرض آن شیء را بر خواهد گرداند.
  • در جدول زیر نوع داده متناظر با مقدار بازگشتی تابع VarType مشخص شده است.
ثابت مقدار توضیح
vbEmpty 0 تهی (فاقد مقدار اولیه)
vbNull 1 Null (فاقد داده معتبر)
vbInteger 2 Integer
vbLong 3 Long integer
vbSingle 4 عدد با ممیز شناور تک دقتی (Wikipedia)
vbDouble 5 عدد با ممیز شناور با دقت دوگانه (Wikipedia)
vbCurrency 6 Currency value
vbDate 7 Date value
vbString 8 String
vbObject 9 Object
vbError 10 Error value
vbBoolean 11 Boolean value
vbVariant 12 Variant
vbDataObject 13 شی دسترسی به داده (DAO)
vbDecimal 14 Decimal value
vbByte 17 Byte value
vbLongLong 20 LongLong integer (فقط در بسترهای 64 بیتی معتبر می‌باشد)
vbUserDefinedType 36 نوع داده کاربر
vbArray 8192 آرایه

تابع IsNumeric

تابع دستور زبان هدف مثال نتیجه
IsNumeric IsNumeric(expression) یک مقدار بولی برمی‌گرداند که مشخص‌کننده این است که آیا عبارتی که در آرگومان تابع آورده شده است عدد می‌باشد یا خیر. MyCheck = IsNumeric("55") مقدار True را برمی‌گرداند

مقدار بازگشتی تابع داخلی IsNumeric در صورتی که آرگومان تابع عدد باشد True و در غیر اینصورت False می باشد.

📚 جمع‌بندی

در این مقاله با مهم‌ترین توابع داخلی VBA آشنا شدیم. این توابع ابزارهای پایه‌ای برای ساخت ماکروهای کارآمد و حرفه‌ای در اکسل و سایر برنامه‌های Office هستند.

در آموزش‌های بعدی به سراغ توابع رشته‌ای، تاریخ و زمان، فایل و سیستم و همچنین توابع کنترل خطا در VBA خواهیم رفت.

سؤالات متداول درباره توابع VBA

توابع داخلی VBA چه هستند؟

توابع داخلی یا Built-in Functions در VBA مجموعه‌ای از توابع آماده هستند که توسط مایکروسافت در محیط VBA تعبیه شده‌اند و برای انجام کارهای متداول مانند محاسبات، پردازش متن، مدیریت تاریخ، و کنترل خطا استفاده می‌شوند.

تفاوت بین Sub و Function در VBA چیست؟

در VBA، روال Sub مجموعه‌ای از دستورات است که اجرا می‌شود ولی مقداری بازنمی‌گرداند، در حالی که Function علاوه بر اجرای دستورات، یک مقدار خروجی نیز برمی‌گرداند. معمولاً از Function برای محاسبه یا پردازش داده استفاده می‌شود.

چگونه می‌توان از توابع داخلی در VBA استفاده کرد؟

برای استفاده از توابع داخلی کافی است نام تابع را در یک روال VBA فراخوانی کنید. برای مثال، تابع Abs(-5) مقدار قدر مطلق عدد ۵ را برمی‌گرداند و تابع Len("Excel") طول رشته را محاسبه می‌کند.

تفاوت تابع Int با Fix در VBA چیست؟

هر دو تابع برای حذف بخش اعشاری عدد استفاده می‌شوند، اما Int همیشه عدد را به سمت پایین گرد می‌کند (مثلاً Int(-8.9) برابر -9 است) در حالی که Fix فقط بخش اعشاری را حذف می‌کند (یعنی Fix(-8.9) برابر -8 می‌شود).

چطور می‌توان نوع داده را در VBA تغییر داد؟

با استفاده از توابع تبدیل نوع داده مانند CInt، CDbl، CStr و CLng می‌توانید مقدار متغیر را به نوع دلخواه تبدیل کنید. برای مثال، CStr(123) عدد را به رشته تبدیل می‌کند.

چطور می‌توان در VBA با رشته‌ها کار کرد؟

توابعی مانند Len، Left، Right، Mid، InStr و Replace برای پردازش رشته‌ها به کار می‌روند. با آن‌ها می‌توانید بخشی از رشته را استخراج یا جایگزین کنید.

چطور می‌توان تاریخ و زمان فعلی را در VBA دریافت کرد؟

تابع Date() تاریخ سیستم و تابع Now() تاریخ و ساعت فعلی را برمی‌گردانند. برای نمایش فقط ساعت می‌توان از Time() استفاده کرد.

چطور اختلاف بین دو تاریخ را در VBA حساب کنیم؟

با استفاده از تابع DateDiff() می‌توانید اختلاف بین دو تاریخ را برحسب روز، ماه یا سال محاسبه کنید. مثال: DateDiff("d", #1/1/2024#, Date) اختلاف روزها تا امروز را برمی‌گرداند.

چطور می‌توان در VBA با فایل‌ها کار کرد؟

توابعی مانند Dir()، Kill()، FileLen() و GetAttr() برای مدیریت فایل‌ها استفاده می‌شوند. مثلاً Dir("C:\Report.xlsx") بررسی می‌کند آیا فایل وجود دارد یا خیر.

شیء Err در VBA چه کاربردی دارد؟

شیء Err برای شناسایی و مدیریت خطاها در زمان اجرا استفاده می‌شود. با ویژگی‌هایی مانند Err.Number، Err.Description و Err.Source می‌توان جزئیات خطا را مشاهده و با Err.Clear آن را پاک کرد.

آیا می‌توان از توابع Excel در VBA استفاده کرد؟

بله. با استفاده از شیء Application.WorksheetFunction می‌توانید بسیاری از توابع Excel مانند Sum یا VLookup را در VBA فراخوانی کنید. مثال: MsgBox Application.WorksheetFunction.Sum(1,2,3)

منابع برای مطالعه بیشتر:

لیست توابع داخلی در سایت مایکروسافت

دیدگاهتان را بنویسید