เกม ทายคำศัพท์ภาษาอังกฤษเขียนโดยใช้ Excel
วันนี้เราจะมาเรียนเรื่องการสร้าง เกม ง่ายๆ ที่ทำจาก Excel กัน โดย เกม นี้ มีลักษณะเหมือน เกมส์เศรษฐีทั่วๆไปนั่นเอง นั่นคือจะเป็น เกม ลักษณะ คำถามและก็มีคำตอบ หรือ มี Choice ให้ผู้เล่นเลือก ถ้าผู้ใช้เลือกถูกก็จะได้คะแนน 1 คะแนน
ยกตัวอย่างเช่น มีคำถามถามผู้ใช้ว่า 5+5 ได้เท่ากับเท่าไหร่ และเราก็จะมี choice ให้ประมาณ 4 choice เช่น 12 10 15 20 ถ้าผู้ใช้คลิกที่ 10 ก็จะได้ 1 คะแนน แต่ถ้าผู้ใช้คลิกที่ ตัวเลือกอื่นๆ ก็จะได้ 0 คะแนน ...โดยเราจะกำหนดกฎเกณฑ์ไว้ว่า หากผู้ใช้คลิกที่คำตอบตัวไหนแล้วก็จะไม่สามารถเปลี่ยนคำตอบได้ คลิกตัวเลือกไหนก็แล้วแต่จะถือว่าตอบเลย (หากว่าเราเอาไปพัฒนาต่อ เราก็อาจจะมีการสร้างปุ่มกดยืนยันคำตอบก่อนก็ได้ เพื่อเปิดโอกาสให้ผู้ใช้ได้คิดคำตอบอย่างถี่ถ้วน...ให้ไปลองคิดต่อยอดดูครับ)....และผู้ใช้จะต้องไปเล่นข้อต่อไปเท่านั้น
เพื่อให้เห็นภาพชัดเจน เรามาเริ่มทำโปรแกรมกันดีกว่า ว่าเราต้องการให้เป็นแบบไหน
1. เปิด Excel ขึ้นมา
2. ที่ A1 พิมพ์คำว่า โจทย์
3. ที่เซลล์ B1 พิมพ์คำว่า ตัวเลือก
4. เลือกเซลล์ B1:E1 แล้วทำการ Merge Cell แล้วจัดกึ่งกลางตัวหนังสือด้วย
5. ที่เซลล์ F1 พิมพ์คำว่าคะแนน
6. ที่เซลล์ A2 พิมพ์ว่า 10+10=?
7. ที่เซลล์ A3 พิมพ์ว่า 20+50=?
8. ที่เซลล์ A4 พิมพ์ว่า 11+4=?
9. ที่เซลล์ A5 พิมพ์ว่า 8+3=?
10. ที่เซลล์ B2 พิมพ์ว่า 20, ที่เซลล์ C2 พิมพ์ว่า 30, ที่เซลล์ D2 พิมพ์ว่า 40, ที่เซลล์ E2 พิมพ์ว่า 10
11. ที่เซลล์ B3 พิมพ์ว่า 90, ที่เซลล์ C3 พิมพ์ว่า 80, ที่เซลล์ D3 พิมพ์ว่า 70, ที่เซลล์ E3 พิมพ์ว่า 100
12. ที่เซลล์ B4 พิมพ์ว่า 12, ที่เซลล์ C4 พิมพ์ว่า 15, ที่เซลล์ D4 พิมพ์ว่า 114, ที่เซลล์ E4 พิมพ์ว่า 16
13. ที่เซลล์ B5 พิมพ์ว่า 10, ที่เซลล์ C5 พิมพ์ว่า 12, ที่เซลล์ D5 พิมพ์ว่า 83, ที่เซลล์ E5 พิมพ์ว่า 11
14. ที่เซลล์ E6 พิมพ์คำว่า รวม
15. ที่เซลล์ F6 พิมพ์สูตรว่า =SUM(F1:F5)
16. กด Alt+F11 เพื่อเข้าไปพิมพ์สูตร แล้วใส่สูตรดังนี้
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'question1
If Range("F2").Value = "" Then
If Target.Address = Range("b2").Address Then
Range("F2").FormulaR1C1 = 1
Rows("3:3").EntireRow.Select
End If
End If
If Range("F2").Value = "" Then
If Target.Address = Range("C2").Address Then
Range("F2").FormulaR1C1 = 0
Rows("3:3").EntireRow.Select
End If
End If
If Range("F2").Value = "" Then
If Target.Address = Range("D2").Address Then
Range("F2").FormulaR1C1 = 0
Rows("3:3").EntireRow.Select
End If
End If
If Range("F2").Value = "" Then
If Target.Address = Range("E2").Address Then
Range("F2").FormulaR1C1 = 0
Rows("3:3").EntireRow.Select
End If
End If
'----------------------------------------------
'question2
If Range("F3").Value = "" Then
If Target.Address = Range("b3").Address Then
Range("F3").FormulaR1C1 = 1
Rows("4:4").EntireRow.Select
End If
Else
End If
If Range("F3").Value = "" Then
If Target.Address = Range("C3").Address Then
Range("F3").FormulaR1C1 = 0
Rows("4:4").EntireRow.Select
End If
Else
End If
If Range("F3").Value = "" Then
If Target.Address = Range("D3").Address Then
Range("F3").FormulaR1C1 = 1
Rows("4:4").EntireRow.Select
End If
Else
End If
If Range("F3").Value = "" Then
If Target.Address = Range("E3").Address Then
Range("F3").FormulaR1C1 = 0
Rows("4:4").EntireRow.Select
End If
Else
End If
'----------------------------------------------
'Question 3
If Range("F4").Value = "" Then
If Target.Address = Range("b4").Address Then
Range("F4").FormulaR1C1 = 0
Rows("5:5").EntireRow.Select
End If
Else
End If
If Range("F4").Value = "" Then
If Target.Address = Range("C4").Address Then
Range("F4").FormulaR1C1 = 1
Rows("5:5").EntireRow.Select
End If
Else
End If
If Range("F4").Value = "" Then
If Target.Address = Range("D4").Address Then
Range("F4").FormulaR1C1 = 0
Rows("5:5").EntireRow.Select
End If
Else
End If
If Range("F4").Value = "" Then
If Target.Address = Range("E4").Address Then
Range("F4").FormulaR1C1 = 0
Rows("5:5").EntireRow.Select
End If
Else
End If
'----------------------------------------------
' Question 4
If Range("F5").Value = "" Then
If Target.Address = Range("b5").Address Then
Range("F5").FormulaR1C1 = 0
End If
Else
End If
If Range("F5").Value = "" Then
If Target.Address = Range("C5").Address Then
Range("F5").FormulaR1C1 = 0
End If
Else
End If
If Range("F5").Value = "" Then
If Target.Address = Range("D5").Address Then
Range("F5").FormulaR1C1 = 0
End If
Else
End If
If Range("F5").Value = "" Then
If Target.Address = Range("E5").Address Then
Range("F5").FormulaR1C1 = 1
End If
Else
End If
'----------------------------------------------
End Sub
17. กด Alt+F11 อีกครั้งเพื่อกลับมาที่ Excel
18. ทดสอบการทำงาน
19. จากภาพจะเห็นว่าเมื่อเราคลิกที่ตัวเลือกเพื่อตอบคำถามที่โจทย์ถาม ตรงช่องคะแนนก็จะแสดงคะแนนทันที ส่วนที่ช่องรวมก็จะแสดงคะแนนที่ทำได้ด้วย....การตอบคำถามไม่ว่าจะผิดหรือถูก แถบสว่างก็จะกระโดดมาที่ข้อต่อไปทันที เพื่อพร้อมให้เราเล่นข้อต่อไป...