خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


آموزش برنامه نویسی اکسل : وُرک بوک ها (Workbooks)

آموزش برنامه نویسی اکسل : وُرک بوک ها (Workbooks)
نویسنده : امیر انصاری
در آموزش های قبلی با مجموعه ها (collections) آشنا شدید، که اشیائی هستند که شامل گروههایی از اشیاء مشابه یکدیگر می باشند. در این آموزش به جزئیات بیشتری از یکی از مجموعه ها با نام workbooks می پردازیم.

آموزش سالیدورکز 20-2019



یک فایل اکسل یک شیء ورک بوک (Workbook object) می باشد. شما ممکن است تعجب کنید که چطور workbooks می تواند یک مجموعه باشد، نظر به اینکه شما تنها می توانید روی یک Workbook در یک زمان کار کنید، و حتی شما معمولاً اشیاء را در سطوح پایینتری مانند worksheets یا cells مورد دستکاری قرار می دهید.

شیء Application را با شیء Workbook اشتباه نگیرید. در VBA شیء Application در بالای زنجیرۀ غذایی قرار دارد، در مدل شیء اکسل (Excel object model) هیچ چیزی بالاتر از شیء Application قرار ندارد. شیء Application کلیت برنامۀ اکسل را نمایندگی می کند، در صورتی که شیء Workbook یک فایل اکسل تنها را نمایندگی می کند.

مجموعۀ Workbooks شامل همۀ اشیاء Workbook می گردد که در یک برنامۀ اکسل در حال اجرا قرار دارند. اگر بخواهید تا کار یکسانی را بر روی تمامی Workbook های باز انجام بدهید و یا یک Workbook خاص را که نامش مشخص نیست، فعال کنید، نیاز پیدا خواهید کرد تا بر روی مجموعۀ Workbooks کارتان را انجام بدهید.

در اینجا یک مثال داریم. ، در VBA این کد یک Workbook جدید اضافه می کند:

Workbooks.Add

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

اگر پروژه از شما بخواهد تا دو Workbook را به Workbook موجود اضافه کنید، و شما بخواهید که اولین Workbook اضافه شده به صورت فعال در بیاید و نه دومی، چطور باید این کار را بکنید؟ در مجموعۀ Workbooks ، چگونه تعیین کنید که این عملیات را بر روی کدام یکی از ورک بوک ها باید انجام بدهید، در نظر داشته باشید که نام هیچکدام از ورک بوک ها را نیز نمی دانید؟

VBA برای حل کردن این مشکل چندین متد را به شما پیشنهاد می دهد، اول اینکه به هر Workbook که اضافه می کنید یک متغیر تخصیص بدهید، و سپس آن متغیری را که برایتان مهم است، فعال نمایید. به عنوان مثال، ماکروی زیر دو Workbook را اضافه می کند و در پایان Workbook اضافه شدۀ اول را فعال می نماید:

Sub AddWorkbooks()
Dim WorkbookAdd1 As Workbook
Dim WorkbookAdd2 As Workbook
Set WorkbookAdd1 = Workbooks.Add
Set WorkbookAdd2 = Workbooks.Add
WorkbookAdd1.Activate
End Sub

همانطور که شما انتظار دارید، اشیاء Workbook تعدادی متد دارند، مانند متدهای Open ، Save و Close. در آموزش های آینده بر روی تکرار کارها با استفاده از حلقه ها جزئیات بیشتری را مطرح خواهیم کرد و در آنها کنکاش خواهیم نمود، اما در اینجا یک نگاه اجمالی به یک حلقه می اندازیم که تک تک Workbook های باز در فایل اکسل شما را ذخیره می کند و می بندد، و البته به استثناء Workbook فعال که مشغول کار کردن با آن هستید. به چیزی که نمی بینید، توجه داشته باشید، و آن اینست که برای ما اهمیتی ندارد که چند تا Workbook در حال حاضر باز هستند، و یا اسامی آنها چه می باشد، شما فقط نیاز دارید که به VBA بگویید به دنبال یک شیء Workbook در مجموعۀ Workbooks باشد.

Sub CloseAllWorkbooks()
Dim wkb As Workbook
For Each wkb In Workbooks
If wkb.Name <> ThisWorkbook.Name Then
wkb.Close SaveChanges:=True
End If
Next wkb
End Sub


آموزش قبلی : آموزش برنامه نویسی اکسل : متغیرهای ثابت (Constants)

آموزش بعدی : آموزش برنامه نویسی اکسل : برگه ها (Worksheets)



دیدگاه ها(0)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.

لطفا پیش از ارسال دیدگاه ، به نکات زیر توجه فرمایید :

- از نوشتن دیدگاه های غیر مرتبط با پست جدا خودداری کنید. دیدگاه ها و سوالات متفرقۀ خود را می توانید در تالارهای گفتمان خوش آموز مطرح نمایید.
- لطفاً دیدگاه های خود را با حروف فارسی تایپ کنید، دیدگاه های فینگیلیش تایید نمی شوند.
- قبل از ارسال دیدگاه حتما متن پست و نظرات سایر دوستان را بخوانید . نظرات اسپم و تکراری تایید نخواهند شد.
- نظر شما ممکن است بدون پاسخ تایید شوند که در این صورت باید منتظر پاسخ از سوی دیگر کاربران باشید .
- لطفا انتقادات و پیشنهادات و همچنین درخواست های خود را از طریق ایمیل khoshamoz[at].hotmail.com ارسال نمایید
- چرا آموزش های سایت خوش آموز در قالب فایل pdf به صورت یکجا ارائه نمی شوند؟
- چرا برخی پرسش های کاربران پاسخ داده نمی شوند؟


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

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