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

موضوع: شیء گرایی در vba

  1. #1


    آخرین بازدید
    2022/06/28
    تاریخ عضویت
    May 2010
    محل سکونت
    بلژیک
    نوشته ها
    174
    امتیاز
    108
    سپاس
    0
    سپاس شده
    119 در 53 پست
    تعیین سطح نشده است

    شیء گرایی در vba

    سلام دوستان عزیز.

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

    در برنامه نویسی شی گرایی خیلی کاربرد دارد. در این نوع برنامه نویسی بجای استفاده از متغیر، آرایه، ماژول و هچنین تابع از یک مفاهیم پیشرفته تر مثل شی، کلاس، متد، مشخصه و رویداد و... استفاده میشود.

    همه چی با تعریف کلاس شروع میشه:
    کلاس: به تعریف مجموعه اشیایی گفته می شود که دارای مشخصات و توامندی های مشابه می باشند. مثل کلاس انسان ها، حیوان ها و ...، حال احتمال وجود زیر کلاس ها هم است. مثل کلاس مرد ها، کلاس زن ها، کلاس کودکان، کلاس خزندگان، پرندگان و ...

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

    متد: به توانمندی های یک شی گفته می شود که بر اساس مشخصه ها تعریف میشود. معمولا این توانمندی برای کلاس (همه اعضای کلاس) در نظر گرفته می شود ولی برای همه اعضای کلاس قابل استفاده هست. البته هر عضو اون رو به صورت خاص بر اساس مشخصه های خودش اجرا می کنه. مثلا سلولی که مقدار 100 درونش هست با سلولی که مقدار 10 دارد جواب های متفاوتی برای یک متد خاص خواهند داشت.

    مشخصه (property): به مشخصات اعضای یک کلاس گفته میشود که به صورت متغیر, آرایه, ساختار و حتی یک شی می تواند نمود پیدا کند. مثلا یک شیت یک شی هست که دارای مشخصات خاص خود هست. مثلا تعداد ستون. تعداد سطر که متغیر هستند. و یا یک ماتریس (آرایه دو بعدی) از سلول های که خود سلول ها شی هستند. اینها همه مشخصات یک کلاس شیت می باشند. یا یک انسان، می تواند مشخصه قد داشته باشد. می تواند مشخصه وزن داشته باشد. شامل دو شی دست و دو شی پا می باشد. در حالی که خود شی های دست و پا هم دارای مشخصه ابعاد و وزن هستند.

    رویداد: به عملیاتی که متد های یک شی را فرآخوانی می کند رویداد گفته میشود. مثلا عدم وجود غذا در معده رویدادی است که باعث اتفاقات شیمیایی در معده شده، و این رویدادی است که شما احساس گرسنگی می کند. عمل احساس گرسنگی کردن برای شما یک متد است. اما ماشه trigger برای اتفاق همان نبود غذا در معده است. با توجه به سیستم علت و معلولی جهان اینکه چه چیزی رویداد است چه چیزی متد خیلی بستگی به این دارد که چه چیزی را شی در نظر بگیرید. اگر معده شی هست. ترشح مواد شیمیایی خودش متد هست. اما اگر انسان کامل شی است، ترشح خودش یک رویداد برای احساس گرسنگی است. در اکسل شی شیت هست. کلیک کردن روی برای شیت یک رویداد است ولی برای شما که کلیک می کنید یک متد است که رویدادش ممکن است در مغز شما شکل گرفته باشد. خیلی ساده بگم. رویداد علت یک اتفاق است و متد نمود اجرایی آن اتفاق. حال قطعا از نگاهی دیگر خود رویداد اتفاقی دیگر است.

    وراثت: گاهی اوقات کلاس هایی زیر مجموعه کلاس هایی دیگر هستند. مثل کلاس مرد و کلاس زن که زیر مجموعه کلاس انسان هستند. در این جا به کلاس مرد و کلاس زن کلاس مشتق شده می گویند. هر دوی مرد و زن قد و وزن و ... دارند که از این بابت مشترک است. هر دو آنها توانمندی های مشترکی دارند. اینها توانمند ها و مشخصه هایی است که هر انسانی داراست. با این وجود تفاوت هایی در توامندی ها و مشخصه های آنها هست. آنچه مشترک است در کلاس والد یا همان کلاس انسان تعریف می شود و هر چه متفاوت است در کلاس فرزند یا همان کلاس های مرد و زن تعریف می شود. مثال ملموس در اکسل به ذهنم نمی رسد. ولی این فرامین زیر ببینید:

    کد PHP:
    Sheet1.Activate
    Range
    ("A1").Activate
    Sheet1
    .Calculate
    Range
    ("B1").Calculate
    Sheet1
    .Clear
    Range
    ("B1").Clear 
    ببینید همه وردشیت ها، سل ها، رنج ها، سطر ها و ستون ها این فرامین رو دارند. و خیلی فرامین و مشخصه های دیگر. مطمئنا فرمان clear یک بار در یک کلاس والد به نام control تعریف شده است و همه این اشیا ها شی هایی از کلاس هایی هستند که از آن کلاس والد مشتق شده اند. به این صورت شبکه ارتباطی زیبایی شکل می گیرد.


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

    چند نکته:
    1- تمامی نرم افزار هایی که در دست شماست با شی گرایی نوشته شده اند.
    2- VBA تمامش شی گراست. تا حالا شده فکر کنید این همه نظم چه طوری بجود اومده؟
    3- ویندوز خودش شی گراست با شی گرایی نوشته شده. تا حالا دیدین جایی پنجره سیو عوض بشه؟!!!!!
    4- تمام زبان های برنامه نویسی که الان داره استفاده میشه برای کاربرد های مختلف غیر از معدود نرم افزار هایی خیلی سریع تخصصی به صورت شی گراست.
    5- از همه مهم تر زندگی من و شما هم شی گراست

    از دوست خوبم که ایم پست و گذاشت تشکر می کنم. خیلی مبحث مهمی هست. لطفا دنبالش برید.
    از کتاب های شی گرایی استفاده کنید. فروم هایی هم هست.

    اگر کسی با VB.Net و یا C#.net و یا C++ آشنایی داره، می تونه کتاب های دایتل دایتل رو بخونه، خیلی زیبا و جامع توزیع داده شده.

    موفق و پیروز باشید.
    اخطار: این یک موضوع قدیمی است
    به دلیل قدیمی بودن موضوع، ممکن است برخی فایل های ضمیمه به درستی کار نکنند. لطفا در صورت عدم ضرورت، از بالا آوردن موضوعات قدیمی خودداری نمایید.
    ویرایش توسط ~M*E*H*D*I~ : 2014/05/12 در ساعت 13:37

  2. سپاس ها (2)


  3.  


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

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

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

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

انجمن اكسل ايران , اكسل , اكسس , سوال و جواب اكسل , سوال اكسس , انجمن اكسل ايران , توابع اكسل, آموزش اكسل, آموزش اكسس, VBA, ويژوال بيسيك

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

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

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