ถ้าเราไม่มี Timer Control ของ VB6 เราก็ไม่มีคอนโทรลที่จะเอามาทำหน้าที่เป็น Timer ได้ แต่เราสามารถเขียนโค้ดขึ้นมาให้ทำงานเป็น Timer ได้ โดยสามารถตั้ง Interval เป็นชั่วโมง นาที และวินาที ได้ ใครจะตั้งเป็นมิลลิวินาทีทำไม่ได้ครับ
ใน Sheet1 ให้วางโค้ดเหล่านี้ลงไป
Const cRunWhat = "The_Timer"
Public Sub StartTimer()
RunWhen = Now + TimeSerial(0, 10, 0)
Application.OnTime _
EarliestTime:=RunWhen, _
Procedure:=cRunWhat, _
Schedule:=True
End Sub
จากโค้ดดังกล่าวเป็นการสร้าง Timer ให้ทำงานทุก 10 นาที ใครจะเปลี่ยนให้เปลี่ยนตรง
TimeSerial(0, 10, 0)
เลขในวงเล็บตัวแรกเป็นชั่วโมง ถัดไปเป็น นาที วินาที ตามลำดับครับ
จากนั้นสร้างโมดูลใหม่ขึ้นมา แล้ววางโค้ดลงไป
Public Sub The_Timer()
MsgBox "Hi"
Sheet1.StartTimer
End Sub
โค้ดตัวอย่างดังกล่าวเป็นการPopup คำว่า Hi ทุก 10 นาที
การนำไปใช้คือให้สร้างโค้ดเพื่อเรียกใช้ StartTimer เช่นเมื่อมีการเปิดไฟล์ Excel ดังรูป โดยโค้ดนี้สร้างใน ThisWorkbook
พอถึง 10 นาทีก็จะปรากฏPopup