I recently found a similar refresh issue in the same view but during a long process that added elements to slides. During this process, I wanted to provide a progress indicator and since modeless forms are not supported by VBA6.5 (Mac) I decided to show
the progress by adding a shape with text to the current slide.
The shape only appeared after the code had finished executing so I tried a huge combination of refresh techniques, including those above, yet none worked.
Finally, this simple delay insertion worked: (for simplicity, the code for each of the sub-procedures in the Main() procedure is omitted:
Private Sub Main()
' Show progress message on current slide
AddShapeToSlide
' Insert a delay of 0.1 seconds so that the above shape is visible on the slide at runtime
Delay 0.1
' Run Procedure 1
Procedure1
' Remove progress message
DeleteShapeFromSlide
End Sub
Private Sub Delay(Seconds As Single)
Dim TimeNow As Long
TimeNow = Timer
Do While Timer < TimeNow + Seconds
DoEvents
Loop
End Sub
I don't know why this works but it does. It would be better to have a Repaint command for ActiveWindow like there is for forms.