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


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

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

سیستم یکپارچۀ سازمانی راهکار



یک فایل اکسل یک شیء ورک بوک (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 کیلوبایت می باشد.