PowerPoint-установить время для каждого слайда и отображать общее время презентации?

Я знаю, что переход вкладки можно установить время на слайд, но это когда вы используете его для автоматического перехода каждого слайда.

то, что я хотел бы иметь на каждом слайде свойство времени, которое я могу установить. Затем, как докладчик, он будет отображать обратный отсчет, так что я могу видеть, если я собираюсь над/под время на любом конкретном слайде, делая мою презентацию.

кроме того, это было бы здорово, чтобы иметь возможность определить общее время презентация. Таким образом, в нижней панели инструментов будет элемент для времени слайда = 01:30, а другой для времени слайд-шоу = 05:45

Я боюсь, что это недоступно, и я думаю, что это было бы очень полезно иметь.

ключевым моментом здесь является то, что я все еще хочу контролировать презентацию, поэтому я не хочу использовать автоматический переход слайдов. Но я хотел бы иметь возможность использовать такое значение, как время перехода слайда (и совокупность всех этих) в для того, чтобы лучше подготовиться и представить свои шоу.

редактировать: я обнаружил, что я могу отключить "использовать тайминги" в слайд-шоу - >настройка области, и это остановит автоматическое продвижение после каждого слайда, все еще отображая время каждого слайда на странице слайд-шоу. Но это не дает мне таймер слайдов во время презентации, или где-то увидеть общее время презентации (и если у вас есть 30-45 слайдов, добавление времени для каждого слайда будет раздражающий.)

23
задан Bye
06.02.2023 3:24 Количество просмотров материала 3090
Распечатать страницу

4 ответа

есть надстройка вы можете скачать, что даст вам то, что вы хотите. Видя, что у вас есть первая часть установки, вы можете использовать это добавить-в для отображения прошедшего времени поверх текущего слайда.

на веб-сайте, на который я ссылался, есть инструкции по установке, но для удобства я включу их здесь.

  1. скачать исполняемый файл и дайте ему установить надстройку в папку по умолчанию. Я просканировал исполняемый файл и установленных файлов на вирусы и я могу подтвердить, что они чистые.

  2. после установки надстройки откройте PowerPoint и выполните следующие действия:

-2 - > параметры -> надстройки -> (управление выпадающем внизу) выбираем надстройки PowerPoint и перейти

  1. в появившемся диалоговом окне выполните следующие действия:

Добавить новый - > выберите таймер TM PowerPoint (Лента UI) - > OK

выше добавим TM вкладка на ленту PowerPoint. В окне настройки таймера вы сможете установить таймер для отображения прошедшего времени. Там же Update Display запись на первой вкладке, поэтому убедитесь, что вы установили, что в 1 секунду (по умолчанию 10 секунд).

1
отвечен Yass 2023-02-07 11:12

Я надеюсь, что это не нарушает этикет, отвечая на мой собственный вопрос, поскольку я знаю, как обидчивые моды могут быть о следующем протоколе. Но я нашел это, что может обеспечить общее время для слайд-шоу. Он основан на времени, установленном для автоматического перехода слайда (переходы->предварительный слайд->после:). В ленте слайд-шоу, вы можете отключить "использовать тайминги", так что вы будете иметь контроль над продвижением слайдов во время презентации.

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

Я основал этот макрос отсюда, PowerPoint FAQ. Я немного изменил его, чтобы показать время в формате" 00:00", а общее время внизу вместо отдельного всплывающего окна. К используйте его, просто создайте перейти к просмотр- > макросы, и создать новый макрос "Общее время". Скопируйте и вставьте следующий код:

Sub TotalTimes()

Dim oSld As Slide
Dim strMessage As String
Dim lngTotalTime As Long
Dim strSlideMin As String
Dim strSlidesec As String


' Use this to collect times for ALL slides:
For Each oSld In ActivePresentation.Slides
' Or comment it out and uncomment this to get just the selected slides:
' For Each oSld in ActiveWindow.Selection.SlideRange
    strSlideMin = Format(Int(oSld.SlideShowTransition.AdvanceTime / 60), "00")
    strSlidesec = Format(Int(oSld.SlideShowTransition.AdvanceTime Mod 60), "00")
    strMessage = strMessage _
        & CStr(oSld.SlideNumber) _
        & vbTab _
        & strSlideMin & ":" & strSlidesec _
        & vbCrLf
    lngTotalTime = lngTotalTime + oSld.SlideShowTransition.AdvanceTime
Next oSld

' Comment these out if you don't want to see them
strMessage = strMessage & vbCrLf & "Total" & vbTab & Format(Int(lngTotalTime / 60), "00") & ":" & Format(Int(lngTotalTime Mod 60), "00")
MsgBox strMessage
'MsgBox ("Total time: " & CStr(lngTotalTime))


End Sub

исходный код также включает раздел для записи в текстовый файл, который я вырезал, так как он не отвечал моим потребностям.

Я так очень очень удивлен, MS не имеет эту информацию, доступную в PowerPoint. Похоже, довольно интуитивная информация, которую они включили бы по умолчанию.

1
отвечен Bye 2023-02-07 13:29

есть более элегантные способы сделать это с помощью надстройки, но как насчет этого ... предполагается, что вы используете presenter view, где вы можете увидеть заметки,но вы можете добавить текст на слайд или что-то вместо этого.

