mail mail
Нужен макрос для Excel?
Сделайте заказ прямо сейчас!
Ищете готовое решение?
Выбирайте и покупайте!
У вас есть интернет-магазин?
Настроим парсер под любой сайт!

Запуск макроса 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

Комментарии

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
CAPTCHA
Подтвердите, пожалуйста, что вы - человек:
          _   _      _      ____    _____       _ 
__ _ | | | | / \ |___ \ |___ / __| |
/ _` | | |_| | / _ \ __) | |_ \ / _` |
| (_| | | _ | / ___ \ / __/ ___) | | (_| |
\__, | |_| |_| /_/ \_\ |_____| |____/ \__,_|
|___/
Введите код, изображенный в стиле ASCII-арт.

Не получается применить макрос? Не удаётся изменить код под свои нужды?

Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.