VBA তে নিয়ন্ত্রণ প্রবাহ স্টেটমেন্টস (Control Flow Statements in VBA)
নিয়ন্ত্রণ প্রবাহ স্টেটমেন্টস (Control Flow Statements) কোডের বিভিন্ন অংশের মধ্যে প্রবাহ নির্দেশনা দেয় এবং প্রোগ্রামটির সিদ্ধান্ত গ্রহণের প্রক্রিয়াকে নিয়ন্ত্রণ করে। VBA-তে নিয়ন্ত্রণ প্রবাহের জন্য বেশ কিছু স্টেটমেন্ট ব্যবহার করা হয়, যার মাধ্যমে শর্তানুসারে কোডের কিছু অংশ চালানো হয়, কিছু অংশ বাদ দেওয়া হয় বা পুনরাবৃত্তি করা হয়।
নিয়ন্ত্রণ প্রবাহের স্টেটমেন্টগুলো নিম্নলিখিত প্রধান ধরনের হয়ে থাকে:
১. If...Then...Else Statement (যদি...তাহলে...অথবা স্টেটমেন্ট)
If...Then...Else স্টেটমেন্টটি একটি শর্তের উপর ভিত্তি করে কোডের একটি অংশ চালায়। যদি শর্তটি সত্য (True) হয়, তবে কোডের নির্দিষ্ট অংশ কার্যকর হয়; যদি শর্তটি মিথ্যা (False) হয়, তবে অন্য একটি অংশ চালানো হয়।
সিনট্যাক্স:
If condition Then
' Code to execute if condition is true
Else
' Code to execute if condition is false
End Ifউদাহরণ:
Dim age As Integer
age = 20
If age >= 18 Then
MsgBox "You are an adult."
Else
MsgBox "You are a minor."
End Ifএখানে, যদি age ১৮ বা তার বেশি হয়, তাহলে "You are an adult." মেসেজটি প্রদর্শিত হবে, অন্যথায় "You are a minor." মেসেজটি প্রদর্শিত হবে।
If...Then...ElseIf...Else Statement:
যদি একাধিক শর্ত যাচাই করতে হয়, তবে ElseIf ব্যবহার করা হয়।
সিনট্যাক্স:
If condition1 Then
' Code to execute if condition1 is true
ElseIf condition2 Then
' Code to execute if condition2 is true
Else
' Code to execute if all conditions are false
End Ifউদাহরণ:
Dim age As Integer
age = 15
If age >= 18 Then
MsgBox "You are an adult."
ElseIf age >= 13 Then
MsgBox "You are a teenager."
Else
MsgBox "You are a child."
End Ifএখানে, যদি age ১৮ বা তার বেশি হয়, "You are an adult." দেখাবে, অন্যথায় যদি age ১৩ বা তার বেশি হয়, "You are a teenager." দেখাবে, এবং যদি কোনো শর্ত পূর্ণ না হয়, "You are a child." মেসেজটি দেখাবে।
২. Select Case Statement (সিলেক্ট কেস স্টেটমেন্ট)
Select Case স্টেটমেন্ট একাধিক শর্তের মধ্যে একটি নির্দিষ্ট মান যাচাই করার জন্য ব্যবহৃত হয়। এটি একাধিক If...Else শর্তের তুলনায় আরো সহজ ও কার্যকরী হতে পারে।
সিনট্যাক্স:
Select Case expression
Case value1
' Code to execute if expression equals value1
Case value2
' Code to execute if expression equals value2
Case Else
' Code to execute if expression does not match any case
End Selectউদাহরণ:
Dim day As Integer
day = 3
Select Case day
Case 1
MsgBox "Sunday"
Case 2
MsgBox "Monday"
Case 3
MsgBox "Tuesday"
Case Else
MsgBox "Other day"
End Selectএখানে, day এর মান ৩ হওয়ায় "Tuesday" মেসেজটি প্রদর্শিত হবে।
৩. For...Next Loop (ফর...নেক্সট লুপ)
For...Next লুপ একটি নির্দিষ্ট সংখ্যক বার কোড চালানোর জন্য ব্যবহৃত হয়। এটি একটি কাউন্টার বা ইনডেক্সের মান বৃদ্ধি বা হ্রাস করে এবং যতক্ষণ না শর্তটি পূর্ণ হয় ততক্ষণ কোডটি পুনরাবৃত্তি হয়।
সিনট্যাক্স:
For counter = start To end [Step step]
' Code to execute
Next counterউদাহরণ:
Dim i As Integer
For i = 1 To 5
MsgBox "Iteration " & i
Next iএখানে, i ১ থেকে ৫ পর্যন্ত মান নিয়ে লুপ চলবে এবং প্রতিটি ইটারেশন থেকে মেসেজ দেখাবে।
Step Keyword (স্টেপ কীওয়ার্ড):
Step ব্যবহার করা হয় কাউন্টার কতটুকু বাড়বে বা কমবে তা নির্ধারণ করতে।
উদাহরণ:
For i = 1 To 10 Step 2
MsgBox i
Next iএখানে, i ১ থেকে ১০ পর্যন্ত দুই একক পর পর বাড়বে (১, ৩, ৫, ৭, ৯)।
৪. Do...Loop (ডু...লুপ)
Do...Loop লুপটি একটি শর্ত পূর্ণ না হওয়া পর্যন্ত কোড চালানোর জন্য ব্যবহৃত হয়। এটি While, Until, বা শর্তের পরে কোড চালানোর জন্য ব্যবহৃত হতে পারে।
Do While Loop (ডু ওয়াইল লুপ):
এটি শর্তটি সত্য হওয়া পর্যন্ত কোড চলতে থাকে।
সিনট্যাক্স:
Do While condition
' Code to execute as long as condition is true
Loopউদাহরণ:
Dim i As Integer
i = 1
Do While i <= 5
MsgBox "Iteration " & i
i = i + 1
Loopএখানে, i ১ থেকে ৫ পর্যন্ত বাড়বে এবং প্রতিটি ইটারেশনে মেসেজ দেখাবে।
Do Until Loop (ডু আনটিল লুপ):
এটি শর্তটি মিথ্যা হওয়া পর্যন্ত কোড চলতে থাকে।
সিনট্যাক্স:
Do Until condition
' Code to execute as long as condition is false
Loopউদাহরণ:
Dim i As Integer
i = 1
Do Until i > 5
MsgBox "Iteration " & i
i = i + 1
Loopএখানে, i ১ থেকে ৫ পর্যন্ত বাড়বে এবং প্রতিটি ইটারেশনে মেসেজ দেখাবে।
৫. While...Wend Loop (ওয়াইল...ওয়েন্ড লুপ)
While...Wend লুপটি Do...Loop এর মতোই কাজ করে, তবে এটি পুরোনো সংস্করণে ব্যবহৃত হয়। এটি শর্ত সত্য হওয়া পর্যন্ত কোড চালাতে থাকে।
সিনট্যাক্স:
While condition
' Code to execute while condition is true
Wendউদাহরণ:
Dim i As Integer
i = 1
While i <= 5
MsgBox "Iteration " & i
i = i + 1
WendExit Statement (এক্সিট স্টেটমেন্ট)
Exit স্টেটমেন্টটি লুপ বা কন্ডিশনাল স্টেটমেন্টের মধ্যে থেকে দ্রুত প্রস্থান করতে ব্যবহৃত হয়। এটি For, Do, বা Select Case থেকে বের হতে সাহায্য করে।
উদাহরণ:
Dim i As Integer
For i = 1 To 10
If i = 5 Then
Exit For
End If
MsgBox i
Next iএখানে, যখন i ৫ হয়, লুপটি তৎক্ষণাৎ বের হয়ে যাবে।
সারসংক্ষেপ
- If...Then...Else: একটি শর্তের উপর ভিত্তি করে কোডের নির্দিষ্ট অংশ চালানো।
- Select Case: একাধিক শর্তের মধ্যে একটি নির্দিষ্ট মান যাচাই করার জন্য ব্যবহৃত।
- For...Next: নির্দিষ্ট সংখ্যক ইটারেশন করতে ব্যবহৃত।
- Do...Loop: শর্ত পূর্ণ হওয়া বা না হওয়া পর্যন্ত কোড পুনরাবৃত্তি করতে ব্যবহৃত।
- Exit: লুপ বা কন্ডিশনাল স্টেটমেন্ট থেকে বের হওয়া।
এই নিয়ন্ত্রণ প্রবাহ স্টেটমেন্টগুলি VBA কোডকে আরও লজিক্যাল এবং কার্যকরী করে তোলে, এবং প্রোগ্রামের গতিপথ নিয়ন্ত্রণে সাহায্য করে।
If, ElseIf, এবং Else স্টেটমেন্ট
If, ElseIf, এবং Else স্টেটমেন্টগুলি প্রোগ্রামিংয়ে শর্ত নির্ধারণ করার জন্য ব্যবহৃত হয়। এগুলি ব্যবহৃত হয় যখন আপনি কোনো নির্দিষ্ট শর্তের উপর ভিত্তি করে কোডের একটি নির্দিষ্ট অংশ চালাতে চান। এসব শর্ত যাচাই করে, প্রোগ্রামটি সিদ্ধান্ত নেয় কোন কোড ব্লকটি রান করবে।
১. If স্টেটমেন্ট
If স্টেটমেন্ট ব্যবহৃত হয় শর্ত যাচাই করার জন্য এবং যদি শর্তটি সত্য (True) হয়, তাহলে নির্দিষ্ট কোড ব্লকটি চালানো হয়।
সিনট্যাক্স:
If condition Then
' কোড যা চালানো হবে যদি শর্তটি সত্য হয়
End Ifউদাহরণ:
Dim number As Integer
number = 10
If number > 5 Then
MsgBox "The number is greater than 5"
End Ifএখানে, যেহেতু number এর মান 10, এটি 5 এর চেয়ে বড়, তাই মেসেজ বক্সে "The number is greater than 5" দেখানো হবে।
২. ElseIf স্টেটমেন্ট
ElseIf স্টেটমেন্ট ব্যবহৃত হয় যখন আপনি একাধিক শর্ত পরীক্ষা করতে চান। যদি প্রথম শর্তটি মিথ্যা হয়, তবে পরবর্তী শর্ত পরীক্ষা করা হয়।
সিনট্যাক্স:
If condition1 Then
' কোড যা চালানো হবে যদি প্রথম শর্তটি সত্য হয়
ElseIf condition2 Then
' কোড যা চালানো হবে যদি দ্বিতীয় শর্তটি সত্য হয়
Else
' কোড যা চালানো হবে যদি কোন শর্তই সত্য না হয়
End Ifউদাহরণ:
Dim number As Integer
number = 10
If number > 20 Then
MsgBox "The number is greater than 20"
ElseIf number > 5 Then
MsgBox "The number is greater than 5 but less than or equal to 20"
Else
MsgBox "The number is 5 or less"
End Ifএখানে, প্রথম শর্ত number > 20 মিথ্যা, তাই পরবর্তী শর্তটি পরীক্ষা করা হয়, যা number > 5 সত্য। তাই, "The number is greater than 5 but less than or equal to 20" মেসেজ বক্সে প্রদর্শিত হবে।
৩. Else স্টেটমেন্ট
Else স্টেটমেন্ট ব্যবহৃত হয় যখন পূর্বের সমস্ত শর্ত মিথ্যা হয়। এটি একটি ডিফল্ট শর্ত হিসেবে কাজ করে।
সিনট্যাক্স:
If condition1 Then
' কোড যা চালানো হবে যদি শর্ত1 সত্য হয়
Else
' কোড যা চালানো হবে যদি শর্ত1 মিথ্যা হয়
End Ifউদাহরণ:
Dim number As Integer
number = 3
If number > 5 Then
MsgBox "The number is greater than 5"
Else
MsgBox "The number is 5 or less"
End Ifএখানে, number > 5 মিথ্যা, তাই Else অংশটি রান করবে এবং "The number is 5 or less" মেসেজ বক্সে প্রদর্শিত হবে।
If, ElseIf, এবং Else স্টেটমেন্টের ব্যবহার
এখন, এই তিনটি স্টেটমেন্ট একত্রে ব্যবহার করার উদাহরণ দেখি:
Dim number As Integer
number = 15
If number > 20 Then
MsgBox "The number is greater than 20"
ElseIf number > 10 Then
MsgBox "The number is greater than 10 but less than or equal to 20"
ElseIf number > 5 Then
MsgBox "The number is greater than 5 but less than or equal to 10"
Else
MsgBox "The number is 5 or less"
End Ifএখানে, প্রথম শর্ত number > 20 মিথ্যা, তাই দ্বিতীয় শর্ত পরীক্ষা করা হয়, যা number > 10 সত্য। তাই, "The number is greater than 10 but less than or equal to 20" মেসেজ বক্সে প্রদর্শিত হবে।
উপসংহার
- If স্টেটমেন্ট একক শর্ত যাচাই করার জন্য ব্যবহৃত হয়।
- ElseIf স্টেটমেন্ট একাধিক শর্ত যাচাই করার জন্য ব্যবহৃত হয় যদি প্রথম শর্তটি মিথ্যা হয়।
- Else স্টেটমেন্টটি একটি ডিফল্ট বিকল্প হিসেবে ব্যবহৃত হয়, যেখানে পূর্বের কোন শর্ত সত্য না হলে এই অংশটি চালানো হয়।
এগুলি শর্ত ভিত্তিক লজিক তৈরি করতে এবং প্রোগ্রামের কার্যকারিতা বাড়াতে খুবই কার্যকর।
Select Case স্টেটমেন্ট হল VBA (Visual Basic for Applications)-এর একটি শক্তিশালী কন্ডিশনাল স্টেটমেন্ট, যা একাধিক শর্ত পরীক্ষা করতে ব্যবহৃত হয়। এটি অনেকগুলি If-Then-Else শর্তের চেয়ে পরিষ্কার এবং সহজে ব্যবহৃত হয় যখন একাধিক মানের সাথে তুলনা করতে হয়। Select Case একটি নির্দিষ্ট মানের জন্য একাধিক সম্ভাব্য ক্ষেত্রে পরীক্ষা করতে সাহায্য করে এবং সংশ্লিষ্ট ব্লকটি চালায়।
Select Case স্টেটমেন্টের গঠন:
Select Case <expression>
Case <value1>
' Execute code if <expression> equals <value1>
Case <value2>
' Execute code if <expression> equals <value2>
Case Else
' Execute code if <expression> doesn't match any of the above cases
End Select- expression: এটি সেই মান যা যাচাই করা হবে।
- Case
, : একাধিক সম্ভাব্য মান পরীক্ষা করতে ব্যবহৃত হয়।, etc. - Case Else: যদি কোন মান উপরের শর্তগুলির সাথে মেলে না, তাহলে
Case Elseব্লকটি চালানো হয়। এটি ঐচ্ছিক এবং শুধুমাত্র যখন আপনি নিশ্চিত না হন যে কোন শর্তটি সঠিক হবে, তখন এটি ব্যবহার করা হয়।
Example 1: সাধারণ Select Case
Dim day As Integer
day = 3
Select Case day
Case 1
MsgBox "Monday"
Case 2
MsgBox "Tuesday"
Case 3
MsgBox "Wednesday"
Case Else
MsgBox "Other day"
End Selectএখানে, day ভেরিয়েবলের মান 3 হওয়ায়, Case 3 অংশটি কার্যকর হবে এবং একটি "Wednesday" মেসেজবক্স দেখাবে।
Example 2: Range of Values (মানের পরিসর)
Select Case শুধুমাত্র একক মানের সাথে তুলনা করেই থেমে থাকে না, আপনি এটি মানের পরিসরের সাথে তুলনা করতেও ব্যবহার করতে পারেন।
Dim score As Integer
score = 85
Select Case score
Case 90 To 100
MsgBox "Grade A"
Case 80 To 89
MsgBox "Grade B"
Case 70 To 79
MsgBox "Grade C"
Case Else
MsgBox "Grade D"
End Selectএখানে, score ভেরিয়েবলটি 85 হওয়ায়, এটি "Grade B" মেসেজ প্রদর্শন করবে, কারণ এটি ৮০ থেকে ৮৯ এর মধ্যে পড়ে।
Example 3: Multiple Values in a Single Case
একই Case স্টেটমেন্টে একাধিক মান পরীক্ষা করার জন্য, আপনি Is বা Or ব্যবহার করতে পারেন।
Dim fruit As String
fruit = "Apple"
Select Case fruit
Case "Apple", "Banana", "Orange"
MsgBox "Fruit is available."
Case Else
MsgBox "Fruit is not available."
End Selectএখানে, যদি fruit হল "Apple", তাহলে "Fruit is available." মেসেজ দেখানো হবে, কারণ এটি Apple, Banana বা Orange এর মধ্যে একটি।
Example 4: Use of Variable with Select Case
Select Case স্টেটমেন্টে আপনি ভেরিয়েবল এর মানও পরীক্ষা করতে পারেন।
Dim temperature As Integer
temperature = 28
Select Case True
Case temperature < 10
MsgBox "Cold"
Case temperature >= 10 And temperature < 20
MsgBox "Cool"
Case temperature >= 20 And temperature < 30
MsgBox "Warm"
Case Else
MsgBox "Hot"
End Selectএখানে, temperature এর মান অনুযায়ী, কোডটি "Warm" মেসেজ দেখাবে, কারণ ২০ থেকে ৩০ এর মধ্যে পড়ে।
Advantages of Select Case:
- সহজ এবং পরিষ্কার: যখন অনেকগুলো শর্ত পরীক্ষা করতে হয়,
Select Caseকোডকে আরও সহজ এবং পরিষ্কার করে তোলে। - পঠনযোগ্যতা: কোডের মধ্যে জটিলতা কমায় এবং তারপরে সহজে বুঝতে সাহায্য করে।
- পারফরম্যান্স: একাধিক
If-Then-ElseIfস্টেটমেন্টের তুলনায়,Select Caseপারফরম্যান্সের দিক থেকেও বেশ কার্যকরী, বিশেষত যখন অনেক শর্ত পরীক্ষা করতে হয়।
উপসংহার:
Select Case একটি শক্তিশালী এবং সহজভাবে ব্যবহৃত কন্ডিশনাল স্টেটমেন্ট, যা একাধিক শর্ত যাচাই করতে ব্যবহৃত হয়। এটি কোডের পঠনযোগ্যতা উন্নত করতে এবং একাধিক শর্তের ভিত্তিতে সিদ্ধান্ত নিতে সহায়ক। এটি বিশেষভাবে উপকারী যখন একাধিক মান বা শর্তের ভিত্তিতে একাধিক অপারেশন বা ফলাফল প্রয়োজন।
VBA তে Loops: For, For Each, Do While, এবং Do Until
VBA (Visual Basic for Applications) তে লুপ (loop) ব্যবহারের মাধ্যমে আমরা নির্দিষ্ট কাজ বা কার্যক্রম পুনরাবৃত্তি করতে পারি। বিভিন্ন ধরণের লুপ রয়েছে যা আমাদের কোডের কার্যকারিতা বৃদ্ধি করতে সাহায্য করে। নিচে আমরা চারটি প্রধান ধরনের লুপ— For, For Each, Do While, এবং Do Until— এর ব্যবহার এবং উদাহরণ দেখব।
1. For Loop (ফর লুপ)
For Loop হলো একটি নির্দিষ্ট সংখ্যা বা সীমা পর্যন্ত কাজ করার জন্য ব্যবহৃত লুপ। এটি সাধারণত পূর্বনির্ধারিত পুনরাবৃত্তির জন্য ব্যবহৃত হয়।
For Loop এর Sintax:
For counter = startValue To endValue [Step stepValue]
' কোড যা পুনরাবৃত্তি হবে
Next counter- counter: এটি একটি ভেরিয়েবল যা লুপের প্রতি পুনরাবৃত্তিতে মান পরিবর্তন করে।
- startValue: লুপের প্রথম মান।
- endValue: লুপের শেষ মান।
- stepValue: (ঐচ্ছিক) প্রতি পুনরাবৃত্তিতে কতটা বাড়ানো হবে।
For Loop এর উদাহরণ:
Sub ForLoopExample()
Dim i As Integer
For i = 1 To 5
MsgBox "The value of i is " & i
Next i
End Subএখানে, লুপটি 1 থেকে 5 পর্যন্ত চলে এবং প্রতি ইটারেশনে i এর মান প্রদর্শন করবে। আউটপুট হবে:
- The value of i is 1
- The value of i is 2
- The value of i is 3
- The value of i is 4
- The value of i is 5
Step Value সহ উদাহরণ:
Sub ForLoopWithStep()
Dim i As Integer
For i = 1 To 10 Step 2
MsgBox "The value of i is " & i
Next i
End Subএখানে, Step 2 দিয়ে প্রতি পুনরাবৃত্তিতে i এর মান ২ করে বাড়ানো হবে। আউটপুট হবে:
- The value of i is 1
- The value of i is 3
- The value of i is 5
- The value of i is 7
- The value of i is 9
2. For Each Loop (ফর ইচ লুপ)
For Each Loop সাধারণত একটি সংগ্রহ (collection) বা অ্যারের উপর প্রতিটি আইটেমের জন্য কাজ করার জন্য ব্যবহৃত হয়। এটি সেই সকল ক্ষেত্রে ব্যবহার করা হয় যেখানে লিস্ট বা অ্যারে উপাদানগুলোর মাধ্যমে কাজ করতে হয়।
For Each Loop এর Sintax:
For Each element In collection
' কোড যা প্রতিটি উপাদান জন্য পুনরাবৃত্তি হবে
Next element- element: এটি ঐ উপাদানকে নির্দেশ করে যা লুপের মাধ্যমে একে একে পাওয়া যাবে।
- collection: এটি একটি অ্যারে, রেঞ্জ বা অন্য কোনো সংগ্রহ হতে পারে।
For Each Loop এর উদাহরণ:
Sub ForEachLoopExample()
Dim cell As Range
For Each cell In Range("A1:A5")
cell.Value = "Hello"
Next cell
End Subএখানে, Range("A1:A5") এর প্রতিটি সেলে "Hello" বসানো হবে। আউটপুট: A1 থেকে A5 সেলগুলোতে "Hello" লেখা থাকবে।
3. Do While Loop (ডু হোয়াইল লুপ)
Do While Loop একটি শর্তভিত্তিক লুপ, যা তখন পর্যন্ত চলতে থাকে যতক্ষণ না শর্ত পূর্ণ হয়। যদি শর্ত প্রথমে মিথ্যা হয় তবে লুপটি একবারও চলবে না।
Do While Loop এর Sintax:
Do While condition
' কোড যা শর্ত মেনে চলবে
Loop- condition: এটি একটি শর্ত যা True হলে লুপ চলতে থাকবে। যদি শর্ত False হয়, লুপ বন্ধ হয়ে যাবে।
Do While Loop এর উদাহরণ:
Sub DoWhileExample()
Dim i As Integer
i = 1
Do While i <= 5
MsgBox "The value of i is " & i
i = i + 1
Loop
End Subএখানে, লুপটি i এর মান ৫ এর সমান বা তার কম হওয়া পর্যন্ত চলবে এবং প্রতি পুনরাবৃত্তিতে i এর মান দেখাবে। আউটপুট হবে:
- The value of i is 1
- The value of i is 2
- The value of i is 3
- The value of i is 4
- The value of i is 5
4. Do Until Loop (ডু আনটিল লুপ)
Do Until Loop একটি শর্তভিত্তিক লুপ যা তখন পর্যন্ত চলতে থাকে যতক্ষণ না শর্ত পূর্ণ না হয় (অর্থাৎ, শর্তটি False হওয়া পর্যন্ত)। Do While Loop এর বিপরীত হিসাবে কাজ করে।
Do Until Loop এর Sintax:
Do Until condition
' কোড যা শর্ত মেনে চলবে
Loop- condition: এটি একটি শর্ত যা False হলে লুপ চলতে থাকবে। শর্তটি True হলে লুপ বন্ধ হবে।
Do Until Loop এর উদাহরণ:
Sub DoUntilExample()
Dim i As Integer
i = 1
Do Until i > 5
MsgBox "The value of i is " & i
i = i + 1
Loop
End Subএখানে, লুপটি i এর মান 5 এর বেশি না হওয়া পর্যন্ত চলবে এবং প্রতি পুনরাবৃত্তিতে i এর মান দেখাবে। আউটপুট হবে:
- The value of i is 1
- The value of i is 2
- The value of i is 3
- The value of i is 4
- The value of i is 5
Loops এর মধ্যে পার্থক্য:
| লুপ | বর্ণনা | শর্ত |
|---|---|---|
| For Loop | নির্দিষ্ট সংখ্যক পুনরাবৃত্তি করতে ব্যবহৃত হয়। | এক বা একাধিক পুনরাবৃত্তির জন্য |
| For Each Loop | একটি সংগ্রহ বা অ্যারের প্রতিটি উপাদান নিয়ে কাজ করতে ব্যবহৃত হয়। | সংগ্রহের প্রতিটি আইটেমের জন্য |
| Do While Loop | একটি শর্ত পূর্ণ না হওয়া পর্যন্ত কাজ করতে ব্যবহৃত হয়। | শর্ত সত্য হলে চলতে থাকে |
| Do Until Loop | একটি শর্ত পূর্ণ হওয়া পর্যন্ত কাজ করতে ব্যবহৃত হয়। | শর্ত মিথ্যা হলে চলতে থাকে |
উপসংহার
VBA তে loops ব্যবহারের মাধ্যমে আমরা সহজেই কোনো কোডকে একাধিকবার কার্যকরী করতে পারি। For এবং For Each লুপ নির্দিষ্ট পরিমাণে কাজ করতে ব্যবহৃত হয়, আর Do While এবং Do Until লুপ শর্ত পূর্ণ হওয়া পর্যন্ত চলতে থাকে। প্রতিটি লুপের নিজস্ব ব্যবহার ক্ষেত্র এবং সুবিধা রয়েছে, যেগুলো আমাদের কোডের কার্যকারিতা এবং দক্ষতা বাড়াতে সাহায্য করে।
V এবং Continue ব্যবহার
VBA (Visual Basic for Applications) তে Break এবং Continue স্টেটমেন্ট সাধারণত লুপ (Loop) নিয়ন্ত্রণে ব্যবহৃত হয়। এগুলি লুপের ফ্লো কন্ট্রোল করতে সাহায্য করে এবং নির্দিষ্ট শর্তে লুপের কার্যক্রম বন্ধ বা চালিয়ে যেতে সহায়তা করে।
VBA তে Break এবং Continue এর ব্যবহার কিছুটা আলাদা, কারণ VBA তে সরাসরি break এবং continue স্টেটমেন্ট নেই, তবে এই কাজগুলো Exit For, Exit Do, এবং GoTo এর মাধ্যমে করা যায়। নিচে এগুলোর বিস্তারিত আলোচনা করা হলো।
1. Break (Exit For, Exit Do)
VBA তে Break এর সমতুল্য হল Exit For এবং Exit Do। এই স্টেটমেন্টগুলি লুপের মধ্য থেকে বেরিয়ে যেতে ব্যবহৃত হয়, অর্থাৎ, যদি কোনো শর্ত পূর্ণ হয় তবে লুপের কার্যক্রম বন্ধ হয়ে যাবে এবং লুপের বাইরে চলে যাবে।
Exit For:
- Exit For ব্যবহার করে আপনি For লুপ থেকে বেরিয়ে আসতে পারেন। এটি লুপের বর্তমান ইটারেশন বন্ধ করে দেয় এবং লুপের বাইরের কোডে চলে আসে।
উদাহরণ:
Sub ExitForExample()
Dim i As Integer
For i = 1 To 10
If i = 5 Then
Exit For ' যখন i 5 হয়, লুপটি বন্ধ হয়ে যাবে
End If
MsgBox i
Next i
End Subএখানে, Exit For ব্যবহার করে যখন i = 5 হয়, তখন লুপটি শেষ হয়ে যাবে এবং এর পরের মানগুলি প্রদর্শিত হবে না।
Exit Do:
- Exit Do ব্যবহার করে আপনি Do লুপ থেকে বেরিয়ে আসতে পারেন।
উদাহরণ:
Sub ExitDoExample()
Dim i As Integer
i = 1
Do
If i = 5 Then
Exit Do ' যখন i 5 হয়, লুপটি বন্ধ হয়ে যাবে
End If
MsgBox i
i = i + 1
Loop
End Subএখানে, Exit Do ব্যবহার করে Do লুপটি ত্যাগ করা হয়েছে যখন i = 5 হয়।
2. Continue (GoTo)
VBA তে সরাসরি Continue স্টেটমেন্ট নেই, তবে এর কার্যকারিতা GoTo স্টেটমেন্টের মাধ্যমে পাওয়া যেতে পারে। GoTo ব্যবহার করে আপনি লুপের পরবর্তী ইটারেশনে যেতে পারেন, অর্থাৎ, যদি কোনো শর্ত পূর্ণ হয় তবে আপনি লুপের এক নির্দিষ্ট অংশে চলে যেতে পারেন।
GoTo (Continue-এর সমতুল্য)
GoTo স্টেটমেন্টটি ব্যবহৃত হয় কোডের একটি নির্দিষ্ট অংশে চলে যাওয়ার জন্য। এটি Continue এর মতো কাজ করে, যেখানে আপনি একটি নির্দিষ্ট অবস্থায় লুপের পরবর্তী ইটারেশনে চলে যেতে পারেন।
উদাহরণ:
Sub ContinueExample()
Dim i As Integer
For i = 1 To 10
If i = 5 Then
GoTo ContinueLoop ' যখন i 5 হয়, তখন পরবর্তী ইটারেশনে চলে যাবে
End If
MsgBox i
ContinueLoop:
Next i
End Subএখানে, GoTo ContinueLoop ব্যবহার করে i = 5 হলে লুপের পরবর্তী ইটারেশনে চলে যাওয়া হয়েছে। এর ফলে i = 5 হলে MsgBox প্রদর্শিত হবে না এবং লুপ পরবর্তী ধাপে চলে যাবে।
Summary (সারসংক্ষেপ)
- Exit For / Exit Do:
- লুপের মধ্য থেকে বেরিয়ে আসতে ব্যবহৃত হয়। আপনি যখন কোনো নির্দিষ্ট শর্ত পূর্ণ করেন, তখন Exit For বা Exit Do ব্যবহার করে লুপটি ত্যাগ করতে পারেন।
- GoTo:
- Continue এর সমতুল্য একটি কাজ করতে ব্যবহার করা হয়, যেখানে আপনি শর্তের ভিত্তিতে লুপের পরবর্তী ইটারেশন শুরু করতে পারেন।
VBA তে Break এবং Continue এর ব্যবহার এইভাবে Exit For, Exit Do, এবং GoTo এর মাধ্যমে কোডের কার্যকারিতা উন্নত করতে সহায়ক।
Read more