ในการเขียนโปรแกรมบางครั้งจำเป็นต้องวนลูป เพื่อดึงข้อมูลบางอย่างออกมาคำนวน สำหรับ VBA ใน Excel ก็เหมือนกัน

รูปแบบโครงสร้างของ For…Next

For ตัวแปร = จำนวนเริ่มต้น To จำนวนสิ้นสุด Step จำนวนแต่ละขั้น

Next ตัวแปร

ตัวอย่างเช่น

For i = 1 To 10
     MsgBox i
Next i

จากตัวอย่าง ไม่จำเป็นต้องกำหนด Step ก็ได้ กรณีค่าใน Step คือ 1 ผลของการรันโปรแกรม จะมี Message Box ขึ้นมา 10 รอบ แสดงเลข 1, 2, 3…. ไปเรื่อยๆ ตามลำดับ เป็นเพราะค่า i จะเปลี่ยนแปลงไปในแต่ละรอบ

If…Then…Else เป็นการเขียนเงื่อนไข โดย If…Then เป็น “จริง” และ Else ในการเข้าเงื่อนไข “เท็จ”

รูปแบบ If…Then…Else

If เงื่อนไข Then

ถ้าเป็นจริงให้ทำอะไร

Else

ถ้าเป็นเท็จให้ทำอะไร

End If

ตัวอย่างเช่น

x = 3
If x = 3 Then
     MsgBox ค่า x เท่ากับ 3
Else
     MsgBox ค่า X ไม่เท่ากับ 3
End If

โจทย์ จงเขียนโปรแกรม VBA ตรวจสอบว่า คะแนนผ่าน หรือ ไม่ผ่าน ค่าผ่านอยู่ที่ 60 คะแนน

จากโจทย์ สามารถเขียน VBA วนรอบเข้าไปดึงข้อมูลคะแนน ตั้งแต่บรรทัดที่ 2 ถึงบรรทัดที่ 5 เพื่อนำมาคำนวนว่า ผ่านหรือไม่ผ่าน ดังนี้

Sub grade()
'
'
Dim NumRows As Integer
Const pass As Integer = 60
NumRows = Application.WorksheetFunction.CountA(Range("A:A"))
    For i = 2 To NumRows Step 1
        If Cells(i, "c").Value < pass Then
            Cells(i, "d").Value = "Not Passed"
        Else
            Cells(i, "d").Value = "Passed"
        End If
    Next i
End Sub

หลังจากรัน VBA แล้วผลจะออกมาดังนี้