فرق بین method و property:
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 هستند
اگه یک قسمت مجزا برای این بحث اختصاص داده می شد خیلی خوب بود.
این رو از توضیحات آقای داوری برداشتم و اینجا قرار دادم تا موضوع مرتبط یک جا جمع بشه.
میشه درباره کد های زیر بیشتر توضیح...:
1- with عملکرد ساده ای داره. فقط برای کوتاه کردن کد نویسی ازش استفاده می کنن.
مثلا:
به جای
برای اینکه از تکرار جلوگیری کنیم میشه بنویسیم:
2- set در زبان ویژوال بیسیک برای نسبت دادن یک شی به شی دیگر استفاده میشه:
اولا باید فرق شی و متغیر رو بدونی.
مثلا
خوب این یک متغیر است و به راحتی برای نسبت دادن از یک مساوی استفاده میشه کرد. مثلا
اما range یک شی هست. همچنین workbook, worksheet, و row و column. اینها شی هستند که برخی باز شامل شی هایی هم میشوند. مثلا range ممکنه شامل چند row بشه و row ممکنه شامل چند cell بشه. در حالی که range خودش شی ای از شی های worksheet هایی هست که خود این worksheet ها فرزند یک workbook هستش. Smile
حالا این بحث خیلی مفصلی هست. اما به هر صورت برای نسبت دادن یک شی به یک شی جدید از عبارت set استفاده می کنیم.
مثلا
dim a as range خوب این یک شی از نوع range هست
حالا می گیم
باید بنویسی:
اگر اینطور عمل کنی. a و
معنی واحدی میدن.
یعنی a.intorior.backcolor رنگ پشت زمینه اون منطقه A1 نا A10 رو معنی میده
با این شی ها کارای زیادی میشه کرد. یه مطالعه بکنشون.
برای پیدا کردن شی مادر یا شی کافیه بنویسی:
به این صورت.
3- is nothing در زبان VB معنی NULL رو میده. یعنی یک شی ای هنوز به شی خاصی نسبت داده نشده است. ببین یک متغیر وقتی تعریف میشه مقدار دهی اولیه میشه. اگر هم نشه به هرحال یک مقدار داخل خودش داره. اما یک شی وقتی تعریف میشه NULL هست. یعنی به هیچ چیزی اشاره نمی کنه. مگر شما به یک شی نسبت بدهیش:
مثلا:
تا الان a یک شی NULL هست.
باید یکی از دو روش زیر رو انتخاب کنی. بگی a یک شی جدید است یا a یک شی ای هست که الان وجود داره.
به مفهوم اینه که a یک شی جدید است.
به مفهوم اینه که a همون شی ای است که الان وجود داره و به خونه های A1 تا A10 اشاره داره.
پس وقتی میگیم if a is nothing then یعنی اگر هنوز a وجود نداره یعنی هیچ جایی واسه a تعریف نشده. این کارو بکن.
4- xlColorIndexAutomatic نماینده کد رنگ اتوماتیک هست. اینو بجای یک عدد که نمایند رنگ هست میتونی استفاده کنی. البته اگر حافظت خوبه می تونی عدد رو هم حفظ کنی :دی
5- Intersect دو تا range مختلف رو به عنوان ورودی می گیره و فضای مشترک بین این دو رو برای ما مشخص می کنه. می تونی از این کد برای اینکه بدونی دو range با هم نقطه مشترک دارن یا نه استفاده کنی.
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 هستند
اگه یک قسمت مجزا برای این بحث اختصاص داده می شد خیلی خوب بود.
این رو از توضیحات آقای داوری برداشتم و اینجا قرار دادم تا موضوع مرتبط یک جا جمع بشه.
میشه درباره کد های زیر بیشتر توضیح...:
کد PHP:
with
set
is Nothing
xlColorIndexAutomatic
Intersect
مثلا:
به جای
کد PHP:
Range("B2:P16").Font.Bold = False
Range("B2:P16").Interior.ColorIndex = xlColorIndexAutomatic
Range("B2:P16").Font.color = blue
کد PHP:
With Range("B2:P16")
.Font.Bold = False
.Interior.ColorIndex = xlColorIndexAutomatic
.Font.color = blue
End With
2- set در زبان ویژوال بیسیک برای نسبت دادن یک شی به شی دیگر استفاده میشه:
اولا باید فرق شی و متغیر رو بدونی.
مثلا
کد PHP:
dim a as integer
کد PHP:
a= target.row
حالا این بحث خیلی مفصلی هست. اما به هر صورت برای نسبت دادن یک شی به یک شی جدید از عبارت set استفاده می کنیم.
مثلا
dim a as range خوب این یک شی از نوع range هست
حالا می گیم
کد PHP:
a = range("A1:A10") غلطه
کد PHP:
set a = range("A1:A10")
کد HTML:
range("A1:A10")
یعنی a.intorior.backcolor رنگ پشت زمینه اون منطقه A1 نا A10 رو معنی میده
کد PHP:
a.intorior.backcolor= black
با این شی ها کارای زیادی میشه کرد. یه مطالعه بکنشون.
برای پیدا کردن شی مادر یا شی کافیه بنویسی:
کد PHP:
dim b as range
set b = a.Parent
3- is nothing در زبان VB معنی NULL رو میده. یعنی یک شی ای هنوز به شی خاصی نسبت داده نشده است. ببین یک متغیر وقتی تعریف میشه مقدار دهی اولیه میشه. اگر هم نشه به هرحال یک مقدار داخل خودش داره. اما یک شی وقتی تعریف میشه NULL هست. یعنی به هیچ چیزی اشاره نمی کنه. مگر شما به یک شی نسبت بدهیش:
مثلا:
کد PHP:
dim a as range
باید یکی از دو روش زیر رو انتخاب کنی. بگی a یک شی جدید است یا a یک شی ای هست که الان وجود داره.
کد HTML:
set a = new range
کد HTML:
set a = range("A1:A10")
پس وقتی میگیم if a is nothing then یعنی اگر هنوز a وجود نداره یعنی هیچ جایی واسه a تعریف نشده. این کارو بکن.
4- xlColorIndexAutomatic نماینده کد رنگ اتوماتیک هست. اینو بجای یک عدد که نمایند رنگ هست میتونی استفاده کنی. البته اگر حافظت خوبه می تونی عدد رو هم حفظ کنی :دی
5- Intersect دو تا range مختلف رو به عنوان ورودی می گیره و فضای مشترک بین این دو رو برای ما مشخص می کنه. می تونی از این کد برای اینکه بدونی دو range با هم نقطه مشترک دارن یا نه استفاده کنی.