MyTetra Share
Делитесь знаниями!
Запуск макроса VBA по таймеру
Время создания: 31.07.2019 22:37
Текстовые метки: vba, timer, Ontime
Раздел: Разные закладки - VBA
Запись: xintrea/mytetra_db_adgaver_new/master/base/15147284921c50ijka19/text.html на raw.githubusercontent.com

В 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


Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования