"Error en tiempo de ejecución 1004" cuando se realizan cambios en las entradas de leyenda de un gráfico en Excel

Nota

Office 365 ProPlus pasa a llamarse Microsoft 365 Apps para empresas. Para obtener más información sobre este cambio, lea esta publicación de blog.

Síntomas

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

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

Causa

Este comportamiento se produce cuando el gráfico de Excel contiene más entradas de leyenda que el 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.

Debido a que el método LegendEntries de la macro de VBA utiliza 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 que el espacio disponible para mostrar las entradas de la 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, entre otras, las garantías implícitas de comerciabilidad o idoneidad para un fin determinado. En este artículo se supone que está familiarizado con el lenguaje de programación que se muestra y las herramientas que se usan para crear y depurar procedimientos. Los profesionales de soporte técnico de Microsoft pueden explicarle la funcionalidad de un procedimiento en particular, pero no modificarán estos ejemplos para proporcionar una funcionalidad agregada ni crear procedimientos que se ajusten a sus necesidades específicas.

Para obtener más información acerca de las opciones de soporte técnico disponibles y 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 de 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 siguiente ejemplo de macro.

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