Тема: Макрос таймера прямого отсчета
Как сделать макрос, который вводит в текст время, прошедшее с определенного момента? Это позволит вводить метки времени в конспект лекции, чтобы потом легко находить нужные места в аудиофайле.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Как сделать макрос, который вводит в текст время, прошедшее с определенного момента? Это позволит вводить метки времени в конспект лекции, чтобы потом легко находить нужные места в аудиофайле.
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
Думаю из названий и комментариев должно быть понятно.
Спасибо!!
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться