نحوه ایجاد یک ماکرو یا اسکریپت VBA در اکسل

مایکروسافت اکسل(Microsoft Excel) کاربران را قادر می سازد تا ویژگی ها و دستورات را با استفاده از ماکروها و برنامه نویسی ویژوال بیسیک(Visual Basic) برای برنامه(Applications) ها ( VBA ) خودکار کنند. VBA زبان برنامه نویسی است که اکسل(VBA is the programming language Excel) برای ایجاد ماکرو از آن استفاده می کند. همچنین دستورات خودکار را بر اساس شرایط خاص اجرا می کند.

ماکروها مجموعه ای از دستورات از پیش ضبط شده هستند. هنگامی که دستور خاصی داده می شود، آنها به طور خودکار اجرا می شوند. اگر کارهایی در مایکروسافت اکسل(Microsoft Excel) دارید که به طور مکرر انجام می دهید، مانند حسابداری، مدیریت پروژه یا حقوق و دستمزد، خودکار کردن این فرآیندها می تواند در زمان زیادی صرفه جویی کند.

در زیر برگه Developer در (Developer)نوار(Ribbon) در اکسل(Excel) ، کاربران می‌توانند کلیک‌های ماوس و زدن کلید (ماکرو) را ضبط کنند. با این حال، برخی از توابع نیاز به اسکریپت نویسی عمیق تری نسبت به ماکروها دارند. اینجاست که برنامه نویسی VBA به یک مزیت بزرگ تبدیل می شود. این به کاربران اجازه می دهد تا اسکریپت های پیچیده تری ایجاد کنند.

در این مقاله به توضیح موارد زیر می پردازیم:

  • فعال کردن اسکریپت ها و ماکروها
  • نحوه ایجاد ماکرو در اکسل
  • مثال خاصی از یک ماکرو
  • درباره VBA بیشتر بدانید
  • یک دکمه(Button) برای شروع کار با VBA ایجاد کنید(VBA)
  • (Add Code)برای دادن عملکرد دکمه (Button Functionality)کد اضافه کنید
  • کار کرد؟

فعال کردن اسکریپت ها و ماکروها(Enabling Scripts & Macros)

قبل از اینکه بتوانید ماکرو یا اسکریپت VBA در (VBA)اکسل(Excel) ایجاد کنید، باید تب Developer را در منوی (Developer )Ribbon فعال کنید. تب Developer(Developer) به طور پیش فرض فعال نیست. برای فعال کردن آن:

  • یک کاربرگ اکسل را باز کنید.
  • روی File > Options > Customize Ribbon کلیک کنید.( Customize Ribbon.)

  • یک تیک در کادر کنار Developer قرار دهید .

  • از منوی Ribbon(Ribbon) روی تب Developer کلیک کنید .

  • در مرحله بعد، روی Macro Security کلیک کنید و کادر کنار Enable all macros را علامت بزنید (توصیه نمی شود؛ کدهای بالقوه خطرناک می توانند اجرا شوند). (Enable all macros (not recommended; potentially dangerous code can run). )
  • سپس روی OK کلیک کنید.( OK.)

دلیل اینکه ماکروها به طور پیش‌فرض روشن نمی‌شوند و با هشدار همراه هستند این است که کدهای رایانه‌ای هستند که می‌توانند حاوی بدافزار باشند.

(Make)اگر روی یک پروژه مشترک در اکسل(Excel) و سایر برنامه‌های مایکروسافت کار می‌کنید، مطمئن (Microsoft)شوید که سند از یک منبع قابل اعتماد است .

وقتی استفاده از اسکریپت ها و ماکروها را تمام کردید، همه ماکروها را غیرفعال کنید تا از آلوده کردن سایر اسناد توسط کدهای مخرب بالقوه جلوگیری کنید.

ایجاد یک ماکرو در اکسل(Create a Macro in Excel)

تمام اقداماتی که در اکسل(Excel) هنگام ضبط ماکرو انجام می دهید به آن اضافه می شود. 

  • از تب Developer، روی Record Macro کلیک کنید .

  • یک نام ماکرو(Macro name) ، یک کلید میانبر(Shortcut key) و یک توضیحات وارد کنید. (Description. )نام های ماکرو(Macro) باید با یک حرف شروع شوند و هیچ فاصله ای ندارند. کلید میانبر باید یک حرف باشد.

