2017-01-10 2 views
0

Ich habe Stunden gesucht, um zu versuchen, die Antwort auf diese Frage zu finden, aber ohne Erfolg, so hoffe ich, dass ich die Antwort hier finden kann.Referenzieren von Charts nach Name nur in PowerPoint VBA

Ich möchte eine Variable erstellen, die sich auf ein bereits vorhandenes Diagramm in PowerPoint bezieht, damit ich mit der Automatisierung der Daten beginnen kann. Ich möchte auf das Diagramm mit seinem Namen verweisen, um die Dinge sehr einfach zu machen, aber egal, was ich tue, ich kann PPT keine zufriedenstellende Chart-Adresse geben.

Ich habe fast alle möglichen Varianten des unten versucht, aber ohne Erfolg:

Dim chrtPP As PowerPoint.Chart 

Set chrtPP = ActivePresentation.Slides(1).Shapes.Charts("Chart3") 

Könnte mir bitte jemand sagen, was ich falsch mache?

Danke!

+0

Powerpoint nicht ha eine Charts-Sammlung wie Excel; Es hat Shapes, und ein Shape könnte ein Chart enthalten (oder im Fall von eingefügtem Inhalt von Excel, BE ein Chart). In Ihrer Situation sollte ActivePresentation.Slides (1) .Shapes. ("Chart3") es tun (dh den .Charts-Teil entfernen) –

Antwort

0

Sie müssen die Form nach Name verweisen (eine "Form" in PowerPoint ist eigentlich jedes Objekt, das sich auf einer Folie befindet und eine einfache Form, Textbox, Tabelle, Diagramm, Gruppe, Medienclip usw. sein kann) Wenn Sie mit PowerPoint 2010 und höher arbeiten, drücken Sie Alt + F10, um den Auswahlbereich zu öffnen, um den Namen des ausgewählten Diagrammobjekts zu finden.Es kann ein Standarddiagrammobjekt oder ein Diagramm innerhalb eines Platzhalterobjekts sein folgt:

Option Explicit 

Sub ChartStuff() 
    Dim oShp As Shape 
    Dim oCht As Chart 

    Set oShp = ActivePresentation.Slides(1).Shapes("Chart 3") 
    If oShp.HasChart Then 
    Set oCht = oShp.Chart 
    End If 

    ' Do stuff with your chart 
    If oCht.HasTitle Then Debug.Print oCht.ChartTitle.Text 

    ' Clean up 
    Set oShp = Nothing 
    Set oCht = Nothing 
End Sub 

der Schlüssel in der Programmierung Powerpoint ist der Objektname in dem Objektmodell für ‚Shape‘ zu ignorieren, da es sehr irreführend ist

Verwandte Themen