"Laufzeitfehler 1004", wenn Sie Änderungen an Legendeneinträgen in einem Diagramm in Excel vornehmen

Symptome

Wenn Sie ein VBA-Makro (Microsoft Visual Basic for Applications) ausführen, das die LegendEntries-Methode verwendet, um Änderungen an Legendeneinträgen in einem Microsoft Excel-Diagramm vorzunehmen, wird möglicherweise die folgende Fehlermeldung angezeigt:

Laufzeitfehler "1004": Anwendungs- oder objektdefinierter Fehler

Ursache

Dieses Verhalten tritt auf, wenn das Excel-Diagramm mehr Legendeneinträge enthält, als platz verfügbar ist, um die Legendeneinträge im Excel-Diagramm anzuzeigen. Wenn dieses Verhalten auftritt, kann Microsoft Excel die Legendeneinträge abschneiden.

Da die LegendEntries-Methode in Ihrem VBA-Makro verwendet, was für die Legende angezeigt wird (in diesem Fall die abgeschnittenen Legendeneinträge), tritt die im Abschnitt "Symptome" dieses Artikels erwähnte Fehlermeldung auf, wenn mehr Einträge vorhanden sind, als platz zum Anzeigen der Legendeneinträge im Excel-Diagramm verfügbar sind.

Problemumgehung

Microsoft stellt Programmierbeispiele nur zur Veranschaulichung zur Verfügung, ohne ausdrückliche oder stillschweigende Garantie, einschließlich, aber nicht beschränkt auf die stillschweigenden Garantien der Marktgängigkeit und/oder Eignung für einen bestimmten Zweck. Dieser Artikel setzt voraus, dass Sie mit der zu demonstrierenden Programmiersprache und den Tools zum Erstellen und Debuggen von Prozeduren vertraut sind. Die Microsoft Support-Spezialisten können bei der Erläuterung der Funktionalität bestimmter Prozeduren helfen, jedoch verändern sie diese Beispiele nicht in Bezug auf eine erweiterte Funktionalität, noch entwickeln sie Prozeduren, die auf Ihre besonderen Bedürfnisse zugeschnitten sind.

Weitere Informationen zu den verfügbaren Supportoptionen und zur Kontaktaufnahme mit Microsoft finden Sie auf der folgenden Microsoft-Website:

https://support.microsoft.com

Um dieses Verhalten zu umgehen, erstellen Sie ein Makro, das den Schriftgrad des Excel-Diagrammlegendentexts reduziert, bevor das VBA-Makro Änderungen an der Diagrammlegende vornimmt, und stellen Sie dann den Schriftgrad der Diagrammlegende wieder her, sodass er dem folgenden Makrobeispiel ähnelt.

Hinweis

Das Arbeitsblatt muss über ein Excel-Diagramm verfügen, damit dieses Makro ordnungsgemäß ausgeführt werden kann.

Sub ResizeLegendEntries()

With Worksheets("Sheet1").ChartObjects(1).Activate
      ' Store the current font size
      fntSZ = ActiveChart.Legend.Font.Size

'Temporarily change the font size.
      ActiveChart.Legend.Font.Size = 2

'Place your LegendEntries macro code here to make
         'the changes that you want to the chart legend.

' Restore the font size.
      ActiveChart.Legend.Font.Size = fntSZ
   End With

End Sub