"Errore di runtime 1004" quando si apportano modifiche alle voci della legenda in un grafico in Excel

Sintomi

Quando si esegue una macro di Microsoft Visual Basic, Applications Edition (VBA) che utilizza il metodo LegendEntries per apportare modifiche alle voci della legenda in un grafico di Microsoft Excel, è possibile che venga visualizzato il messaggio di errore seguente:

Errore di runtime '1004': errore definito dall'applicazione o dall'oggetto

Causa

Questo comportamento si verifica quando il grafico di Excel contiene più voci di legenda rispetto allo spazio disponibile per visualizzare le voci della legenda nel grafico di Excel. Quando si verifica questo comportamento, è possibile che le voci della legenda vengano troncate in Microsoft Excel.

Poiché il metodo LegendEntries nella macro VBA utilizza ciò che viene visualizzato per la legenda (in questo caso, le voci della legenda troncate), il messaggio di errore indicato nella sezione "Sintomi" di questo articolo si verifica quando sono disponibili più voci di quello disponibile per visualizzare le voci della legenda nel grafico di Excel.

Soluzione alternativa

Microsoft fornisce esempi di programmazione solo a scopo illustrativo, senza alcuna garanzia espressa o implicita, comprese, senza limitazioni, le garanzie implicite di commerciabilità o idoneità per uno scopo particolare. In questo articolo si presuppone che l'utente conosca il linguaggio di programmazione in questione e gli strumenti utilizzati per creare ed eseguire il debug delle procedure. I tecnici Microsoft sono autorizzati a fornire spiegazioni in merito alla funzionalità di una particolare procedura, ma in nessun caso a modificare questi esempi per fornire funzionalità aggiuntive o a creare procedure atte a soddisfare specifiche esigenze.

Per altre informazioni sulle opzioni di supporto disponibili e su come contattare Microsoft, visitare il seguente sito Web Microsoft:

https://support.microsoft.com

Per ovviare a questo comportamento, creare una macro che riduce le dimensioni del carattere del testo della legenda del grafico di Excel prima che la macro VBA apporti modifiche alla legenda del grafico e quindi ripristini le dimensioni del carattere della legenda del grafico in modo che sia simile all'esempio di macro seguente.

Nota

Per eseguire correttamente la macro, è necessario disporre di un grafico di Excel nel foglio di lavoro.

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