Option Explicit
Public StartTime As Date

Sub StartTimer()
    StartTime = Time
    SlideShowWindows(1).View.GotoSlide (SlideShowWindows(1).View.Slide.SlideIndex + 1)
End Sub

Sub ElapsedTime(osh As Shape)

    Dim oNotesText As Shape
    Dim oNextSlide As Slide

    ' what slide are we about to move TO?
    Set oNextSlide = ActivePresentation.Slides(osh.Parent.SlideIndex + 1)

    ' Get a reference to the notes text on that slide (not 100% reliable, but generally works)
    Set oNotesText = oNextSlide.NotesPage.Shapes(2)

    ' Do the time math and add the elapsed time to the notes:
    With oNotesText
        .TextFrame.TextRange.Text = Format(Time - StartTime, "HH:MM:SS") & vbCrLf & .TextFrame.TextRange.Text
    End With

    ' And go to the slide
    SlideShowWindows(1).View.GotoSlide (SlideShowWindows(1).View.Slide.SlideIndex + 1)

End Sub

добавьте фигуру к первому слайду и назначьте ей настройку действия Run Macro: StartTimer Добавьте фигуру к следующему слайду, назначьте ей настройку действия Run Macro: ElapsedTime Скопируйте и вставьте фигуру из слайда 2 в другие слайды презентация.

0
отвечен Steve Rindsberg 2023-02-07 15:46

Я нашел решение на эту страницу: ссылке. Автор создает таймер обратного отсчета в памяти и добавляет его текст хода выполнения к последней фигуре, вставленной в каждый слайд.

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

чтобы задать количество минут для обратного отсчета, найдите TargetDateTime = DateAdd("n", 6, Now) и изменить the 6.

вот мой модифицированный код:

Option Explicit
'API Declarations
Declare PtrSafe Function SetTimer Lib "user32" _
                            (ByVal hwnd As LongLong, _
                             ByVal nIDEvent As LongLong, _
                             ByVal uElapse As LongLong, _
                             ByVal lpTimerFunc As LongLong) As LongLong
Declare PtrSafe Function KillTimer Lib "user32" _
                            (ByVal hwnd As LongLong, _
                             ByVal nIDEvent As LongLong) As LongLong

' Public Variables
Public TimerID As LongLong
Public bTimerState As Boolean
Public TargetDateTime As Date


Sub TimerOnOff()

Dim maxshapes As Integer
Dim i As Integer

TargetDateTime = DateAdd("n", 6, Now)

For i = 2 To ActivePresentation.Slides.Count
    maxshapes = ActivePresentation.Slides(i).Shapes.Count
    ActivePresentation.Slides(i).Shapes(maxshapes - 1).TextFrame.TextRange.Text = ""
Next i

If bTimerState = False Then
    TimerID = SetTimer(0, 0, 1000, AddressOf TimerProc)
    If TimerID = 0 Then
        MsgBox "Unable to create the timer", vbCritical + vbOKOnly, "Error"
        Exit Sub
    End If
    bTimerState = True
    SlideShowWindows(1).View.GotoSlide (SlideShowWindows(1).View.Slide.SlideIndex + 1)
Else
    TimerID = KillTimer(0, TimerID)
    If TimerID = 0 Then
        MsgBox "Unable to stop the timer", vbCritical + vbOKOnly, "Error"
    End If
    bTimerState = False
End If

End Sub

' The defined routine gets called every nnnn milliseconds.
Sub TimerProc(ByVal hwnd As LongLong, _
                    ByVal uMsg As LongLong, _
                    ByVal idEvent As LongLong, _
                    ByVal dwTime As LongLong)

Dim diff As Date
Dim out As String
Dim maxshapes As Integer
Dim i As Integer

Dim hours As String
Dim minutes As String
Dim seconds As String

Dim hoursTest As Boolean
Dim minutesTest As Boolean
Dim secondsTest As Boolean

diff = TargetDateTime - Now
out = ""

hoursTest = (Hour(diff) <> 0)
minutesTest = (Minute(diff) <> 0)
secondsTest = (Second(diff) <> 0)

hours = CStr(Hour(diff))
minutes = CStr(Minute(diff))
seconds = CStr(Second(diff))

If hoursTest Then
    If Hour(diff) < 10 Then
        out = out + "0"
    End If
    out = out + hours
End If

If minutesTest Or hoursTest Then
    If hoursTest Then
        out = out + ":"
    End If
    If Minute(diff) < 10 Then
        out = out + "0"
    End If
    out = out + minutes
End If

If secondsTest Or minutesTest Then
    If minutesTest Then
        out = out + ":"
    End If
    If Second(diff) < 10 Then
        out = out + "0"
    End If
    out = out + seconds
Else
    If minutesTest And hoursTest Then
        out = "END"
    End If
End If

On Error GoTo err:
For i = 2 To ActivePresentation.Slides.Count
    maxshapes = ActivePresentation.Slides(i).Shapes.Count
    ActivePresentation.Slides(i).Shapes(maxshapes - 1).TextFrame.TextRange.Text = out
Next i
err:
End Sub
0
отвечен yaganox 2023-02-07 18:03

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх