4.7/5 - (14 امتیاز)

حلقه ها یکی از قدرتمندترین ویژگی های تمام زبان های برنامه نویسی هستند. حلقه (loop) یک عمل مشخص را چندین و چندبار تکرار میکند. هربار که عمل مورد نظر تکرار میشود، چیزی در حلقه تغییر میکند در نتیجه فعالیت در حال تکرار هربار با دفعه قبل مقداری تفاوت خواهد داشت. برای روشن تر شدن موضوع با ما همراه باشید.

برای مثال اگر ما بخواهیم با استفاده از وی بی ای سلول A1 را در 10 ورک شیت Bold کنیم، میتوانیم:

  • کد مورد نظر را 10 بار و هر بار برای یکی از ورک شیت ها جداگانه بنویسیم. یا
  • کد را یکبار بنویسیم و با استفاده از یک حلقه آن را 10 بار تکرار کنیم

احتمالا همه ما روش دوم را ترجیح خواهیم داد. بخصوص اینکه تعداد ورک شیت ها بسیار بیشتر باشد امکان نوشتن کد برای هر ورک شیت به صورت جداگانه وجود ندارد. اینجاست که حلقه (loop) در زبان برنامه نویسی VBA قدرت خود را به نمایش می گذارد

مفهوم کلی حلقه (loop) در ماکرونویسی

به صورت کلی چندین نوع حلقه (loop) در زبان برنامه نویسی VBA وجود دارد که در مطالب آینده تمامی انواع آن را پوشش خواهیم داد. برای شروع یا یکی از پرکاربردترین انواع حلقه ها یعنی حلقه For شروع می کنیم:

Sub firstForLoop()

'تعریف متغیر مورد نظر
Dim counter As Integer

'مقدار متغیر هر بار که حلقه اجرا میشود تغییر میکند
For counter = 1 to 10
    'ایجاد یک باکس پیغام و نمایش مقدار متغیر
    MsgBox counter
Next counter

End Sub

اگر کد ارائه شده در بالا را در محیط VBE وارد کنید مشاهده خواهید کرد که message box هایی را نمایش میدهد که از 1 تا 10 را شمارش میکنند. این کد، با تعریف متغیر( که در قسمت قبل مورد بررسی قرار گرفت) شروع میشود:

Dim counter As Integer

حلقه For برای 10 بار اجرا میشود. بار اول، متغیر Counter دارای مقدار 1 است، دفعه دوم مقدار 2 می گیرد، سپس مقدار آن به 3 تغییر میکند و به همین شکل تا 10 ادامه پیدا میکند.

عملی که در این مثال انجام میشود صرفا مقدار متغیر Counter را در یک باکس پیغام نمایش میدهد.

MsgBox counter

حلقه با کد زیر بسته میشود:

Next counter

زمانی که مقدار counter به 10 برسد، اجرای لوپ متوقف خواهد شد.

نکات مهم در مورد حلقه For

زمانی که از یک لوپ For استفاده میکنید می بایست نکات زیر را مورد نظر قرار دهید:

  • حلقه For صرفا با اعدادی کار میکند که دارای بازه های ثابت باشد. برای مثال در هر بار 2 واحد اضافه شود.
'افزایش مقدار متغیر به مقدار 2 واحد در هر بار تکرار
For counter = 2 to 10 Step 2
 

حلقه For میتواند به صورت عقبگرد نیز عمل کند. برای مثال از 10 به 1 حرکت کند.

'حرکت حلقه به صورت عقبگرد
For counter = 10 to 1 Step -1

شما میتوانید در میان یک حلقه از حلقه های دیگر استفاده کنید.

'ایجاد دو متغیر(هرکدام برای یک لوپ)
Dim counter As Integer
Dim subCounter As Integer

'شروع اولین حلقه
For counter = 1 to 10

    'شروع حلقه دوم
    For subCounter = 1 to 30 
        MsgBox counter + subCounter
    Next subCounter

Next counter
  • حلقه های For زمانی مفید هستند که فعالیت مورد نظر را بتوان با استفاده از اعداد مدیریت کرد. برای مثال  (Sheet(1 در ورک بوک همیشه شیت اول است، (sheet(2 شیت دوم و …. بنابراین شما میتوانید به راحتی با استفاده از لوپ For عملیات مورد نظر را بر روی تمام ورک شیت های یک ورک بوک انجام دهید

برای مطالعه بیشتر در زمینه برنامه نویسی وی بی ای و ماکرونویسی و مشاهده فیلم های آموزشی رایگان در این زمینه کلیک کنید. 

مشترک شدن
Notify of
guest

0 نظرات
نظردهی درون متنی
مشاهده همه نظرات