我正在尝试在 PowerPoint 中创建计时器。我编写了一段代码来通过 VBA 循环更改形状的文本。在演示模式下,我只能看到第一个和最后一个更改。中间的更改在屏幕上不可见。有没有办法在每次更改后刷新对象?请帮忙
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub Test()
ActivePresentation.Slides(2).Shapes(1).TextFrame.TextRange.Text = 0
For i = 0 To 5
Sleep (1000)
ActivePresentation.Slides(2).Shapes(1).TextFrame.TextRange.Text = i
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub Test()
With ActivePresentation
.Slides(2).Shapes(1).TextFrame.TextRange.Text = 0
For i = 0 To 5
Sleep (1000)
.Slides(2).Shapes(1).TextFrame.TextRange.Text = i
RefreshSlide .SlideShowWindow
Next i
End With 'ActivePresentation
End Sub
Run Code Online (Sandbox Code Playgroud)
此例程即时更新幻灯片。
如果它不适合您,请取消注释下面的行Adds an empty textbox
Public Sub RefreshSlide(ByVal SlideShowWindowObject As Object)
With SlideSlideShowWindowObject
.Height = .Height - 1
.Height = .Height + 1
'Adds an empty textbox
'.View.Slide.Shapes.AddTextbox msoTextOrientationHorizontal, 1, 1, 1, 1
End With 'SlideSlideShowWindowObject
End Sub
Run Code Online (Sandbox Code Playgroud)