در جلسه قبلی ، با 5 جزءاصلی VBA ، از جمله اشیاء آشنا شدید. این بخش نیز بر روی اشیا تمرکز دارد و یاد خواهید گرفت که:
- چگونه اشیا سازماندهی می شوند ؛ و
- چگونه آنها را شناسایی و به یک شیء خاص ارجاع دهید.
سلسله مراتب اشیاء
اشیائی که برنامه اکسل را تشکیل می دهند ، در یک سلسله منطقی سازماندهی شده اند ، که به نام مدل اشیاء اکسل شناخته می شود. در این مدل:
- شیء برنامه (Application object) ، که کل برنامه Excel را نشان می دهد ، در بالای سلسله مراتب قرار دارد. شیء برنامه شامل اشیاء متعددی است ، به عنوان مثال ، شیء Workbook.
- شیء Workbook نیز شامل اشیاء دیگری ، مانند شی Worksheet است.
- شیء Worksheet شامل اشیاء دیگری مانند ، شیء Range و شیء PivotTable است.
این الگو به شکل مشابهی گسترش می یابد تا به اشیایی که شامل شیء دیگری نیستند برسد.
مجموعه ها و مدل اشیاء اکسل
اشیاء معمولا به مجموعه ای از اشیاء مرتبط دسته بندی می شوند. هنگام کار با مدل اشیاء اکسل ، می توانید مجموعه های زیر را در نظر بگیرید:
- مجموعه Workbooks ، فایل های اکسلی که در حال حاضر باز است ؛ و
- مجموعه Worksheets ، تمام برگه های موجود در یک فایل اکسل.
مجموعه ها برای دسترسی به اشیاء ضروری هستند. دلایل اصلی این ضرورت , دو مورد زیر است:
- معمولا به اشیاء منفرد می توان از طریق مجموعه ای که به آن تعلق دارند دسترسی داشت. به عنوان مثال ، اگر می خواهید به یک شیء Worksheet مشخص مراجعه کنید ، معمولا به این شیء از طریق مجموعه Worksheets دسترسی خواهید داشت.
- در برخی موارد ، مجموعه ها به شما اجازه می دهند تا همزمان با همۀ اعضای آن کار کنید. بنابراین ، به جای اینکه آدرس جداگانه ای برای هر شیء منفرد ایجاد کنید ، می توانید با تمام اشیا منفرد همزمان کار کنید. این کار را با یک دستور ساده انجام می دهید ، مثلا:
- property (ویژگی) مجموعه را تغییر می دهید؛ یا
- یک method (شیوه عمل) از مجموعه را فراخوانی می کنید.
نحوه ارجاع به یک شی
معمولا ارجاع به شیء را در دو مرحله می توانید انجام دهید:
- حرکت رو به پایین در مدل اشیاء اکسل , تا به مجموعه ای که حاوی شیء مورد نظر شما است برسید.
- شناسایی شیء در مجموعه ای که داخل آن قرار دارد.
حرکت در مدل اشیاء اکسل
برای حرکت در مسیر مدل اشیاء اکسل (مرحله 1) , سه قاعده اساسی زیر را دنبال کنید:
- با شیء برنامه در بالای مدل اشیاء اکسل شروع کنید و سلسله مراتب را تا موقعیت مورد نیاز ادامه دهید.
- به عنوان یک قاعده کلی ، از properties (ویژگی ها) برای ارجاع به اشیاء استفاده کنید. هنگامی که یک شیء شامل شیء دیگری است ، شیء درونی معمولا دارای یک ویژگی است که می توانید برای دسترسی به آن استفاده کنید.
- در مسیر مدل اشیا اکسل ، از نقطه (.) برای اتصال اشیاء با ویژگی های آن استفاده کنید.
به عنوان مثال ، ارجاع به یک شیء Worksheet ، را در نظر بگیرید. از دید کلی ، تقریبا می توانید به صورت زیر عمل کنید:
- به شیء برنامه اکسل (Application) ارجاع دهید.
- ویژگی Workbooks از شیء برنامه ، مجموعه Workbooks را باز می گرداند که نماینده تمام فایل های باز است. می وانید با اتصال شیء (Application) و ویژگی (Workbooks) با یک نقطه (Application.Workbooks) , به این مجموعه بروید(ساختار اصلی دستورات VBA , در جلسه دوم را مشاهده کنید).
- در مجموعه Workbooks بایستی شیء Workbook مناسب را انتخاب کنید (نحوه انجام آن را در بند زیر یاد می گیرید).
- ویژگی Worksheets از شیء Workbook , مجموعه Worksheets را باز می گرداند ، که نشان دهنده تمام برگه های موجود در فایل اکسل است.
- می توانید با اتصال شیء (Application.Workbooks) و ویژگی (Worksheets) با یک نقطه (Application.Workbooks.Worksheets) به این مجموعه بروید.
- در مجموعه Worksheets ، باید شیء Worksheet مناسب را مشخص کنید.
در ادامه نحوه این شناسایی را یاد می گیرید.
نحوه شناسایی و مشخص کردن یک شیء خاص از یک مجموعه
معمولا یک شیء از یک مجموعه را به دو روش زیر مشخص می کنند:
- با استفاده از شماره شاخص , که نشان دهنده موقعیت شیء در مجموعه است.
- با استفاده از نام شیء
ملاحظات خاصی وجود دارد که به هر دو روش اعمال می شود. با این حال ، در سطح پایه ، معمولا می توانید قوانین زیر را اعمال کنید:
- شماره شاخص یا نام شیء پس از نام مجموعه قرار می گیرد.
- شماره شاخص در داخل پرانتز قرار دارد (Collection(IndexNumber)).
- نام شیء در داخل علامت نقل قول و پرانتز (Collection("ObjectName")) قرار می گیرد.
موارد زیر نمونه هایی از نحوه اعمال این قوانین را نشان می دهد:
- اولین شیء Workbook در مجموعه Workbooks :
Application.Workbooks (1)
- اولین شیء Worksheet در مجموعه Worksheets ( اولین شیء Workbook):
Application.Workbooks (1) .Worksheets (1)
- فایل اکسل با نام"Book1.xlsx" :
Application.Workbooks ("Book1.xlsx")
- برگه با نام "Sheet1" در فایلی با نام Book1.xlsx:
Application.Workbooks("Book1.xlsx").Worksheets("Sheet1")
نکته
سلسله مراتب ارجاع به اشیاء که در بند قبلی ارائه شد به عنوان آدرس کامل شناخته می شوند.
آدرس کامل علی رغم دقتی که دارد ، معمولا خواندن و درک آن دشوار است. می توانید این نوع ارجاع به اشیاء را ساده تر کنید. برای نیل به این هدف ، بایستی برخی مفروضات را در نظر بگیرید. با توجه به این فرض ها ، هنگام ایجاد یک آدرس شیء ، هر شییء از سلسله مراتب اشیاء را وارد نکنید.
مفروضات اصلی VBA و پیامدهای آن به شرح زیر است:
- VBA فرض می کند که با شیء برنامه (اکسل) کار می کنید. بنابراین ، می توانید شیء برنامه (Application object) را حذف کنید.
- VBA عموما فرض می کند که با شیء فعال (به عنوان مثال، فایل اکسل فعال، برگه فعال یا سلول فعال) کار می کنید. بنابراین ، می توانید:
o هنگام کار با فایل اکسل فعال ، شیء Workbook را حذف کنید ؛ و
o هنگام کار با برگه فعال ، شیء Worksheet را حذف کنید.
هنگام ارجاع به اشیاء ، شیء Application معمولا حذف می شود. با این حال ، حذف شیء Workbook و Worksheet , کار آسانی نیست. هر دو شیء مزیت و معایب بالقوه ای دارند. بنابراین ، برخی از کاربران VBA توصیه می کنند که در ارجاع به شیء از آدرس کامل استفاده شود در حالی که ، برخی دیگر توصیه می کنند که آدرس ارجاع را تا آنجا که ممکن است باید ساده کرد.
در جلسه بعدی ، یاد می گیرید که چگونه با استفاده از property و method ، اشیاء را دستکاری کنید.
*جهت دریافت کتاب های آموزش ماکرونویسی با اکسل روی تصویر کلیک کنید*