在 PowerPoint VBA 循环中更改形状文本

Ram*_*man 1 powerpoint vba

我正在尝试在 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)

R3u*_*3uK 5

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)