You are currently viewing اشیاء‌ اکسل در VBA | موارد کاربرد اشیاء‌ اکسل در ماکرونویسی

اشیاء‌ اکسل در VBA | موارد کاربرد اشیاء‌ اکسل در ماکرونویسی

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

آیا می‌دانید:

استفاده از ماکروها و دستورات VBA در اکسل به شما این امکان را می‌دهد که به‌سرعت و با دقت بیشتری به تجزیه و تحلیل داده‌ها بپردازید؛ به طوری که با آموزش‌های مرتبط با ویژوال بیسیک در اکسل، می‌توانید با ایجاد ماکروهای مختلف و استفاده از نمونه کدهای VBA در اکسل، کارهای پیچیده را به‌راحتی انجام دهید و در نتیجه زمان بیشتری را برای سایر فعالیت‌های مهم خود صرفه‌جویی کنید؟

اشیاء‌ اکسل در VBE

اشیاء‌ اکسل در پنجره مرور پروژه ویرایشگر VBE در پوشه Microsoft Excel Objects نمایش داده می شوند. اما این اشیاء چه هستند و چرا شیء نامیده می شوند.

معرفی اشیاء اکسل

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

اشیاء اکسل، شیءهایی هستند که توسط مایکروسافت برنامه نویسی و ایجاد شده اند. این اشیاء بخشی از کتابخانه [1] Excel می باشند. این اشیاء برای هر فایل اکسل بطور خودکار ایجاد و در پوشه Microsoft Excel Objects قرار داده می شوند.

در برنامه نویسی شیءگرا هر شیء یک نمونه جدید از یک کلاس می باشد. مایکروسافت کتابخانه و کلاس لازم را در معماری اکسل ایجاد کرده است. وقتی که یک فایل اکسل ایجاد می کنید VBA برای راحتی کار اشیاء موردنیاز (کاربرگ و صفحه) را از کلاس مرتبط با آن (کلاس Worksheet و Workbook) ایجاد می کند.

یک صفحه اکسل را در نظر بگیرید، مایکروسافت تمامی خصوصیات و رفتار یک صفحه اکسل (شامل سلول ها، ایجاد سطرها، ستون ها و …) را در کلاسی بنام Worksheet در کتابخانه Excel تعریف و ایجاد کرده است.

هر وقت که یک صفحه جدید به فایل اکسل خود اضافه می کنید VBA بصورت خودکار یک شیء جدید از این کلاس ایجاد می کند و در پوشه Microsoft Excel Objects ویرایشگر VBE قرار می دهد.

شیء صفحه جدید ایجاد شده بطور خودکار تمامی خصوصیات و متدهای کلاس Worksheet را به ارث می برد.

object explorer در ویرایشگر کد VBA
لیست متدهای و ویژگی های کلاس Worksheet در کتابخانه Excel (با فشردن کلید F2 در VBE این پنجره فعال می شود)

کاربرد اشیاء‌ اکسل

اشیاء اکسل بطور مستقیم به فایل اکسلی که ماکرو در آن ذخیره شده است مرتبط می باشند. مهمترین کاربرد اشیاء اکسل مدیریت رخدادها (Events) در فایل اکسل فعلی می باشد.

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

گفتیم که هر شیء اکسل یک نمونه از کلاس مرتبط با آن می باشد، با توجه به ماهیت کلمه کلیدی Me در VBA این کلمه کلیدی در کد این اشیاء به شیء موردنظر اشاره خواهد داشت. توضیحات تکمیلی درباره کلمه کلیدی Me را می توانید در این صفحه مشاهده نمایید.

در ادامه کاربرد اشیاء اکسل برای ایجاد و ذخیره ماکروها را جداگانه بررسی می نماییم.

ماکرونویسی در اشیاء صفحه اکسل (Worksheet)

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

شیء صفحه اکسل در هر پروژه VBA به طور خودکار به تعداد صفحاتی که در فایل اکسل وجود دارد ایجاد می شود.

هر شیء صفحه مستقیماً به یک صفحه در فایل اکسل پروژه مرتبط می باشد.

در تصویر مقابل شیء Sheet1 مرتبط با صفحه 1 و شیء Sheet2 مرتبط با صفحه 2 فایل اکسل پروژه Book1.xlsm می باشند.

اگر صفحه جدیدی در فایل اکسل ایجاد کنید، بطور خودکار زیر این لیست اضافه خواهد شد.

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

مثال 1 : رخداد تغییر رنگ فونت پس از تغییر مقدار سلول

کد زیر را در شیء Sheet1 (صفحه 1) کپی نمایید، هر وقت مقدار یکی از سلول هایی که در صفحه 1 اکسل قرار دارد تغییر کند رنگ فونت آن بطور خودکار آبی خواهد شد.

Private Sub Worksheet_Change(ByVal Target as Range) 
    Target.Font.ColorIndex = 5 
End Sub
مثال 2 : ماکروی انجام تکرار با استفاده از حلقه For

کد زیر را در شیء Sheet1 (صفحه 1) کپی نمایید، این کد بطور خودکار مقدار سلول ها اول تا دهم ستون A را به طور خودکار تکمیل و رنگ پس زمینه آن ها را سبز می کند.

Public Sub sheetMacro()
    For i = 1 To 10
        Me.Cells(i, 1) = "سلول" & i
        Me.Cells(i, 1).Interior.ColorIndex = 4
    Next
End Sub

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

ماکرونویسی در شیء ThisWorkbook

شیء ThisWorkbook در یک پروژه VBA در اکسل به کاربرگی که پروژه در آن ذخیره شده است. با استفاده از این شیء می توانید رخدادهای مربوط به کاربرگ را مدیریت کنید و یا در کد آن ماکرونویسی انجام دهید.

وقتی که در شیء‌ ThisWorkbook یک ماکرو بنویسید کارکرد کلمه کلیدی Me عوض می شود و بجای یک صفحه به کاربرگ اکسل اشاره خواهد داشت.

مثال 1 : رخداد نمایش پیغام به کاربر وقتی که فایل اکسل باز می شود

اگر کد زیر را در شیء ThisWorkbook یک فایل اکسل کپی و ذخیره نمایید، کاربر وقتی که فایل را باز کند پیغام خوش آمدگویی “به ایران وی بی ای خوش آمدید” را مشاهده خواهد کرد.

Private Sub Workbook_Open()
    MsgBox "به ايران وي بي اي خوش آمديد", vbInformation + vbMsgBoxRtlReading
End Sub
مثال 2 : ماکروی ایجاد پنج صفحه جدید پس از صفحه دوم فایل اکسل فعلی

کد زیر را در شیء ThisWorkbook یک پروژه VBA اکسل کپی و سپس اجرا نمایید. این کد بطور خودکار 5 صفحه جدید بعد از دومین صفحه ایجاد خواهد کرد.

Public Sub ThisWorkbookMacro()
    Me.Sheets.Add after:=Me.Sheets(2), Count:=5
End Sub

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

دانلود فایل آموزش

این پست دارای یک نظر است

  1. محمدعلی

    وبلاگ عالی است. خیلی سپاسگزارم.

دیدگاهتان را بنویسید