property ها برای تخصیص یک مقدار مورد استفاده قرار میگیرند.یعنی وقتی می نویسیم cells(1,1).value ،سلول A1 آماده است تا مقداری را برای خود بگیرد.یعنی property مقدار پذیر است.پس value یک property است.
اما method ها مقداری را به خود نمیگیرند،بلکه عملیاتی را برای ما انجام می دهند.یعنی وقتی می نویسیم cells(1,1).select اینجا دیگر مقداری به سلولA1 اختصاص نمی گیرد،بلکه عملی را برای ما انجام میدهد.یعنی سلول A1 را برای ما انتخاب می کند.پس select یک method است.
طریقه شناسائی method ها و property ها :
ابتدا به قسمت object Browser برید(F2)
آنهائی که پشتشان یک پوشه یا جعبه سبز رنگ وجود دارد،method هستند
آنهائی که پشتشان یک دست که یک برگه را گرفته است، وجود دارد،property هستند
اگه یک قسمت مجزا برای این بحث اختصاص داده می شد خیلی خوب بود.
این رو از توضیحات آقای داوری برداشتم و اینجا قرار دادم تا موضوع مرتبط یک جا جمع بشه.
میشه درباره کد های زیر بیشتر توضیح...:
with
set
is Nothing
xlColorIndexAutomatic
Intersect
مثلا:
به جای
Range("B2:P16").Font.Bold = False
Range("B2:P16").Interior.ColorIndex = xlColorIndexAutomatic
Range("B2:P16").Font.color = blue
With Range("B2:P16")
.Font.Bold = False
.Interior.ColorIndex = xlColorIndexAutomatic
.Font.color = blue
End With
2- set در زبان ویژوال بیسیک برای نسبت دادن یک شی به شی دیگر استفاده میشه:
اولا باید فرق شی و متغیر رو بدونی.
مثلا
dim a as integer
a= target.row
حالا این بحث خیلی مفصلی هست. اما به هر صورت برای نسبت دادن یک شی به یک شی جدید از عبارت set استفاده می کنیم.
مثلا
dim a as range خوب این یک شی از نوع range هست
حالا می گیم
a = range("A1:A10") غلطه
set a = range("A1:A10")
range("A1:A10")
یعنی a.intorior.backcolor رنگ پشت زمینه اون منطقه A1 نا A10 رو معنی میده
a.intorior.backcolor= black
با این شی ها کارای زیادی میشه کرد. یه مطالعه بکنشون.
برای پیدا کردن شی مادر یا شی کافیه بنویسی:
dim b as range
set b = a.Parent
3- is nothing در زبان VB معنی NULL رو میده. یعنی یک شی ای هنوز به شی خاصی نسبت داده نشده است. ببین یک متغیر وقتی تعریف میشه مقدار دهی اولیه میشه. اگر هم نشه به هرحال یک مقدار داخل خودش داره. اما یک شی وقتی تعریف میشه NULL هست. یعنی به هیچ چیزی اشاره نمی کنه. مگر شما به یک شی نسبت بدهیش:
مثلا:
dim a as range
باید یکی از دو روش زیر رو انتخاب کنی. بگی a یک شی جدید است یا a یک شی ای هست که الان وجود داره.
set a = new range
set a = range("A1:A10")
پس وقتی میگیم if a is nothing then یعنی اگر هنوز a وجود نداره یعنی هیچ جایی واسه a تعریف نشده. این کارو بکن.
4- xlColorIndexAutomatic نماینده کد رنگ اتوماتیک هست. اینو بجای یک عدد که نمایند رنگ هست میتونی استفاده کنی. البته اگر حافظت خوبه می تونی عدد رو هم حفظ کنی :دی
5- Intersect دو تا range مختلف رو به عنوان ورودی می گیره و فضای مشترک بین این دو رو برای ما مشخص می کنه. می تونی از این کد برای اینکه بدونی دو range با هم نقطه مشترک دارن یا نه استفاده کنی.

