ش | ی | د | س | چ | پ | ج |
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
نام ، آرگومان ها و کدی که بدنه یک رویه پراپرتی را تشکیل میدهد ، اعلام می کند که یک مرجع را به یک شئ تنظیم می کند.
نوشتار عبارت Property Set قسمت هایی را دارد :
Optional : انتخابی است ، نشان میدهد که آرگومان می تواند یا نمی تواند توسط
Caller تامین شود.
Public : انتخابی است ، نشان میدهد که رویه Property Set قابل دسترسی است به تمام دیگر رویه ها در تمام ماژول ها (Modules) . اگر در ماژولی که حاوی عبارت Option Private است بکار برده شود رویه در خارج از پروژه ( Project ) موجود نیست.
Private : انتخابی است ، نشان میدهد که رویه Property Set قابل دسترسی است فقط به سایر رویه ها در ماژولی که اعلام می گردد یا بیان میشود.
Static : انتخابی است ، نشان میدهد که متغیرهای لوکال رویه Property Set بین Call ها رزرو شده اند . Static atteibute روی متغیرهایی که خارج از رویه Property Set اعلام سا اظهار شده تاثیری ندارد ، حتی اگر آنها در رویه بکار برده شوند.
Name : اجباریاست و انتخابی نیست !!! نام رویه Property Set
arglist : اجباریست ، لیست متغیرهای رزرو شده که پاس داده میشوند به رویه Property Set وقتی Call یا فراخوانی میشود.آرگومان های چندتایی با کاما جدا می شوند
نوشتاری و قسمت های arglist :
[ Optional ] [ ByVal | ByRef ] [ ParamArray ] varname [ ( ) ] [ As type ] [ = defaultvalue ]
OPTIONAL : مشخص میکند که آرگومان اجباری نیست اگر استفاده شود تمام آرگومان های بعدی هم باید با OPTIONAL ذکر شوند.
BYVAL : اختیاریست ، نشان میدهد که آرگومان VALUE یا عددی است
BYREF : اختیاریست ، نشان میدهد که آرگومان توسط یک رفرنس PASS داده میشود و BYREF در ویژوال بیسیک DEFAULT است یعنی شما استفاده نکنید BYREF در نظر میگیرد.
PARRAMARRAY : اختیاریست ، بعنوان آخرین آرگومان در ARGLIST استفاده میشود و نشان میدهد که آرگومان نهایی یک آرایه انتخابی از اجزاء VARIANT است کلمه PARAMARRAY به شما این اجازه را میدهد که یک شماره اختیاری از آرگومان ها را فراهم کنید و نمی تواند با BYVAL ، BYREF یا OPTIONAL بکار رود.
VARNAME : اجباریست و نام متغیراست
TYPE : انتخابیست ، DATA TYPE است که بین رویه ها استفاده میشود مثل BYTE BOOLEAN SINGLE DOUBLE STRING
یادداشت :
هر عبارت PROPERTY SET بایستی با یک آرگومان مشخص شود
یک parameter array می تواند برای عبور یا پاس دادن آرایه ای از آرگومان ها استفاد شود . شما نباید تعداد اجزاء در آرایه را بدانید زمانیکه رویه را تعیین می کنید
استفاد کلمه ParamArray برای مشخص کردن کردن یک parameter array . آرایه می بایست بعنوان آرایه ای از دیتا تایپ Variant اعلام شود , و می بایست در آخرین آرگومان در رویه مشخص گردد.
مثال زیر نمایش میدهد که چگونه یک رویه با parameter array تعیین می گردد .
Sub AnyNumberArgs(strName As String, ParamArray intScores() As Variant)
Dim intI As Integer
Debug.Print strName; " Scores"
' Use UBound function to determine upper limit of array. For intI = 0 To UBound(intScores())
Debug.Print " "; intScores(intI)
Next intI
End Sub
ومثال زیر هم مشخص میکند که چطور رویه را call یا فراخوانی بنمائید.
AnyNumberArgs "Jamie", 10, 26, 32, 15, 22, 24, 16
AnyNumberArgs "Kelly", "High", "Low", "Average", "High"
کلمه ParamArray اجازه میدهد به شما که تعداد داینامیک یا پو یایی از آرگومانها را قبول یا پذیرش کنید
کلمه ParamArray اختصار parameter array است
بجای بکارگیری تعدادزیادی از پارامترهای انتخابی استفاده از parameter array می تواند کمک خوبی باشد.
می تواند در انتهای یک رویه یا تابع استفاده شود.
با ByValue و ByRef نمی تواند همراه باشد!
باید با دیتا تایپ Variant اعلام و اظهار گردد
پایه آن Zero است یعنی از صفر شروع میشود intl در مثال بالا
Parameter array می تواند حاوی دیتا تایپ های مختلفی باشد
array of array
Public Sub Procedure_Five(ByVal iConstant As Integer, _ParamArray aArgumentsArray() As Variant)Dim icount As IntegerDim vArg As VariantFor icount = 0 To UBound(aArgumentsArray(0))vArg = aArgumentsArray(0)(icount)Debug.Print vArgNext icountEnd SubPublic Sub RunThis_Five()Call Procedure_Five(100, Array("one","two"))End Sub
Public Function MySUM(ParamArray args()) For Each arg In args MySUM = MySUM + arg Next arg End Function
در کد زیر از paramarray استفاده شده اگر پارامترهای داخل آن Null نباشد جواب یا برگشتی تابع خواهد بود
Public Property Get NewEmployee() As Variant
NewEmployee = employee
End Property
Public Property Set NewEmployee(ByVal vNewValue As Employee)
employee = vNewValue
End Property
Dim CurrentColor As Integer
Const BLACK = 0, RED = 1, GREEN = 2, BLUE = 3
' Returns the current color of the pen as a string.
Property Get PenColor() As String
Select Case CurrentColor
Case RED
PenColor = "Red"
Case GREEN
PenColor = "Green"
Case BLUE
PenColor = "Blue"
End Select
End Property
' The following code gets the color of the pen
' calling the Property Get procedure.
ColorName = PenColor