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

Запуск макроса VBA по таймеру

В 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

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