از گزینه های زیر تصمیم بگیرید که ماکرو را کجا ذخیره کنید:

  • کتاب کار شخصی ماکرو(Personal Macro Workbook) : این یک سند اکسل(Excel) مخفی با ماکروهای ذخیره شده برای استفاده با هر سند اکسل ایجاد می کند.(Excel)
  • کتاب کار جدید(New Workbook) : یک سند اکسل(Excel) جدید برای ذخیره ماکروهای ایجاد شده ایجاد می کند.
  • This Workbook : این فقط برای سندی که در حال ویرایش آن هستید اعمال می شود.

پس از اتمام، روی OK کلیک کنید . 

  • (Run)اقداماتی را که می خواهید خودکار کنید اجرا کنید . وقتی کارتان تمام شد، روی توقف ضبط(Stop Recording) کلیک کنید . 
  • هنگامی که می خواهید به ماکرو خود دسترسی پیدا کنید، از میانبر صفحه کلیدی که به آن داده اید استفاده کنید.

مثال خاص یک ماکرو(Specific Example Of a Macro)

بیایید با یک صفحه گسترده ساده برای مشتریان و میزان بدهی آنها شروع کنیم. ما با ایجاد یک ماکرو برای فرمت کاربرگ شروع می کنیم.

بیایید فرض کنیم تصمیم دارید که همه صفحات گسترده باید از فرمت متفاوتی مانند قرار دادن نام و نام خانوادگی در ستون های جداگانه استفاده کنند. 

شما می توانید به صورت دستی این را تغییر دهید. یا می توانید با استفاده از یک ماکرو برنامه ای بسازید تا به طور خودکار آن را به درستی برای شما قالب بندی کند.

ضبط ماکرو(Record The Macro)

  • روی Record Macro کلیک کنید . بیایید آن را Format_Customer_Data بنامیم(Format_Customer_Data) و روی OK کلیک کنیم. 
  • برای بدست آوردن قالب مورد نظر، نام ستون اول را به First Name تغییر می دهیم . 
  • سپس یک ستون در کنار A وارد کنید و آن را نام خانوادگی(Last Name) بگذارید . 
  • تمام نام‌ها را در ستون اول برجسته(Highlight) کنید (که همچنان شامل نام و نام خانوادگی است)، و روی Data از نوار پیمایش کلیک کنید.
  • روی Text to Columns کلیک کنید .

  • تیک Delimited > Next > Separate by Space > Next > Finish را بزنید. اسکرین شات زیر و نحوه جداسازی نام و نام خانوادگی توسط فرآیند بالا را ببینید.

  • برای قالب بندی فیلد موجودی موعد(Balance Due) مقرر، مبالغ را برجسته کنید. روی (Click)Home > Conditional Formatting > Highlight Cell Rules > Greater Than > 0 کلیک کنید .

این سلول‌هایی را که دارای تعادل هستند برجسته می‌کند. به دلیل نشان دادن بیشتر قالب‌بندی، چند مشتری بدون موجودی اضافه کردیم.  

  • به Developer(Developer ) برگردید و روی Stop Recording کلیک کنید .

ماکرو را اعمال کنید(Apply The Macro)

اجازه دهید قبل از اینکه ماکرو را ضبط کنیم تا آن را به درستی قالب بندی کنیم، با صفحه گسترده اصلی شروع کنیم. روی Macros کلیک کنید(Click) ، ماکرویی را که ایجاد کردید انتخاب و اجرا کنید.(Run)

وقتی یک ماکرو اجرا می کنید، تمام قالب بندی ها برای شما انجام می شود. این ماکرو که به تازگی ایجاد کردیم در ویرایشگر ویژوال بیسیک(Visual Basic Editor) ذخیره می شود .

کاربران می توانند ماکروها را به روش های مختلف اجرا کنند. برای اطلاعات بیشتر Run a macro(Run a macro) را بخوانید .  

درباره VBA بیشتر بدانید(Learn More About VBA)

