Записать метки времени изменений слайда во время живой Презентации PowerPoint?

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

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

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

6
задан Joel Coehoorn 9 December 2011 в 19:17
поделиться

2 ответа

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

Извините, что не предоставил элегантного ответа.

1
ответ дан 17 December 2019 в 07:06
поделиться

Вот код, который поможет вам в этом.

Во-первых, в PowerPoint VBE создайте класс, назовите его clsPPTEvents . Поместите в него следующее:

Public WithEvents PPTEvent As Application
Private Sub PPTEvent_SlideShowNextSlide(ByVal Wn As SlideShowWindow)
    MsgBox "Position: " & Wn.View.CurrentShowPosition & ", Time: " & Time
End Sub

Затем создайте модуль, назовите его как угодно и поместите в него следующее:

Public newPPTEvents As New clsPPTEvents
Sub StartEvents()
    Set newPPTEvents.PPTEvent = Application
End Sub
Sub EndEvents()
    Set newPPTEvents.PPTEvent = Nothing
End Sub

Запустив подпрограмму StartEvents , вы можете перейти в режим презентации и при каждом изменении слайда , номер слайда (положение) и текущее время изменения будут отображаться в окне сообщения. Вы можете использовать эти (или другие) переменные для записи в файл. После выхода из текущего слайд-шоу вы можете запустить EndEvents , чтобы остановить обработчик API.

3
ответ дан 17 December 2019 в 07:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: