"Error 1004 en tiempo de ejecución" al realizar cambios en las entradas de leyenda de un gráfico en Excel

Síntomas

Al ejecutar una macro de Microsoft Visual Basic para Aplicaciones (VBA) que usa el método LegendEntries para realizar cambios en las entradas de leyenda en un gráfico de Microsoft Excel, puede recibir el siguiente mensaje de error:

Error en tiempo de ejecución '1004': error definido por la aplicación o por el objeto

Causa

Este comportamiento se produce cuando el gráfico de Excel contiene más entradas de leyenda que espacio disponible para mostrar las entradas de leyenda en el gráfico de Excel. Cuando se produce este comportamiento, Microsoft Excel puede truncar las entradas de leyenda.

Dado que el método LegendEntries de la macro vba usa lo que aparece para la leyenda (en este caso, las entradas de leyenda truncadas), el mensaje de error que se menciona en la sección "Síntomas" de este artículo se produce cuando hay más entradas de las que hay espacio disponible para mostrar las entradas de leyenda en el gráfico de Excel.

Solución alternativa

Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía tanto expresa como implícita, incluyendo, pero sin limitarse, a las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. En este artículo se da por supuesto que ya conoce el lenguaje de programación que se muestra, así como las herramientas empleadas para crear y depurar procedimientos. Los profesionales de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos adaptados a sus necesidades específicas.

Para obtener más información sobre las opciones de soporte técnico que están disponibles y sobre cómo ponerse en contacto con Microsoft, visite el siguiente sitio web de Microsoft:

https://support.microsoft.com

Para evitar este comportamiento, cree una macro que reduzca el tamaño de fuente del texto de la leyenda del gráfico de Excel antes de que la macro vba realice cambios en la leyenda del gráfico y, a continuación, restaure el tamaño de fuente de la leyenda del gráfico para que sea similar al ejemplo de macro siguiente.

Nota:

Debe tener un gráfico de Excel en la hoja de cálculo para que esta macro se ejecute correctamente.

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