1

Тема: Макрос таймера прямого отсчета

Как сделать макрос, который вводит в текст время, прошедшее с определенного момента? Это позволит вводить метки времени в конспект лекции, чтобы потом легко находить нужные места в аудиофайле.

2

Re: Макрос таймера прямого отсчета

Private myTimeValue As String ' период вставки "час:мин:сек"
Private myLastTime As Date ' последнее время вставки
Private myTimeReset As Boolean ' признак сброса при засечке

Public Sub Вставка_времени_Запуск()
' активация засечки времени

    myTimeValue = InputBox( _
                    "Запуск вставки в документ засечек времени. " & vbLf & _
                    "Вставка осуществляется в позиции курсора." & vbLf & vbLf & _
                    "Введите временной интервал в формате " & vbLf & _
                    """00:00:00"" (часы:минуты:секунды): ", _
                    "Вставка времени", "00:00:00")
    myLastTime = 0
    myTimeReset = False
    Вставка_времени
    
End Sub

Public Sub Вставка_времени_Останов()
' деактивация засечки времени

    myTimeValue = ""
    
End Sub

Public Sub Вставка_времени()
' выполнение засечки времени

Dim TV As Date
Dim N As Date
Dim S As String
    
    If Len(myTimeValue) <= 0 Then Exit Sub ' остановка
    TV = TimeValue(myTimeValue)
    ' вставка
    Selection.Collapse Direction:=Word.wdCollapseEnd
    Selection.TypeParagraph
    If myLastTime <= 0 Then
        ' первая вставка
        Selection.TypeText "Начало отсчета времени"
        myLastTime = Now
    Else
        ' повторная вставка
        N = TimeSerial(0, 0, DateDiff("s", Now, myLastTime))
        S = Format(N, "Hh час Nn мин Ss сек")
        If myTimeReset Then
            Selection.TypeText "Прошло еще " & S
            myLastTime = Now
        Else
            Selection.TypeText "Всего прошло " & S
        End If
    End If
    Selection.TypeParagraph
    ' перезапуск
    Application.OnTime When:=Now + TV, Name:="Вставка_времени"
    
End Sub

Думаю из названий и комментариев должно быть понятно.

Макросы под заказ и готовый пакет - mtdmacro.ru

3

Re: Макрос таймера прямого отсчета

Спасибо!!