ข้ามไปที่เนื้อหาหลัก

How to use Timer in VBA (Excel)

การใช้งาน Timer ใน VBA (Visual basic for application)

บทความนี้ก็จะเป็นตัวอย่างการใช้งาน Timer ใน VBA กันนะครับ ซึ่งโดยปรกติแล้ว VBA จะไม่มี Control Timer ให้ใช้กันนะครับ แต่เราสามารถเขียนโค๊ดขึ้นมาเพื่อจำลองเป็น Timer ได้ครับ มาดู กันเลย
ก่อนอื่น Flow การทำงานก็จะเป็นลักษณะดังนี้นะครับ




หลักการก็คือ จะทำการตรวจสอบ Timer ไปเรื่อย ๆ เมื่อครบกำหนดตามเวลาที่เราตั้งไว้ ก็ให้ทำ Event ตามที่เราต้องการ

มาดูตัวอย่าง Code กันเลยครับ

Code
Sub test()
Dim PauseTime, Start, Finish, TotalTime
If (MsgBox("ทดสอบ Timer 5 วินาที", 4)) = vbYes Then
    PauseTime = 5    ' ตั้งค่าระยะเวลา
    Start = Timer    ' ตั้งเวลาเริ่มต้น
    Do While Timer < Start + PauseTime
        DoEvents    ' ให้ Process อื่นทำงานไปตามปรกติ
    Loop
    Finish = Timer  
    TotalTime = Finish - Start    ' คำนวนเวลาทั้งหมด
    MsgBox "เวลาผ่านไป " & TotalTime & " วินาทีแล้ว"
    'ตรงนี้สามารถใส่ สิ่งที่ต้องการให้โปรแกรมทำงานเมื่อครบกำหนดเวลาได้เลย
Else
    End
End If

End Sub

Private Sub CommandButton1_Click()   เหตุการณ์กดปุ่ม
Call test  เรียก method test ขึ้นมาทำงาน
End Sub



       จะเห็นได้ว่าการทำแบบนี้จะไม่เหมือนกัน Control timer เลยซะทีเดียวนะครับ โดยมันจะไม่มี Event เกิดขึ้นโดยตัวของมันเอง โดยเราต้องมีการตรวจสอบจาก Timer เอาเอง
แต่ก็ยังพอประยุกต์ใช้แก้ขัดได้อยู่นะครับ 

ความคิดเห็น