2017-05-22 38 views
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 

回答

1
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 

这个程序即时更新的幻灯片。
如果它不为你工作,取消下面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 
+0

喜行了,谢谢你的投入。我很感激。但是,当我使用此代码时,即使在取消注释添加空文本框之后也没有任何事情发生。 –

相关问题