2017-05-22 42 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

喜行了,謝謝你的投入。我很感激。但是,當我使用此代碼時,即使在取消註釋添加空文本框之後也沒有任何事情發生。 –

相關問題