Manchmal nervt es mich, dass ich auf mein gutes Aussehen, meine hohe Intelligenz und mein vieles Geld reduziert werde. Ich bin auch gut im Bett!

PlotArea – der Zeichnungsbereich eines Diagramms. Die Aufgabe: aus generierten Daten soll ein XY-Diagramm erzeugt werden. Nichts leichter als das:

' -- das Diagramm
     Set xlChart = xlBlattDiagramm.ChartObjects.Add(500, 100, 800, 400)
     Set xlDiagramm = xlChart.Chart
' -- XY-Diagramm
xlDiagramm.ChartType = xlXYScatter

With xlDiagramm
    .SetSourceData Source:=xlBlattDiagramm.Range(xlBlattDiagramm.Range("B" & (intZeilenDiagramm + 2)), _
        xlBlattDiagramm.Range("C" & intBereichsZeilen))  '   Range("'fin. Impact'!$B$8:$C$17") - Datenquelle

    .SetElement msoElementDataLabelLeft ' -- Datenbeschriftung
    .SetElement msoElementLegendNone ' -- keine Legende

    .FullSeriesCollection(1).DataLabels.Format.TextFrame2.TextRange. _
        InsertChartField msoChartFieldRange, "='" & strKategorie & "'!$A$" & (intZeilenDiagramm + 2) & ":$A$" & intBereichsZeilen & "", 0
    ' -- Beschriftung der Datenpunkte

    .FullSeriesCollection(1).DataLabels.ShowValue = False
    .FullSeriesCollection(1).DataLabels.ShowRange = True ' -- Werte anzeigen

    .Axes(xlValue).TickLabelPosition = xlNone
    ' -- y-Achse ausblenden

Das Ergebnis:

Nun möchte ich noch die Zeichnungsfläche verschieben, damit man die Beschriftung der Y-Achse besser sehen kann. Obwohl sie einen Abstand von Links = 7 hat, darf ich diesen Wert nicht auf 100 setzen?!?

Nach vielem Probieren finde ich die Lösung:

.PlotArea.Width = .PlotArea.Width * 0.9
.PlotArea.Left = .PlotArea.Left + 100

Das klappt!

Ich verstehe es nicht.