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

10204
Bye

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

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

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

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

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

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

1

4 ответа на вопрос

1
Yass

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

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

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

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

Файл -> Параметры -> Надстройки -> (Из раскрывающегося списка «Управление» внизу) выберите «Надстройки PowerPoint» и «Перейти».

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

Добавить новый -> выбрать TM PowerPoint Timer (ленточный интерфейс) -> ОК

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

Спасибо, это близко, но не то, на что я надеялся. Это дополнение имеет 30-дневную пробную версию и стоит $ 29,95. Что еще более важно, поскольку презентация будет проводиться на компьютере, которым я не владею, я, скорее всего, не смогу его установить. Bye 11 лет назад 0
Хм, это прискорбно. Насколько я знаю, нет возможности просмотреть истекшее время в PowerPoint по умолчанию. У кого-то еще может быть лучшее решение для вас. Yass 11 лет назад 0
1
Bye

I hope this doesn't break etiquette answering my own question, as I know how touchy mods can be about following protocol. But I found this, which can provide a total time for the slide show. It is based on the time set for the automatic transition of the slide (Transitions->Advance Slide->After:). In the Slide Show ribbon, you can disable "Use Timings" so that you'll have control over advancing the slides while presenting.

This won't provide a slide countdown on the presenter's view, but I suppose I can live without that and just enter the expected time I should be at on the top of my notes. The add-in above would seem to provide a countdown on the presenter's view, but I won't be able to use it at my venue, so it's not an options.

I based this macro from here, The PowerPoint FAQ. I have modified it a little bit so to show the times in "00:00" format, and the total time at the bottom instead of separate pop-up. To use it, just create a go to View->Macros, and create a new macro "Total Time". Copy and paste the code below:

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 

The original code also includes a section to write to a text file, which I cut out since it didn't meet my needs.

I am so very very surprised MS doesn't have this info available within PowerPoint. It seems like a rather intuitive bit of information that they would include by default.

Ницца. Это прекрасно, чтобы ответить на свой вопрос. Yass 11 лет назад 0
0
Steve Rindsberg

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

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 

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

0
yaganox

I found a solution on this page: link. The author creates a count-down timer in memory, and adds its progress text to the last shape inserted in every slide.

I modified it a bit to not affect the first slide, and to update the shape before last inserted; I always remove the date and slide number from the footer and then add them when the presentation is final.

To set the number of minutes to count-down from, find TargetDateTime = DateAdd("n", 6, Now) and modify the 6.

Here's my modified code:

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