Utiliza los Timers del
API de Windows y tendras un rango mayor para definir el intervalo ya que el parametro es un
Long mientras que el del control Timer es un
Integer. El unico inconveniente, y si lo fuera, es que tendras que declarar el codigo del evento del Timer obligatoriamente en un modulo BAS.
Un sencillo ejemplo:
Form1.frm
Código:
Option Explicit
'Crea y configura un Timer:
Private Declare Function SetTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
'Destruye un Timer:
Private Declare Function KillTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long) As Long
Dim TimerId As Long 'Guarda el identificador del Timer creado.
Private Sub Form_Load()
'Creamos un Timer y le asignamos la direccion de memoria del procedimiento que hara de evento en el Timer:
TimerId = SetTimer(Me.hWnd, 0, 1000, AddressOf Module1.MiRutinaDeEvento)
End Sub
Private Sub Form_Unload(Cancel As Integer)
KillTimer Me.hWnd, TimerId
End Sub
Module1.bas
Código:
Option Explicit
Public Var As Long
'Procedimiento que ejecutara el Timer:
Public Sub MiRutinaDeEvento()
Form1.Var = Form1.Var + 1
Form1.Cls
Form1.Print Form1.Var
End Sub
Salu2...
P.D.: Añadir una "leve" ventaja de este metodo y es que te permite utilizar un intervalo de 0 milisegundos, osea, ejecucion inmediata del evento, sin espera alguna.