В Excel есть инструментарий для запуска макроса по расписанию, - Application.Ontime
При помощи этого метода можно запускать макрос с заданным интервалом (например, раз в секунду)
Но есть и другой вариант, - использование объекта htmlfile:
(код надо поместить в модуль ЭтаКнига - ThisWorkbook)
Private m_TimerId As Variant Private m_doc As Object Const ATTRNAME = "VBATimerHandler" Private Sub StartTimer() Const Script = "document.documentElement.getAttribute('" & ATTRNAME & "').TimerProc()" EndTimer Set m_doc = CreateObject("htmlfile") m_doc.DocumentElement.setAttribute ATTRNAME, Me m_TimerId = m_doc.parentWindow.setInterval(Script, 50) ' интервал 50 миллисекунд End Sub Private Sub EndTimer() If m_doc Is Nothing Then Exit Sub If Not IsEmpty(m_TimerId) Then m_doc.parentWindow.clearInterval m_TimerId m_TimerId = Empty End If m_doc.DocumentElement.removeAttribute ATTRNAME Set m_doc = Nothing End Sub Public Sub TimerProc() ' этот макрос будет запускаться 20 раз в секунду Debug.Print Now() End Sub
Источник: http://www.ka-net.org/office/of12.html
Комментарии
Отправить комментарий