مدل شی در اکسل و کار با اشیاء در اکسل

آشنایی با مدل شی و آدرس دهی اشیا در اکسل

اگر شما بعنوان یک برنامه نویس در محیط کاری اکسل فعالیت کنید یکی  از اصطلاحاتی که به وفور با آن سر و کار خواهید داشت عبارت ” شی”  یا object   می باشد .

زبان برنامه نویسی VBA یک زبان شی گراست .

تمام کاری که این زبان انجام می دهد مدیریت اشیا موجود  در نرم افزار میزبان می باشد . 

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

  1. اینکه شی چیست و چه معنا و مفهومی دارد ؟
  2. مدل شی اکسل به چه قرار است ؟
  3. چگونه می توانیم به آدرس دهی  مدیریت اشیا موجود در اکسل بپردازیم .

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

 

بیشتر بدانید : مفهوم شی در اکسسمفهوم شی در اکسس و برنامه نویسی VBA

و اما در خصوص سوال دوم .

مدل شی اکسل به چه قرار است ؟

مدل شی اکسل عبارت است از  دسته بندی هایی که بر روی اشیاء اکسل انجام شده است .

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

در تمام این دسته بندی هایی که بر روی اشیای اکسل انجام شده است یک اصل کلی حاکم است و آن اصل چیزی نیست جز اصل ” سلسه مراتب ” .

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

منظور از مجموعه یا Collection جیست ؟ 

 

اجازه بدهید با یک مثال مطلب را باز کنم .

همانگونه که می دانید ما در دنیایی زندگی می‌کنیم که اطراف ما توسط اشیای مختلفی احاطه شده است

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

یک مجموعه را اینگونه می‌توانیم تعریف نماییم که:

مجموعه عبارت است از تعدادی از اشیا که با یکدیگر شباهتهای ظاهری یکسان و یا دارای ویژگی ها و عملکرد شبیه به هم میباشند.

به عنوان مثال به دیاگرام  زیر توجه نمایید

کلکسیون در اکسس

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

با این کار به راحتی می‌توانیم اشیای مختلف خود را در مجموعه مربوط به خود قرار داده و به مطالعه و بررسی آنها بپردازیم

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

مفهوم سلسله مراتب در مجموعه ها

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

این تقسیم بندی در زیر مجموعه ها به همین ترتیب می تواند ادامه داشته باشد. و به صورت سلسله مراتب از بالا به پایین تداوم یابد.

 بنابراین با مفاهیم مربوط به مجموعه و سلسله مراتب با استفاده از اشیاء  دنیای پیرامون خود آشنایی پیدا کردیم.

اکنون می خواهیم این مفاهیم و اصطلاحات را در دنیای مربوط به اکسل و برنامه نویسی مربوط به آن مورد بررسی قرار بدهیم.

یعنی می خواهیم بدانیم که وقتی صحبت از شی در محیط اکسل می کنیم منظور ما  از کلمه شی چیست و به چه چیز هایی اشاره دارد.

و یا اینکه کاربرد کلمه مجموعه و سلسله مراتب در نرم افزار اکسل و محیط برنامه نویسی مربوط به آن به چه منوال می باشد.

مفهوم شی در اکسل

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

 

مفهوم مجموعه یا collection در اکسل

تا اینجای کار دانستیم که برنامه ویرایشگر کد های وی بی ای  به هر آنچه که در محیط کاری اکسل وجود دارد به چشم یک شیء نگاه می کند.

و همانطور که عنوان نمودیم با استفاده از کدهای درج شده در این محیط می‌توان به مدیریت این اشیا پرداخت.

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

بعنوان مثال تمامی شیت های کاری موجود در اکسل در مجموعه ای به نام worksheets  دسته بندی شده اند . 

و یا تمامی نمودارهای ایجاد شده در این نرم افزار در مجموعه ای به نام Charts قرار می گیرند . 

 

مفهوم سلسله مراتب در مدل شی اکسل 

همانگونه که به مفهوم سلسله مراتب مربوط به اشیاء در دنیای واقعی خود پرداختیم اصل سلسله مراتب در مورد اشیای اکسل نیز مصداق دارد . 

اصل سلسله مراتب در نرم افزار اکسل می تواند به صورت زیر بیان شود

  1. سطح اول: در اولین سطح از سلسله مراتب  اشیاء فقط و فقط می تواند یک شی وجود داشته باشد .
  2. سطح دوم : شی  قرار گرفته در سطح اول خود می تواند شامل اشیا مختلفی باشد که در سطح دوم قرار می گیرند
  3. سطح سوم:  اشیای قرار گرفته در سطح دوم نیز به نوبه خود می توانند دارای زیرمجموعه‌هایی باشند که در سطح سوم قرار می گیرند.

