«Дни с последнего ...» Обновление слайдов VBA PowerPoint - PullRequest
0 голосов
/ 06 декабря 2018

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

Итак, я работаю над презентацией в PowerPoint 2016:

  • Моя презентация сохраняется как макросов.
  • Макросы включены в защиту макросов.
  • Слайд-шоу будет работать на большом мониторе 24/7.
  • Во время бега не будет никакого человеческого взаимодействия.
  • Слайд-шоу будет работать до полного месяца, прежде чем оно будет обновлено новыми новостями / информацией.

Что я пытаюсь сделать:

Итак, слайд в позиции 28 - это «Дни с последнего несчастного случая с потерей времени» слайд.

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

Sub Countup()
Dim thedate As Date
Dim daycount As Long
Dim Icount As Integer
ActivePresentation.Slides(28).Shapes("LTAno").Select
thedate = "10/04/2017"
daycount = DateDiff("d", thedate, Now)
ActivePresentation.Slides(28).Shapes("LTAno").TextFrame.TextRange.Text = daycount
End Sub

Над этим (эти две части находятся в модуле) - код проблемы:

Public Sub OnSlideShowPageChange(ByVal SSW As SlideShowWindow)
If SSW.View.CurrentShowPosition = 28 Then
Call Countup
End If
End Sub

Я проверил, чтобы слайд 28 действительно был слайдом 28, используяmsgbox, и это выскочило без проблем.Поэтому я изменил строку msgbox на функцию CALL.

Я думаю, в этом моя проблема?У меня болит голова ... Может ли кто-нибудь указать мне правильное направление?:)

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

1 Ответ

0 голосов
/ 06 декабря 2018

Не «выбирайте» форму.Например:

Sub Countup()
    Dim thedate As Date
    Dim daycount As Long
    Dim Icount As Integer
    Dim vShape 
    Set vShape = ActivePresentation.Slides(28).Shapes("LTAno")
    thedate = "10/04/2017"
    daycount = DateDiff("d", thedate, Now)
    vShape.TextFrame.TextRange.Text = daycount
End Sub
...