PowerPoint - Defina um horário para cada slide e exiba o tempo total de apresentação?

1

Eu sei que nas guias de transição você pode definir um horário por slide, mas é quando você o usa para fazer a transição automática de cada slide.

O que eu gostaria é ter em cada slide uma propriedade de tempo que eu possa definir. Então, como apresentador, ele mostraria a contagem regressiva para que eu possa ver se estou passando por cima / abaixo do tempo em qualquer slide específico ao fazer minha apresentação.

Além disso, isso seria ótimo para determinar o tempo total da apresentação. Portanto, na barra de ferramentas inferior, há um item para o Horário do slide = 01:30 e outro para o Horário da apresentação de slides = 05:45

Eu temo que isso não esteja disponível, e acho que seria muito útil ter.

O ponto chave aqui é que eu ainda quero estar no controle da apresentação, portanto, não quero usar a transição automática de slides. Mas eu gostaria de poder usar um valor como o tempo de transição de slides (e um agregado de todos eles) para preparar melhor e apresentar meus programas.

Editar: descobri que posso desativar "Usar intervalos" na área Apresentação de slides, e isso interromperá o avanço automático após cada slide enquanto ainda estiver exibindo o horário de cada slide na página de apresentação de slides . Mas isso não me fornece um temporizador de slide durante a apresentação, ou em algum lugar para ver o tempo agregado da apresentação (e se você tiver de 30 a 45 slides, somar o tempo de cada slide seria chato).

    
por Bye 24.09.2013 / 19:21

4 respostas

1

Há um Add-in que você pode baixar que lhe dará o que você deseja. Vendo que você tem a configuração da primeira parte, você pode usar este Add-in para exibir o tempo decorrido tempo no topo do slide atual.

Existem instruções de instalação no site a que me vinculei, mas por conveniência incluí-las-ei aqui.

  1. Faça o download do executável e deixe-o instalar o suplemento no local padrão. Eu verifiquei o executável e os arquivos Add-in instalados em busca de vírus e posso confirmar que eles estão limpos.

  2. Uma vez que o Add-in tenha sido instalado, abra o PowerPoint e faça o seguinte:

Arquivo - > Opções - > Suplementos - > (Na lista suspensa Gerenciar na parte inferior), selecione Suplementos do PowerPoint e Ir

  1. Na caixa de diálogo resultante, faça o seguinte:

Adicionar novo - > selecione Timer do PowerPoint TM (IU da faixa de opções) - > OK

O texto acima adicionará uma guia TM à faixa do PowerPoint. Na janela de configuração do Temporizador, você poderá definir um temporizador para mostrar o tempo decorrido. Há também uma entrada Update Display na primeira guia, portanto, certifique-se de definir isso para 1 segundo (o padrão é 10 segundos).

    
por 24.09.2013 / 20:30
1

Espero que isso não quebre a etiqueta respondendo a minha própria pergunta, já que sei o quão modestos podem ser os procedimentos a seguir. Mas eu encontrei isso, o que pode fornecer um tempo total para a apresentação de slides. Baseia-se no tempo definido para a transição automática do diapositivo (Transições- > Avançar Diapositivo- > Depois :). Na faixa de opções Apresentação de slides, você pode desativar "Usar intervalos" para ter controle sobre o avanço dos slides durante a apresentação.

Isso não fornecerá uma contagem regressiva de slides na visualização do apresentador, mas suponho que eu possa viver sem isso e inserir o tempo esperado em que eu deveria estar no topo das minhas anotações. O add-in acima parece fornecer uma contagem regressiva na visão do apresentador, mas eu não vou poder usá-lo no meu local, então não é uma opção.

Eu baseei essa macro aqui, A FAQ do PowerPoint. Eu a modifiquei um pouco para mostrar os horários no formato "00:00" e o tempo total na parte inferior em vez de pop-up separado. Para usá-lo, basta criar um ir para View- > Macros e criar uma nova macro "Total Time". Copie e cole o código abaixo:

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

O código original também inclui uma seção para gravar em um arquivo de texto, o qual recortei porque não atendia às minhas necessidades.

Estou tão surpreso que o MS não tem essa informação disponível no PowerPoint. Parece um pouco de informação bastante intuitiva que eles incluiriam por padrão.

    
por 24.09.2013 / 21:28
0

Existem maneiras mais elegantes de fazer isso através de um add-in, mas e quanto a isso ... ele supõe que você está usando a exibição de apresentador, onde você pode ver as anotações, mas pode adicionar o texto ao slide ou em vez de.

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

Adicione uma forma ao primeiro slide e atribua a ela uma configuração de ação da macro de execução: StartTimer Adicionar uma forma ao próximo slide, atribua a ela uma configuração de ação da macro de execução: ElapsedTime Copie e cole a forma do slide 2 nos outros slides da apresentação.

    
por 02.10.2013 / 23:42
0

Encontrei uma solução nesta página: link . O autor cria um cronômetro de contagem regressiva na memória e adiciona seu texto de progresso à última forma inserida em cada slide.

Eu modifiquei um pouco para não afetar o primeiro slide e atualizar a forma antes da última inserção; Eu sempre removo a data e o número do slide do rodapé e depois os adiciono quando a apresentação é final.

Para definir o número de minutos a partir da contagem regressiva, localize TargetDateTime = DateAdd("n", 6, Now) e modifique o 6 .

Este é o meu código modificado:

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
    
por 07.11.2014 / 19:18