و این قضیه برای سایر سطوح چهارم و پنجم و یا بیشتر نیز می تواند ادامه داشته باشد.

فرآیند  سلسله مراتب بر این اصل استوار است که هر شی می تواند شامل اشیا مختلفی باشد.

و فرآیند سلسله مراتب تا جایی می تواند ادامه پیدا کند که شما به شی برسید که این شی فاقد هرگونه شی دیگر و یا زیر مجموعه دیگری باشد.

بررسی سطوح اشیا موجود در اکسل از لحاظ سلسله مراتب 

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

وقتی که ما در حال کار و برنامه نویسی درون نرم افزار اکسل هستیم شئی که در ابتدای این سلسله مراتب قرار می گیرد خود برنامه کاربردی یا  نرم افزار اکسل است که از آن تحت عنوان Application  نام می بریم . 

در سطح دوم اشیایی قرار می گیرند که در درون نرم افزار اکسل هستند و توسط محیط کد نویسی می توان به آنها دسترسی یافته و آنها را مدیریت نمود . 

تصویر زیر سطح دوم این اشیا را نمایش می دهد . 

 

مفهوم شی در اکسل

 

 

اشیایی که در این سطح قرار می گیرند شامل موارد زیر هستند :

  1. Add-Ins

 این دسته از اشیا شامل تمامی افزونه هایی هستند که می توانند به محیط اکسل اضافه شوند . 

۲٫ Windows

 این دسته از اشیا شامل تمامی اشیای مربوط به ویندوز است که در محیط اکسل وجود دارند . 

۳٫ Workbooks :

این دسته اشیا نیز در برگیرنده تمامی اشیا از نوع workbook  می باشند . 

اما خود این اشیا نیز می توانند در برگیرنده اشیای دیگری باشند که در سطح بعدی قرار می گیرند . 

به تصویر زیر توجه نمایید . 

 

مدل شی در اکسل

 

بعنوان مثال  مجموعه  workbooks خود می تواند شامل اشیایی است که در زیر به آنها اشاره می نماییم .

  1. شی Charts

این مجموعه خود می تواند شامل یک یا چند نمودار باشد که همگی تحت این مجموعه قرار می گیرند .

۲٫ شی Names

این شی می تواند خود شامل مجموعه ای اسامی باشد که برای یک یا چند سلول در نظر گرفته می شود .

۳٫- مجموعه VBproject 

این مجموعه فایل اکسل جاری به عنوان یک شی معرفی می نماید . 

۴- مجموعه Windows

این مجموعه می تواند شامل مجموعه ای از اشیای Windows  است که از آنها می توان در این سطح استفاده نمود .

۵- مجموعه worksheets

این مجموعه خود می تواند شامل چندین شیت کاری باشد که در این مجموعه گرد آوری شده اند .

 

در سطح بعدی باز هم می توان اشیای دیگری را برای این سطح یافت .

بعنوان مثال به تصویر زیر نگاه کنید . 

 

collection in excel

تصویر فوق نشان می دهد که مجموعه Workbooks  نیز به نوبه خود می تواند مشتمل بر چندین شی زیر مجموعه باشد . 

اشیای مربوط به این مجموعه به قرار زیر هستند :

  1. chart objects

این شی می تواند شامل اشیای نوع نمودار  باشد .

۲٫ Comments

شامل تمامی یادداشت های یک یا چند سلول می باشد .

۳٫ Hyperlink

شامل لینک های موجود در صفحه کاری اکسل است .

۴٫ Name

شامل اسامی مربوط به یک سلول یا محدوده ای از سلول ها .

۵٫ Page setup

اطلاعات مربوط به پرینت یک صفحه کاری را ارائه می نماید .

۶٫ Pivot table

اشیای pivot table  را در خود ذخیره می نماید .

۷٫ Range

اشاره به محدوده معینی از سلول ها دارد .

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

بعنوان مثال خود مجموعه Windows  می تواند شامل اشیای بسیار زیادی باشد که از آنها می توان بهره برد .

در بررسی مدل شی در اکسل ذکر این نکته خالی از لطف نخواهد بود : 

  1. آنچه که در دیاگرام بالا مشاهده می نماید تنها گوشه ای از دهها و صدها شی ای است که در محیط اکسل وجود دارند و ما می توانیم از آنها استفاده نماییم . 
  2. حتما متوجه شده اید که اشیای موجود در نرم افزار اکسس ار نگوییم نامحدود اما قطغا از تعداد بسیار زیادی برخوردار است . 

حال سوال این است که ما چگونه می توانیم با تمامی این اشیا آشنا شویم و از همه آنها استفاده کنیم ؟ 

پاسخ این سوال این است که ما نیازی به دانستن همه اشیا و آشنایی کامل با تمامی این اشیا نداریم . 

بلکه فقط کافی است که با مفهوم کار با اشیا اکسل آشنا شویم و فقط با برخی از اشیایی که کاربرد آنها بیشتر و متداولتر از بقیه است آشنا شویم . 

مسلما با پیشرفت هایی که در کار با برنامه نویسی VBA خواهیم نمود می توانیم به مرور زمان دامنه آشنایی خود با اشیای مختلف را گسترش دهیم . 

تا به اینجای کار به دو سوالی که در ابتدای این مطلب مطرح نمودیم پاسخ دادیم . 

اینکه معنا و مفهوم شی چیست ؟ 

واینکه  منظور از  مجموعه و سلسله مراتب اشیا در مدل شی در اکسل چیست ؟ 

حال به بررسی سوال سوم بپردازیم .

  • چگونگی آدرس دهی و مدیریت اشیا در محیط برنامه نویسی VBA

 هدف کلی از برنامه نویسی در محیط اکسل بدست گرفتن مدیریت اشیای موجود در آن توسط کد نویسی در محیط برنامه نویسی VBA می باشد .

وقتی که ما می خواهیم یک شی را در محیط اکسل مدیریت نماییم لازم است که در ابتدا آدرس آن شی را به برنامه معرفی نماییم . 

بعنوان مثال فرض نمایید که ما می خواهیم در سلول A1 از sheet 2  عبارت softpluse  را درج نماییم . 

برای این کار باید آدرس سلول محلی را که می خواهیم عبارت مورد نظر ما در آن درج شود را به برنامه مغرفی نماییم . 

اما سوال اساسی این است که این کار  را چگونه باید انجام دهیم ؟ 

چگونه می توانیم به یک شی در محیط برنامه نویسی اکسل اشاره نموده و به آن دسترسی پیدا نماییم ؟ 

این کار طی فرآیند آدرس دهی در برنامه نویسی انجام می گیرد . 

اکنون ببینیم که چگونه می توانیم این فرآیند را به سرانجام برسانیم . 

واقعیت امر برای این است که می توانیم برای اشاره به یک شی در اکسل از دو روش بهره ببریم :

  1. آدرس دهی یک شی بطور کامل 
  2. آدرس دهی یک شی بطور خلاصه شده 

آدرس دهی اشیا بطور کامل 

در این روش می توانیم به محل قرار گیری یک شی با آدرس دهی کامل اشاره نماییم .

منظور از آدرس دهی کامل اشاره به شی مورد نظر ما در سلسله مراتب مربوط به آن از راس تا انتهای آن می باشد .

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

کاری که می خواهیم انجام دهیم شروع از راس هرم مربوط به سلسله مراتب یک شی و حرکت کردن به سمت پایین این سلسله مراتب است که در انتها به شی مورد نظر خود برسیم .

در راس هرم ما  خود نرم افزار اکسل بعنوان یک شی قرار دارد .

اشاره به اکسل بعنوان یک شی بسیار ساده است فقط کافی است از عبارت زیر استفاده نماید .

.Application 

 در اینجا کلمه Application  اشاره به اکسل دارد .

برای حرکت در سلسله مراتب از بالا به پایین در هر مرحله باید از یک علامت نقطه استفاده نماییم .

در واقع با استفاده از علامت نقطه می توانیم بین یک شی و مجموعه مربوط به آن ارتباط برقرار می نماییم .

بیاید این موضوع را با نگاه نمودن به دیاگرام خود بررسی نماییم .

فرض کنید که می خواهیم به  محدوده سلول ها ی A 1  تا A10   دسترسی پیدا کنیم .

برای این کار داریم .

 

 

شی در اکسل

 

اگر بخواهیم نمودار بالا را به زبان کد در آوریم باید اینگونه درج کنیم که :

مدل شی در اکسل

 

اجازه بدهید در اینجا  به یک نکته مهم اشاره نمایم 

همانطور که می دانیم  شی  Workbooks    خود می تواند شامل چندین Workbook  مجزا از هم باشد . 

اما منظور از Workbook  چیست ؟

به هر فایلی که توسط اکسل ایجاد شده و در کامپیوتر شما ذخیره می شود تحت عنوان Workbook  شناخته می شود .  

اگر شما در آن واحد دو یا تعداد بیشتری فایل اکسل را باز نمایید محیط ویرایشگر کدهای VBA هر فایل را تحت عنوان یک Workbook  می شناسد . 

 اما در اینجا دو سوال اساسی پیش می آید :

اول اینکه اگر بیشتر از یک فایل اکسل باز بود چگونه به برنامه بفهمانیم که با کدام یک از فایل ها سر و کار داریم . 

همین قضیه در مورد Worksheets  نیز صدق می نماید . اینکه کدام worksheet  از کدام workbook  مد نظر ماست . 

در واقع این گونه می توان سوال خود را مطرح نمود که چگونه به یک شی در یک مجموعه خاص اشاره نماییم ؟ 

واقعیت امر این است که شما در بسیاری از مواقع با اشیایی مشخص از یک مجموعه مشخص سر و کار دارید . 

بعنوان مثال اگربخواهید یک شیت کاری  را در اکسل جاری خود  باز کنید فقط کافی است از طریق مجموعه مورد نظر به شی خود اشاره نمایید . 

برای این کار مراحل زیر را باید پشت سر بگذاریم : 

  1. ابتدا نام مجموعه مورد نظر خود را ذکر کنید . 
  2. بعد از نام مجموعه مورد نظر خود یک پرانتز قرار دهید . 
  3. نام  شی مورد نظر خود را که در مجموعه مربوطه قرار دارد را درج نمایید . 
  4. در اطراف نام شی مورد نظر خود که درون پرانتز قرار دارد حتما از دابل کوتیشن استفاده نمایید . 

بیایید موارد بالا را با ذکر یک مثال بررسی نماییم . 

می خواهیم به  sheet از فایل اکسلی که در آن هستیم دسترسی پیدا نماییم 

آدرس دهی اشیا در اکسل

 

همانگونه که ملاحظه می نمایید در اینجا فرض بر این است که تنها یک فایل اکسل باز شده داریم بنابراین نیازی به به درج مجموعه های بالا دستی شامل Application  و  workbooks  نداریم .

این حالت ، حالت خلاصه شده آدرس دهی اشیا در اکسل می باشد  . 

اما اگر دو یا چند فایل اکسل را بطور همزمان باز کردیم چه ؟ 

همانگونه که می دانید وقتی که یک فایل اکسل را ایجاد می کنیم برای ذخیره نمودن آن فایل باید نامی را در نظر بگیریم .

در اینجا دو گزینه پیش روی ماست یا اینکه نام پیشنهادی اکسل را قبول کنیم که بصورت پیشفرض اکسل نام Book  را به همراه یک شماره برای ذخیره کردن پیشنهاد می دهد که نام Workbook  نیز از این همین جا نشات می گیرد . 

و حالت دوم و ایده آل این است که خود ما برای فایل مورد نظر خود یک نام را در نظر گرفته و آن را ذخیره کنیم . 

حال فرض کنید که ما دو فایل داریم اولی به نام Book1  که باز است و فایل دومی که باز است را  با نام mysoftpluse می شناسیم . 

اکنون می خواهیم در محیط کد نویسی مربوط به فایل با نام Book1  کدی بنویسیم که به sheet2  از فایل مربوط به mysoftpluse  دسترسی پیدا کنیم . 

برای این کار می توانیم از کد زیر بهره ببریم . 

آدرس دهی اشیا در اکسل

نکته ای باید در مورد کد بالا به آن اشاره نمود این است که باید هر دو فایل مورد نظر  ما در آن واحد باز بوده و به حالت فعال باشند .

 

اشاره به نام یک شی با استفاده از شماره ایندکس آن

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

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

در این فرآیند ذخیره کردن هم یک نام برای هر شیت در نظر گرفته می شود و هم یک شماره که هر دوی این مشخصه ها به هیچ عنوان نمی توانند تکراری باشند . 

یعنی امکان ندارد که شما دو شیت کاری داشته باشید که هر دوی آنها یک نام داشته باشند . 

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

بعنوان مثال برای اشاره   به sheet 2 در فایل جاری می توانیم از کد زیر بهره ببریم . 

اشیا در اکسل

نکته ای که در مورد کد بالا باید به آن اشاره نمود این است که در داخل پرانتز بر خلاف حالتی که از نام شیت استفاده می کردیم نیاز ی به استفاده از علامت کوتیشن ” ” در اطراف عدد مربوطه نداریم . 

آنچه که در این مطلب به آن پرداخته شد را می توان تنها مقدمه ای بر آشنایی و مدیریت اشیا در اکسل دانست . 

در آینده باز هم با مطالب بیشتری در این خصوص خواهیم داشت . 

 

 

 

 

 

 

 

 

 

 

آموزش اکسل 2016 بازدید : 94 views ۱۸ فروردین, ۱۳۹۸ ۰