 |
ก่อนอื่นต้องขอกล่าวถึง CAI ก่อนน่ะครับ CAI (Computer Assisted Instruction) คือ การนำเอาคอมพิวเตอร์เข้ามาช่วยในการเรียน และ การสอน หรือ อย่างใดอย่างหนึ่งก็แล้วแต่ นั่นคือ ไม่ได้เอามันมาสอนแทนครูน่ะครับ (ซึ่งมีหลายคนเข้าใจผิดไปเยอะ) ... หลายท่านก็คงทราบดีว่าโปรแกรม PowerPoint (จุดอิทธิฤทธิ์) ตัวนี้ เหมาะกับงานด้านประชาสัมพันธ์ นำเสนองาน ซะเป็นส่วนใหญ่ คือ แบบว่ามันเดินหน้า ถอยหลังได้ อ้าว! แล้วมันจะเอาไปทำเป็น CAI ได้ยังไง ก็ในเมื่อเรื่องของ การทำ CAI นั้นมันจะต้องมีการโต้ตอบ (Interactive) กับผู้เรียนด้วย แต่ PowerPoint มันทำไม่ได้ ไฉนเลยถึงจะกล้าบังอาจ มาท้าทายโปรแกรมไฮโซจำพวก AuthorWare หรือ Flash ได้ล่ะ ? ผมขอบอกก่อนได้เลยว่า ต่อไปก็อย่าไปดูถูก หรือ เผลอตัวหลงปล่อยไก่ ในสิ่งที่คุณอาจจะยังไม่รู้จริง กับสายพันธุ์ของ MicroSoft Office เข้าซะล่ะ.
บริษัทฯไมโครซอฟท์ ได้ออกแบบภาษาโปรแกรมมาตัวหนึ่ง ที่เรียกว่า Visual Basic ภาษาตัวนี้ถูกบรรจุเอาไว้ใน Miscrosoft Office ทุกรุ่นเพื่อใช้ในการพัฒนาในขั้นสูง ที่เราจะรู้จักกันดีในนามของ Visual Basic for Application (VBA) อันเป็นภาษาที่คล้ายคลึงกับภาษา Basic แต่จะนำไปใช้งานแตกต่างกันออกไปตามโปรแกรมแต่ละตัว เช่น หากนำไปใช้ใน MS Excel ก็จะเรียกการใช้งานร่วมกับ Work Sheet และใน PowerPoint ก็ต้องเรียกใช้งานมันร่วมกับ Slide (ในภาษา Basic จริงๆจะไม่มี) |
 |
วัตถุประสงค์ ... สำหรับงานนี้ เวลานี้ ... ผมจะไม่อธิบายถึงขั้นตอนการออกแบบ หรือ การเขียนโค้ด ในการใช้งาน VBA สำหรับโปรแกรม PowerPoint หรอกน่ะครับ จุดมุ่งหมายหลักๆ ก็เพื่อที่จะทำให้เห็นเป็นแนวทาง ของการพัฒนาสื่อการเรียน/การสอน ในลักษณะของการโต้ตอบกับผู้เรียนได้ (Interactive) ด้วยโปรแกรมที่มันอยู่ใกล้ๆตัวเราเอง ... ซึ่งไม่ว่าคุณจะพัฒนาสื่อ CAI ด้วยโปรแกรมอะไรก็แล้วแต่ หากไม่ฝึกการเขียน Script หรือ การเขียนโค้ดแล้วนั้น มันไม่มีทางที่จะทำให้งานมันออกมาได้ดั่งใจนึกหรอกครับ ... และไม่มีใครจะทำออกมาได้ดีเท่ากับคนสอนเอง ก็เพราะคนสอนในเรื่องนั้นๆมานานหลายปี ก็ย่อมจะรู้ว่าดีว่าจะสื่ออะไรไปยังผู้เรียนได้ ... เพียงแต่หลายท่านยังขาดความรู้ ความเข้าใจในการใช้งานโปรแกรมคอมพิวเตอร์ เท่านั้นเอง ... แล้วจะให้ทำเป็นได้อย่างไร ทุกท่านก็คงมีคำตอบให้กับตัวเองอยู่แล้วแหละครับ
|
อ่านหลักการในการแปลงเลขฐาน 10 เป็นเลขฐาน 2 ด้วยวิธีการหารสั้น (สมัยเด็กๆก็ยังได้นำมาใช้)
 ส่วนของ VBAProject ในการออกแบบฟอร์ม และ เขียนโค้ด VBA เข้าไป
 หน้าจอการออกแบบจาก PowerPoint
 ลำดับขั้นตอนการทำงาน ตามหมายเลข 1 - 4 1. คลิ๊กเลือกเพื่อให้หน้าจอป้อนเลขฐาน 10 แสดงผลขึ้นมา 2. ป้อนตัวเลขฐาน 10 เข้าไป ... ในโค้ด VBA จะมีการล็อคปุ่ม เพื่อให้ผู้เรียนคีย์ได้แค่ตัวเลข 0 - 9 เท่านั้นครับ 3. คลิ๊กปุ่มเพื่อทำการคำนวณผล 4. จะแสดงผลออกทางหน้าจอภาพ Slide ของ PowerPoint
VBA สำหรับ Slide1 ที่อยู่ในโปรแกรม PowerPoint
' เกิดการคลิ๊กปุ่ม เพื่อทำการแปลงค่าเลขฐาน 10 เป็นเลขฐาน 2
Private Sub cmdDec2Bin_Click()
' แสดงฟอร์มการป้อนเลขฐาน 10 เพื่อทำการคำนวณผล
frmConvertDec2Bin.Show vbModal
End Sub
' จบการทำงาน ปิด PowerPoint
Private Sub cmdExit_Click()
' อ้างอิงชื่อไฟล์
With Application.Presentations("Sample CAI.ppt")
' สั่งบันทึก (Save) ก่อนออก
.Saved = True
.Close
End With
End Sub
|
VBA สำหรับ UserForm ในการป้อนค่าเลขฐาน 10 และทำการแปลงเลขฐาน (frmConvertDec2Bin)
Private Sub cmdConvertDec2Bin_Click()
' เก็บค่าคำตอบจากการเอาเศษของเลขฐาน 2
Dim Bit As String
' ตัวแปรเก็บค่าเลขฐาน 10 และ ทำไปเรื่อยๆจนกว่าจะทำให้ Dec มีค่าเป็น 0
Dim Dec As Long
' ตรวจสอบว่ามีการป้อนค่าตัวเลขฐาน 10 ลงใน TextBox หรือไม่
If Trim(txtDecimal.Text) = "" Or Len(Trim(txtDecimal.Text)) = 0 Then
txtDecimal.SetFocus
Exit Sub
End If
' รับค่าเลขฐาน 10 จาก TextBox (txtDecimal)
Dec = CLng(txtDecimal.Text)
' DO WHILE ... เงื่อนไขเป็นจริงจะวนรอบ ... เท็จเมื่อไหร่ก็จะออกจากลูป
Do While (Dec > 0)
Bit = (Dec Mod 2) & Bit
Dec = Dec \ 2
Loop
' แสดงผลการหาเลขฐาน 2 ลงใน Slide1
Slide1.txtBinary.Text = Bit
End Sub
' #######################################################
' ฟังค์ชั่นตรวจสอบการกดคีย์ให้รับได้เฉพาะค่า 0 - 9 (เพราะมันเลขฐาน 10 นี่ครับ จึงรับตัวเลขได้แค่นี้)
' #######################################################
Function CheckDecimal(ByVal KeyAscii As Integer)
Select Case KeyAscii
' ASCII Code 48 - 57 คือ ตัวอักขระ 0 - 9
Case 48 To 57
' ASCII Code 8 คือ Back Space
' ASCII Code 13 คือ Enter
Case 8, 13
Case Else
KeyAscii = 0
End Select
CheckDecimal = KeyAscii
End Function
Private Sub txtDecimal_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
' หากเป็นการกดคีย์ Enter (vbKeyReturn มีค่า ASCII Code = 13)
If KeyAscii = vbKeyReturn Then
KeyAscii = 0
SendKeys "{TAB}"
Else
' ไปตรวจสอบค่าในฟังค์ชั่นก่อนว่า มีการกดเลข 0 - 9 หรือไม่
KeyAscii = CheckDecimal(KeyAscii)
End If
End Sub
Private Sub UserForm_Initialize()
' การตั้งตำแหน่งของฟอร์มการป้อนข้อมูลเลขฐาน 10
With Me
.StartUpPosition = 0
.Top = 10
.Left = Application.Left + Application.Width - Me.Width * 2
End With
End Sub
' ทำการโหลดฟอร์มการป้อนค่า และ การแปลงเลขฐาน 10 ขึ้นมาแสดง
Private Sub UserForm_Activate()
' เคลียร์ค่าคำตอบ
Slide1.txtBinary.Text = ""
' เคลียร์ที่ป้อนค่าเลขฐาน 10
txtDecimal.Text = ""
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
' ก่อนปิดฟอร์ม ให้เคลียร์ค่า TextBox (txtBinary) ให้เป็นค่าว่าง
Slide1.txtBinary.Text = ""
End Sub
|
การเปิดไฟล์ตัวอย่างขึ้นมา
 การเปิดไฟล์ PowerPoint ตัวอย่างในตอนเริ่มต้น หากไม่มีการขึ้นหน้าจอแบบนี้ ให้เข้าไปแก้ไขตามภาพทางด้านล่าง
 เลือกการรักษาความปลอดภัย
 เลือกความปลอดภัยปานกลาง (ตามภาพ)
เวลาที่ต้องการให้ผู้เรียน Save ไฟล์ไว้เพื่อนำไปศึกษา หรือ ทบทวนบทเรียน ก็แค่ให้บันทึกไฟล์เป็น PowerPoint Show ที่มีนามสกุลเป็น PPS เพื่อแจกให้กับผู้เรียน ... ก็เป็นอันจบครับผม (หรือใช้โปรแกรมแปลงไฟล์เป็น EXE เพื่อให้ทำงานโดยไม่ต้องผ่านโปรแกรม PowerPoint เลยก็ได้)


เปิดภาพมิติมุมมองใหม่ของโปรแกรม PowerPoint กับการทำสื่อการเรียน และ การสอน CAI
Conclusion: จากตัวอย่างที่นำมาแสดงนี้ ก็เพื่อที่จะให้หลายๆคนได้รู้จักกับคำว่า CAI มากยิ่งขึ้น ซึ่งไม่ใช่แค่เพียงการสร้างมันมาจากโปรแกรม AuthorWare/Flash ที่ทำออกมาให้เดินหน้า หรือ ถอยหลังได้ เท่านั้นเอง และนั่นก็คือ การเน้นที่จะทำให้ CAI มีปฏิสัมพันธ์ หรือ มีการโต้ตอบกับผู้เรียน ในลักษณะของ Dynamic ดังนั้นครู อาจารย์ หรือ ผู้ที่คิดจะผลิต CAI ออกมา ควรจะต้องทำความเข้าใจกับเนื้อหาที่จะสอนอย่างละเอียด และ ค่อนข้างจะต้องมีความรู้ มีความเชี่ยวชาญเป็นอย่างมากในการใช้โปรแกรมคอมพิวเตอร์ ซึ่งในแนวทางนี้ เราจะใช้ในการออกแบบ CAI ในลักษณะรูปแบบที่เรียกว่า CourseWare ต่อไปนั่นเอง.
|