برای آشنایی با VBA، از تب Developer بر روی Macro کلیک کنید. یکی را که ایجاد کرده اید پیدا کنید و روی Edit کلیک کنید.(Edit.)

کدی که در کادر بالا مشاهده می کنید همان چیزی است که هنگام ضبط ماکرو ایجاد شده است. 

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

یک دکمه برای شروع کار با VBA ایجاد کنید(Create a Button To Get Started With VBA)

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

  • برای درج یک عنصر دکمه، به تب Developer بروید. 
  • دکمه فرمان ActiveX(ActiveX Command Button ) را از منوی کشویی کنار Insert در بخش Controls انتخاب کنید .

  • دکمه را در هر نقطه از صفحه گسترده بکشید(Drag) تا بتوانید به راحتی به آن دسترسی داشته باشید و در صورت تمایل بعداً آن را تغییر دهید.

  • برای پیوست کردن کد، روی دکمه راست کلیک کرده و Properties را انتخاب کنید . ما نام(Name) را به عنوان CommandButton و Caption to Convert را نگه می داریم (این متن دکمه است).

برای دادن عملکرد دکمه کد اضافه کنید(Add Code To Give The Button Functionality)

(VBA)کدنویسی VBA در رابط اکسل انجام نمی شود. (Excel)در محیطی مجزا انجام می شود.  

  • به تب Developer بروید و مطمئن شوید که Design Mode فعال است.

  • برای دسترسی به کد دکمه ای که ایجاد کردیم، روی آن راست کلیک کرده و View Code را انتخاب کنید .

  • با نگاهی به کد موجود در تصویر زیر، متوجه شوید که ابتدا ( Subject خصوصی(Private Sub) ) و پایان ( End Sub ) کد از قبل وجود دارد.

  • کد زیر روند تبدیل ارز را هدایت می کند.

ActiveCell.Value = (ActiveCell * 1.28)

هدف ما در این بخش تبدیل ارز موجود در صفحه گسترده است. اسکریپت بالا نرخ مبادله پوند(GBP) به دلار(USD) را منعکس می کند . مقدار جدید یک سلول همان چیزی است که در حال حاضر وجود دارد ضربدر 1.28.

تصویر زیر به شما نشان می دهد که پس از درج کد در پنجره VBA چگونه به نظر می رسد.(VBA)

  • به File در ناوبری بالا بروید و روی Close کلیک کنید و به Microsoft Excel(click on Close and Return to Microsoft Excel) برگردید تا به رابط اصلی اکسل بازگردید.(Excel)

آیا کار کرد؟(Did It Work?)

قبل از اینکه بتوانید کد خود را آزمایش کنید، ابتدا باید Design Mode را غیرفعال کنید (روی آن کلیک کنید) تا از تغییرات بیشتر جلوگیری کنید و عملکرد دکمه را بدهید.

  • (Type)هر عددی را در صفحه گسترده خود تایپ کنید و سپس روی دکمه تبدیل(Convert) کلیک کنید. اگر مقدار عدد شما تقریباً یک چهارم افزایش یابد، کارساز است.

برای این مثال، من عدد 4 را در یک سلول قرار دادم. پس از کلیک روی Convert ، عدد به 5.12 تغییر کرد. از آنجایی که 4 ضربدر 1.28 برابر با 5.12 است، کد به درستی اجرا شده است.

اکنون که نحوه ایجاد یک ماکرو یا اسکریپت در اکسل(Excel) را فهمیدید ، می توانید از آنها برای خودکارسازی بسیاری از اقدامات در اکسل(Excel) استفاده کنید.



About the author

من یک متخصص کامپیوتر با بیش از 10 سال تجربه هستم و در کمک به افراد در مدیریت کامپیوترهایشان در دفترشان تخصص دارم. من مقالاتی در مورد موضوعاتی مانند نحوه بهینه سازی اتصال اینترنت خود، نحوه راه اندازی رایانه برای بهترین تجربه بازی و موارد دیگر نوشته ام. اگر در مورد هر چیزی که مربوط به کار یا زندگی شخصی خود است به دنبال کمک هستید، من آن شخص برای شما هستم!



Related posts