Select Case testexpression
[Case expressionlist-n
[statements-n]] ...
[Case Else
[elsestatements]]
End Select
ตัวอย่างที่ 1
สมมติ ในแฟ้มมีเซลล์หนึ่งที่ตั้งชื่อว่า Source ไว้แล้ว โดยเราอยากให้ใช้ค่าใน Source เป็นตัวควบคุมการตัดสินใจเลือกให้ชุดคำสั่งที่ต้องการทำงานต่อไป
- ถ้า Source มีค่าเท่ากับ 100 พอดี ให้เลือกชุดคำสั่งชื่อ SendData1 ทำงาน
- ถ้า Source มีค่าไม่เท่ากับ 100 ให้เลือกชุดคำสั่งชื่อ SendData2 ทำงาน
If [Source] = 100 Then SendData1 Else SendData2
หรือ
If [Source] = 100 Then
SendData1
Else
SendData2
End If
หรือ
Select Case [Source]
Case 100
SendData1
Case Else
SendData2
End Select
ตัวอย่างที่ 2
ขอใช้ค่าจาก Source เช่นเดียวกับตัวอย่างแรก เพียงแต่แทนที่จะตรวจสอบว่า Source มีค่าเท่ากับ 100 หรือไม่เท่านั้น คราวนี้ให้เปรียบเทียบค่า Source ต่อไปอย่างละเอียดดังนี้
- ถ้า Source มีค่ามากกว่า 100 ให้เลือกชุดคำสั่งชื่อ SendData1a ทำงาน
- ถ้า Source มีค่ามากกว่า 80 ให้เลือกชุดคำสั่งชื่อ SendData1b ทำงาน
- ถ้า Source มีค่ามากกว่า 60 ให้เลือกชุดคำสั่งชื่อ SendData1c ทำงาน
- ถ้า Source มีค่ามากกว่า 40 ให้เลือกชุดคำสั่งชื่อ SendData1d ทำงาน
- ถ้า Source มีค่ามากกว่า 20 ให้เลือกชุดคำสั่งชื่อ SendData1e ทำงาน
- ถ้า Source มีค่าอื่นๆ ให้เลือกชุดคำสั่งชื่อ SendData2 ทำงาน
ในกรณีที่มีเงื่อนไขซับซ้อนมากขึ้นนี้ ถ้าจะใช้ If...Then...Else Statements จะต้องเขียน ElseIf ซ้อนกันหลายชั้น แต่เนื่องจากทุกเงื่อนไขที่ใช้นั้น ใช้ค่าจาก Source เดียวกันตลอด จึงน่าเลือกใช้ Select Case Statement จะเขียนได้ง่าย มีโครงสร้างที่ชัดเจน และช่วยให้ย้อนกลับมาแก้ไขได้สะดวกกว่า
Select Case [Source]
Case Is > 100
SendData1a
Case Is > 80
SendData1b
Case Is > 60
SendData1c
Case Is > 40
SendData1d
Case Is > 20
SendData1e
Case Else
SendData2
End Select