"Run-time Error 1004" when you make changes to legend entries in a chart in Excel

Sintomas

Quando executa uma macro do Microsoft Visual Basic for Applications (VBA) que utiliza o método LegendEntries para fazer alterações às entradas de legenda num gráfico do Microsoft Excel, poderá receber a seguinte mensagem de erro:

Erro de tempo de execução "1004": Erro definido pela aplicação ou pelo objeto

Causa

Este comportamento ocorre quando o gráfico do Excel contém mais entradas de legenda do que espaço disponível para apresentar as entradas de legenda no gráfico do Excel. Quando este comportamento ocorre, o Microsoft Excel pode truncar as entradas da legenda.

Uma vez que o método LegendEntries na macro VBA utiliza o que é apresentado para a legenda (neste caso, as entradas de legenda truncadas), a mensagem de erro mencionada na secção "Sintomas" deste artigo ocorre quando existem mais entradas do que espaço disponível para apresentar as entradas de legenda no gráfico do Excel.

Solução

A Microsoft fornece exemplos de programação apenas para ilustração, sem garantia expressa ou implícita, incluindo, mas não se limitando a, as garantias implícitas de comercialização e/ou aptidão para um propósito específico. Este artigo pressupõe que o utilizador está familiarizado com a linguagem de programação demonstrada e as ferramentas utilizadas para criar e depurar procedimentos. Os técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para proporcionarem funcionalidades adicionais, nem criarão procedimentos adaptados às suas necessidades específicas.

Para obter mais informações sobre as opções de suporte disponíveis e sobre como contactar a Microsoft, visite o seguinte Web site da Microsoft:

https://support.microsoft.com

Para contornar este comportamento, crie uma macro que reduza o tamanho do tipo de letra do texto da legenda do gráfico do Excel antes de a macro VBA fazer alterações à legenda do gráfico e, em seguida, restaure o tamanho do tipo de letra da legenda do gráfico para que seja semelhante ao seguinte exemplo de macro.

Nota

Tem de ter um gráfico do Excel na sua folha de cálculo para que esta macro seja executada corretamente.

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