کمک گرفتن از Macro Recorder برای برنامه‌نویسی یک روش کاربردی و مفید و سریع

یک روش کاربردی و مفید و سریع برای برنامه‎نویسی در VBA، استفاده از کدهایی است که جادوگر(Macro Recorder) به‌وجود آورده است. برای این‌منظور کافیست این کدها را کپی و به یک ماژول(Module) در محیط VBA منتقل کنید. ما پیش از این چندین ماکرو توسط جادوگر ایجاد کردیم.

 البته باید دقت داشته باشید که همه چیز را نمی‌توانیم با Macro Recorder ایجاد کنیم. با این ابزار فقط می‌توانیم کدهایی را به‎دست آوریم که بتوانیم عملیات آن را به صورت مستقیم در اکسل انجام ‌دهیم. برای مثال با این روش، نمایش یک پیام در درون محیط اکسل امکان‌پذیر نیست و این قابلیتی است که در درون محیط برنامه‌نویسی وجود دارد. به هر ترتیب ما کارمان را با جادوگر شروع می‌کنیم و از آن ایده می‌گیریم. سپس در صورت نیاز بر روی کدهای تولید شده کار می‌کنیم و با اصلاح و تغییر به کدهای مورد نظرمان می‌رسیم.

مثال ‏: ماکرویی ایجاد کنید که نام اولین شیت را تغییر دهد. فرض کنید که نام این شیت را قبلا در سلول A1 وارد کرده‌ایم.

پاسخ: انجام این‌کار شامل دو بخش اصلی است:

الف)‌ ایجاد یک ماکرو به کمک جادوگر

در ابتدا به کمک جادوگر یک ماکرو ایجاد می‌کنیم و نام شیت1 را به یک نام دلخواه تغییر می‌دهیم. (بهتر است یک کپی از فایل خودتان داشته باشید و ضبط ماکرو را در آن انجام دهید و پس از اطمینان از درستی عملکرد آن، ماکروی ایجاد شده را به این فایل بیاورید.)

  • مسیر DeveloperàCodeàRecord Macro را انتخاب می‌کنیم.
  • پنجره Record Macro باز می‌شود.در این پنجره نامی مناسب مانند RenameSheet را وارد کنید.
  • دگمه OK را بزنید تا ضبط ماکرو شروع شود.
  • اکسل به‎طور خودکار یک ماژول جدید ایجاد می‌نماید و آن را به workbook‌ شما مرتبط می‌نماید.
  • از قسمت پایین صفحه که شامل نام شیت‌هاست بر روی نام شیت اول Double کلیک کنید و نام آن را به یک نام دلخواه مثلا ALI تغییر دهید.
  • حالا به مسیر زیر بروید و عملیات ضبط ماکرو را متوقف کنید:

Developer-->Code -->Stop Recording

ببینیم اکسل چه کدهایی ایجاد کرده است.

با فشردن دگمه‌های Alt+F11 به محیط VBE رفته و در پنجره Project Explorer در بخش مربوط به همین workbook کدهای VBA ‌را می‌بینیم. این کدها در یک ماژول ذخیره می‌شوند. اگر این اولین ماژول باشد نام آن Module1 و گرنه Module2 یا Module3‌... خواهد شد.

کدهای مربوطه به این‌صورت هستند:

Sub Macro1()

'

' Macro1 Macro

'

   Sheets("Sheet1").Select

   Sheets("Sheet1").Name = "ALI FATEHI  "

   

End Sub

ب)‌ ایده گرفتن از کدهای ایجاد شده و اصلاح و تغییر آن

کدهای بالا نشان می‌دهند که در ابتدا Sheet1 انتخاب شده و خط بعدی هم نشان می‌دهد که نام آن به "ALI FATEHI" تغییر یافته است. ما می‌خواهیم به‌جایFATEHI  ALI محتویات سلول A1 را بگذاریم. برای این‌کار در همان خط کد Range("A1").Value را به‌جای"ALI FATEHI" می‌گذاریم. .( دقت کنید که Sheet1 وجود داشته باشد؛ پس نام شیت را که به    ALI FATEHIتغییر یافته به همان نام قبلی یعنی‎ Sheet1 برگردانید.)

Sub Macro1()

'

'Macro1 Macro

'

  Sheets("Sheet1").Select

    Sheets("Sheet1").Name = Range("A1").Value

End Sub

حال بافشردن کلید F5 یا روشهای دیگر این ماکرو را اجرا کنید. می‌بینید که نام شیت اول تغییر می‌کند.

/ 0 نظر / 397 بازدید