Ich erstellte ein Makro in Excel, die ein 3D-Diagramm drehen wird. Ich habe das Diagramm in PowerPoint kopiert und den Code so eingerichtet, dass er in PowerPoint ausgeführt wird, wenn die Folie angezeigt wird. Der Code wird ausgeführt, aber ich kann nicht erreichen, dass er tatsächlich ändert, was auf dem Bildschirm angezeigt wird. Wenn sich die Folie im Bearbeitungsmodus befindet, rotiert der Graph. Irgendeine Idee, wie man den Code nicht nur zum Laufen bringt (ich kann sehen, dass die Debug-Nummern auftauchen), aber den Bildschirm im Präsentationsmodus aktualisieren? Mein Code ist:Spinning 3D-Diagramm in PowerPoint-Präsentation
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Sub SpinTheChart()
RotateX = ActivePresentation.Slides(2).Shapes(2).Chart.ChartArea.Format _
.ThreeD.RotationX
Do While ActivePresentation.SlideShowWindow.View.CurrentShowPosition = 2
RotateX = RotateX + 7
If RotateX > 360 Then RotateX = RotateX - 360
ActivePresentation.Slides(2).Shapes(2).Chart.ChartArea.Format _
.ThreeD.RotationX = RotateX
DoEvents
Sleep 125
Debug.Print RotateX
Loop
End Sub
Sub OnSlideShowPageChange()
Dim i As Integer
i = ActivePresentation.SlideShowWindow.View.CurrentShowPosition
If i = 2 Then SpinTheChart
End Sub
UPDATE: ich immer noch diese kämpfen werde. Es scheint einige recomendations sagen die aktuell angezeigte Grafik zu aktualisieren, die Sie verwenden müssen, unter den DoEvents:
SlideShowWindows(1).View.GotoSlide SlideSowWindows(1).View.CurrentShowPosition
aber das funktioniert nicht. Es beendet jeden Code, der ausgeführt wird. Also wird die Do/Loop in der ersten Funktion verlassen und es geht nicht weiter zur zweiten Iteration.
Haben Sie überprüft die Objekte die gleiche Schnittstelle zwischen Excel und Powerpoint verwenden, um sicherzustellen? –
Ist Ihr UPDATE: Code eine exakte Kopie aus dem Code? Wenn ja, überprüfen Sie die Schreibweise in der zweiten Hälfte, wo 'SlideShowWindows' falsch geschrieben ist. –
Sie haben diese Frage vor vier Monaten gestellt und es gibt keine Antworten: Haben Sie dieses Problem jemals gelöst? –