"Błąd czasu wykonywania 1004" podczas wprowadzania zmian w wpisach legendy na wykresie w programie Excel

Symptomy

Po uruchomieniu makra programu Microsoft Visual Basic for Applications (VBA), które używa metody LegendEntries do wprowadzania zmian w wpisach legendy na wykresie programu Microsoft Excel, może zostać wyświetlony następujący komunikat o błędzie:

Błąd czasu wykonywania "1004": błąd aplikacji lub obiektu zdefiniowany

Przyczyna

To zachowanie występuje, gdy wykres programu Excel zawiera więcej wpisów legendy niż jest dostępna przestrzeń do wyświetlania wpisów legendy na wykresie programu Excel. W przypadku takiego zachowania program Microsoft Excel może obciąć wpisy legendy.

Ponieważ metoda LegendEntries w makrach VBA używa tego, co jest wyświetlane dla legendy (w tym przypadku obciętych wpisów legendy), komunikat o błędzie wymieniony w sekcji "Objawy" tego artykułu występuje, gdy jest więcej wpisów niż jest dostępnych miejsca do wyświetlania wpisów legendy na wykresie programu Excel.

Obejście problemu

Firma Microsoft podaje przykłady programowania wyłącznie dla ilustracji, bez gwarancji wyrażonej lub dorozumianej, w tym między innymi dorozumianych gwarancji przydatności handlowej i/lub przydatności do określonego celu. W tym artykule zakłada się, że czytelnik zna demonstrowany język programowania oraz narzędzia używane do procedur tworzenia i debugowania. Wykwalifikowani pracownicy pomocy technicznej firmy Microsoft mogą pomóc w wyjaśnieniu, jak działa określona procedura, ale nie będą modyfikować tych przykładów ani dodawać żadnych funkcji i konstruować nowych procedur w celu dostosowania ich do określonych potrzeb użytkownika.

Aby uzyskać więcej informacji o dostępnych opcjach pomocy technicznej i o tym, jak skontaktować się z firmą Microsoft, odwiedź następującą witrynę internetową firmy Microsoft:

https://support.microsoft.com

Aby obejść to zachowanie, utwórz makro, które zmniejsza rozmiar czcionki tekstu legendy wykresu programu Excel, zanim makro VBA dokona zmian w legendzie wykresu, a następnie przywróci rozmiar czcionki legendy wykresu, tak aby był podobny do poniższego przykładu makra.

Uwaga

Aby to makro działało poprawnie, musisz mieć w arkuszu wykres programu Excel.

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