اگر به دنبال خودکارسازی صفحه گسترده در اکسل هستید، ماکروها روش خوبی برای انجام این کار میباشند. ماکروها اسکریپتهای خودکار هستند که به طور معمول با استفاده از Visual Basic for Applications (VBA) نوشته میشوند تا به شما در انجام برخی اقدامات در اکسل کمک کنند، مانند فشار دادن خودکار دکمه یا انجام محاسبات.
VBA یک زبان برنامهنویسی مفید است که تحلیلگران داده میتوانند یاد بگیرند زیرا عملکرد اکسل را تقویت کرده و انجام برخی کارها را به طور خودکار (و به طور مکرر) با اسکریپتهای ماکرو سفارشی آسانتر میکند. به عنوان مثال، اگر میخواهید ماکرویی تکرار شود که عملی را به تعداد دفعات مشخصی تکرار کند، میتوانید از VBA For Loop استفاده کنید.
حلقههایی از این دست فقط مختص VBA نیستند؛ در واقع این یک ویژگی مشترک در اکثر زبانهای برنامهنویسی است، که به یک برنامه یا اسکریپت امکان میدهد به طور مداوم در یک دنباله با نقطه شروع و پایان اجرا شود. برای تحلیلگران دادههای اکسل، VBA For Loop موجب میشود بتوانید در سلولها حلقه ایجاد کنید یا تعداد معینی از اقدامات را پس از برآورده شدن معیارها انجام دهید.
این مورد میتواند زمانی باشد که محاسبه مشخصی درج شده یا به مقدار آن رسیده است، یا هنگامی که شما یک کار خاص را در صفحه گسترده خود انجام میدهید (مانند فشار دادن یک دکمه وارد شده به صورت سفارشی). استفاده از VBA For Loop برای ایجاد ماکروهایی ضروری است که هنگام کار در صفحه گسترده به طور مداوم اجرا میشوند.
اگر در برنامهنویسی VBA تازهکار هستید و میخواهید یک ماکرو اساسی (یا حتی پیشرفته) با استفاده از VBA For Loop ایجاد کنید، این مقاله میتواند به شما کمک کند.
VBA For Loops در اکسل چیست و برای چه مواردی استفاده میشود؟
همانطور که قبلاً نیز اشاره کردیم، حلقهها یک مفهوم برنامهنویسی هستند که به برنامه اجازه میدهند خود را تکرار کند. آنها به شکستن کد کمک کرده و تعداد اقدامات رمزگذاری شده خاصی را که برای کمک به بهبود سرعت و کارایی برنامههای شما نوشته شدهاند، کاهش میدهند.
حلقهها ابزاری انعطافپذیر هستند و به شما این امکان را میدهند که یک عمل خاص (مانند تغییر مقادیر سلول) را چند بار تنظیم کنید. یک حلقه همچنین میتواند با عبارات دیگری مانند For و If ترکیب شود، که به تعیین تعداد و مدت زمان اجرای یک اسکریپت کمک میکند.
در VBA، حلقه For یک عمل (یا مجموعهای از اقدامات) را برای یک سری تعداد بار در یک دنباله تکرار میکند. به عنوان مثال، اگر ماکروی داشته باشید (نوشته شده در VBA) که مقادیری را در یک ستون وارد میکند، میتوانید برای این کار از حلقه For استفاده کرده، هر سلول را به طور متوالی پر کنید (به عنوان مثال A1، A2 ، A3 و غیره) تا زمانی که به یک مقدار نهایی برسد).
به عنوان مثال، قطعه کد VBA در تصویر بالا چنین عملی را نشان میدهد. در این مثال، ماکرو VBA برای درج مقادیر در سلولهای ستون A ، از ۱ به ۱۰ و افزایش در تک رقمیها طراحی شده است. با رسیدن به ۱۰، اسکریپت متوقف میشود.
این یک مثال ساده است، اما حلقه For به اندازه کافی قدرتمند است که تقریباً هر عملی را که میخواهید در اکسل به طور مکرر انجام دهید، اجرا کند. اگرچه این راهنما یک آموزش کامل VBA نیست و فرض را بر این میگذارد که شما از قبل تجربه سطح اولیه VBA را دارید، اما به شما امکان میدهد حلقههای ساده VBA را با استفاده از For برای تکرار یک عمل به ترتیب ایجاد کنید.
VBA For Loops در اکسل چگونه کار میکند؟
ما فرض میکنیم که شما درباره چگونگی عملکرد ماکرو VBA پیشزمینهای دارید. معرفی یک حلقه For به شما امکان میدهد کد (یا بخشی از آن) را تنظیم کنید تا به تعداد دفعات مشخصی تکرار شود.
ما با استفاده از یک مثال ساده قابل درک فرآیند را توضیح خواهیم داد. از آنجا که VBA For Loopsبرای اقدامات تکراری محدود مفید است، فرض کنید هنگام فشار دادن یک دکمه (با نام کلاس Button) میخواهید یک پنجره پاپ آپ ظاهر شود.
فشردن دکمه باعث میشود که یک جعبه پاپ آپ تعداد مشخصی از مجموعه، به ترتیب، با استفاده از متغیر varButton به عنوان شماره پایان ظاهر شود (در این حالت، ۱۰). این جعبه پاپ آپ متغیر فعلی را نمایش میدهد که از صفر شروع میشود. سپس این کار را ۹ بار دیگر تکرار میکند تا زمانی که به متغیر varButton (10) برسد.
عمل فشار دادن دکمه حلقه را شروع میکند. از آنجا که آزمون دارای متغیر شروع و پایان است، حلقه قبل از پایان تعداد محدودی اجرا دارد. به طور پیشفرض، مقادیر ۱ افزایش مییابد (با ۰، ۱، ۲ و غیره شروع میشود) اما با افزودن مقدار Step میتوان این مقدار را تغییر داد. به عنوان مثال، تغییر به ۵ به معنای ظاهر شدن فقط سه پنجره پاپ آپ است.
پس از رسیدن به مقدار نهایی، حلقه خارج شده و ماکرو متوقف میشود. با این حال، میتوانید اقدامات دیگری را برای انجام این کار اضافه کنید، مانند تغییر مقدار سلول دیگر یا ایجاد یک پیام پاپ آپ دیگر. میتوانید For Loop را در سایر تستهای منطقی مانند جمله Do while یا If استفاده کنید.
این مثال شامل تمام معیارهای معمول مورد نیاز برای تکمیل حلقه For با استفاده از VBA است. کد مشخص میکند که چند بار عمل در یک دنباله انجام میشود (varButton) و مقدار افزایشی که برای تکرار از طریق دنباله استفاده میشود چیست (Step).
تنها قسمت اختیاری این مثال دکمه مورد استفاده برای شروع ماکرو است. لزوماً نیازی نیست کد ماکرو را با فشار دادن یک دکمه پیوند دهید، زیرا به راحتی میتوانید این حلقه را شروع کرده و با فشار دادن Developer> Macros > Run به صورت دستی ماکرو را فعال کنید.
مواردی که قبل از استفاده از VBA For Loop در اکسل باید در نظر بگیرید
VBA For Loop یک روش انعطافپذیر و دامنهدار است که به کد شما امکان میدهد عملی را به صورت متوالی انجام دهد و فقط در صورت (و زمان) معیارهای خاص متوقف میشود. برای کمک به شما در ایجاد این نوع ماکرو در اکسل، تعدادی نکات وجود دارد که باید آنها را در نظر بگیرید. آنها عبارتند از:
- اگر میخواهید روشی ایجاد کنید که For Loop قبل از رسیدن به مقدار نهایی به پایان برسد، باید دستور Exit For را به کد خود اضافه کنید. این از حلقه خارج میشود و به خط بعدی کد خارج از حلقه میرود (اگر کد شما ادامه یابد). به عنوان مثال، هنگامی که یک دکمه را فشار میدهید میتوانید حلقه را متوقف کنید.
- از VBA For Loop میتوان برای تعداد مشخصی از مقادیر عددی به ترتیب به روش اساسی با استفاده از حلقه For Next استفاده کرد، اما همچنین میتوانید آن را در اشیاء پیچیدهتر (مانند کتابهای کار در صفحه گسترده) به ترتیب و با استفاده از VBA پیچیده برای هر حلقه به کار بگیرید.
- VBA For Loops را میتوان با جملات منطقی دیگری مانند جمله Ifیا Do while قرار داد. این به شما امکان میدهد تصمیمگیری پیچیدهتری را در کد خود ادغام کنید.
- VBA For Loop به ترتیب تکرار میشود، اما با تغییر مقدار Step میتوانید میزان شمارنده حلقه را در هر بار تکرار تغییر دهید. به عنوان مثال، اگر میخواهید حلقه شما به ترتیب دنبالهای حرکت کند که مقدار را ۲ افزایش دهد، باید از مقدار Step 2 استفاده کنید. اگر مقدار Step را ارائه ندهید، شمارنده حلقه از ۱ افزایش مییابد.
- اگر VBA For Loop شما قابل اجرا نباشد، یا اگر کدتان دارای خطا باشد، VBA با یک خطا به حالت اشکالزدایی خارج میشود. برای رفع این مشکل در ویرایشگر داخلی VBA اکسل باید کد خود را عیبیابی کنید.
گرچه این مثالها مهم هستند، شما باید قبل از نوشتن کد، محدودیتهای شناخته شده VBA را که در اینجا ذکر نشدهاند در نظر بگیرید.
نحوه افزودن VBA For Loop در اکسل با استفاده از Visual Basic Editor
با استفاده از Visual Basic Editor میتوانید یک VBA For Loop در اکسل ایجاد، آزمایش و اجرا کنید. این ویرایشگر داخلی VBA اکسل است که به شما امکان میدهد ماکروهای خود را با استفاده از VBA ایجاد کرده یا ماکروهای موجود ایجاد شده را با استفاده از ابزار Macro Recorder ویرایش کنید.
برای شروع ایجاد ماکرو VBA با استفاده از حلقه For در Visual Basic Editor، میتوانید این مراحل را دنبال کنید:
مرحله ۱: VBA Editor را باز کنید.
ابتدا با باز کردن Visual Basic Editor در اکسل شروع کنید.
این کار را میتوانید با فشار دادن کلیدهای Alt + F11 روی صفحه کلید خود (یا Option + F11 در Mac) انجام دهید. اگر قبلاً تب Developer را در نوار روبان موجود در منوی تنظیمات اکسل خود فعال کردهاید، میتوانید برای باز کردن ویرایشگر، Developer> Visual Basic را نیز فشار دهید.
جمعبندی
وقتی مهارت VBA For Loops را کسب کردید، میتوانید با آزمایش Do Until Loops، رویدادهای صفحه کار سفارشی و موارد دیگر، کارها را بیشتر ادامه دهید. ترفندهای VBA مانند اینها به تحلیلگران داده اجازه میدهد تا برنامههای پیچیدهای را در داخل صفحات اکسل ایجاد کنند که میتواند کارها را به صورت خودکار انجام دهد یا محاسبات را تسریع کند، اما ابتدا باید بر VBA تسلط داشته باشید.