"Error en tiempo de ejecución 1004" al realizar cambios en las entradas de leyenda en 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 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 el objeto

Causa

Este comportamiento se produce cuando el gráfico de Excel contiene más entradas de leyenda de las que hay 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 mencionado 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 solo para ilustración, sin garantía expresa o implícita, incluidas, entre otras, las garantías implícitas de comercialización y/o idoneidad para un fin determinado. En este artículo se supone que está familiarizado con el lenguaje de programación que se está demostrando y las herramientas usadas para crear y depurar procedimientos. Los profesionales de soporte técnico de Microsoft pueden ayudar a explicar la funcionalidad de un procedimiento en particular, pero no modificarán estos ejemplos para proporcionar funcionalidad adicional o crear procedimientos para satisfacer sus necesidades específicas.

Para obtener más información sobre las opciones de soporte técnico 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 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