نمایش نتایج: از شماره 1 تا 1 , از مجموع 1

موضوع: تفاوت بین متد و property در VBA

  1. #1


    آخرین بازدید
    2023/05/03
    تاریخ عضویت
    January 2012
    محل سکونت
    استان اردبیل / شهرستان پارس آباد (مغان)
    نوشته ها
    1,213
    امتیاز
    2633
    سپاس
    1,399
    سپاس شده
    2,089 در 665 پست
    سطح اکسل
    73.00 %

    Javid Mokhtari به Yahoo ارسال پیام

    تفاوت بین متد و property در VBA

    فرق بین 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 هستند

    اگه یک قسمت مجزا برای این بحث اختصاص داده می شد خیلی خوب بود.
    این رو از توضیحات آقای داوری برداشتم و اینجا قرار دادم تا موضوع مرتبط یک جا جمع بشه.


    میشه درباره کد های زیر بیشتر توضیح...:

    کد PHP:
    with
        set
        is Nothing
        xlColorIndexAutomatic
        Intersect 
    1- with عملکرد ساده ای داره. فقط برای کوتاه کردن کد نویسی ازش استفاده می کنن.

    مثلا:
    به جای
    کد 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:
     atarget.row 
    اما range یک شی هست. همچنین workbook, worksheet, و row و column. اینها شی هستند که برخی باز شامل شی هایی هم میشوند. مثلا range ممکنه شامل چند row بشه و row ممکنه شامل چند cell بشه. در حالی که range خودش شی ای از شی های worksheet هایی هست که خود این worksheet ها فرزند یک workbook هستش. Smile

    حالا این بحث خیلی مفصلی هست. اما به هر صورت برای نسبت دادن یک شی به یک شی جدید از عبارت set استفاده می کنیم.

    مثلا
    dim a as range خوب این یک شی از نوع range هست
    حالا می گیم
    کد PHP:
     a range("A1:A10"غلطه 
    باید بنویسی:
    کد PHP:
     set a range("A1:A10"
    اگر اینطور عمل کنی. a و
    کد HTML:
     range("A1:A10")
    معنی واحدی میدن.
    یعنی a.intorior.backcolor رنگ پشت زمینه اون منطقه A1 نا A10 رو معنی میده
    کد PHP:
     a.intorior.backcolorblack 

    با این شی ها کارای زیادی میشه کرد. یه مطالعه بکنشون.
    برای پیدا کردن شی مادر یا شی کافیه بنویسی:
    کد PHP:
    dim b as range
    set b 
    a.Parent 
    به این صورت.




    3- is nothing در زبان VB معنی NULL رو میده. یعنی یک شی ای هنوز به شی خاصی نسبت داده نشده است. ببین یک متغیر وقتی تعریف میشه مقدار دهی اولیه میشه. اگر هم نشه به هرحال یک مقدار داخل خودش داره. اما یک شی وقتی تعریف میشه NULL هست. یعنی به هیچ چیزی اشاره نمی کنه. مگر شما به یک شی نسبت بدهیش:

    مثلا:

    کد PHP:
     dim a as range 
    تا الان a یک شی NULL هست.

    باید یکی از دو روش زیر رو انتخاب کنی. بگی a یک شی جدید است یا a یک شی ای هست که الان وجود داره.
    کد HTML:
    set a = new range
    به مفهوم اینه که a یک شی جدید است.
    کد HTML:
    set a = range("A1:A10")
    به مفهوم اینه که a همون شی ای است که الان وجود داره و به خونه های A1 تا A10 اشاره داره.


    پس وقتی میگیم if a is nothing then یعنی اگر هنوز a وجود نداره یعنی هیچ جایی واسه a تعریف نشده. این کارو بکن.

    4- xlColorIndexAutomatic نماینده کد رنگ اتوماتیک هست. اینو بجای یک عدد که نمایند رنگ هست میتونی استفاده کنی. البته اگر حافظت خوبه می تونی عدد رو هم حفظ کنی :دی

    5- Intersect دو تا range مختلف رو به عنوان ورودی می گیره و فضای مشترک بین این دو رو برای ما مشخص می کنه. می تونی از این کد برای اینکه بدونی دو range با هم نقطه مشترک دارن یا نه استفاده کنی.
    اخطار: این یک موضوع قدیمی است
    به دلیل قدیمی بودن موضوع، ممکن است برخی فایل های ضمیمه به درستی کار نکنند. لطفا در صورت عدم ضرورت، از بالا آوردن موضوعات قدیمی خودداری نمایید.
    ویرایش توسط ~M*E*H*D*I~ : 2014/05/12 در ساعت 14:40

  2.  


اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. property ، method ، event و سایر کدها در اکسل
    توسط Javid Mokhtari در انجمن توابع در ويژوال بيسيك - Functions in VBA
    پاسخ ها: 35
    آخرين نوشته: 2014/05/12, 14:28
  2. گذاشتن رمزهای متفاوت برای شیت های متفاوت
    توسط taknavaz123 در انجمن سوالات پیرامون ويژوال بيسيك - VBA Questions
    پاسخ ها: 7
    آخرين نوشته: 2013/04/15, 13:17
  3. تفاوت دو عدد
    توسط tahamtan در انجمن توابع اکسل - Excel Functions
    پاسخ ها: 3
    آخرين نوشته: 2012/09/29, 11:11
  4. ایجاد یک جدول با رنگ سلول متفاوت براساس عدد رنگ داخل آن
    توسط vahid140 در انجمن گرافیک، نمودار و تنظیمات - Graphics, Charts and Settings
    پاسخ ها: 11
    آخرين نوشته: 2012/05/09, 14:43

بازدید کنندگان با جستجو های زیر این صفحه را پیدا کرده اند

تفاوت متد و property

فرق بین method و property

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
  • BB code ها فعال هستند
  • شکلک ها فعال هستند
  • کد [IMG] فعال است
  • کد [VIDEO] فعال است
  • کد HTML غیر فعال است
با ما در تماس باشيد