2017-06-09 1 views
1

Je travaille sur une automatisation graphique Excel. Lorsque j'essaie de monter un objet LegendEntry (Series), je ne trouve aucune méthode API associée de MS site. La manière manuelle est la suivante: Sélectionnez le graphique> Clic droit>Sélectionnez Données ...> Choisissez l'une des LegendEntry> Cliquez sur le bouton Move Up. Comment pourrais-je faire cela par VBA? Merci d'avance.Y at-il un moyen d'ajuster la séquence de LegendEntries (Series) dans le graphique Excel par VBA?

Répondre

3

Voici une autre façon

Sub Sample() 
    Dim ws As Worksheet 
    Dim objChrt As ChartObject 
    Dim chrt As Chart 

    Set ws = ActiveSheet 
    Set objchart = ws.ChartObjects(1) 
    Set chrt = objchart.Chart 

    chrt.FullSeriesCollection(2).PlotOrder = 1 
End Sub 

Screenshot enter image description here

+1

Je devrais mettre en évidence que j'utilise Excel 2010, donc l'objet devrait être 'SeriesCollection' au lieu de 'FullSeriesCollection'. C'est vraiment utile! Merci pour la démo claire. –

+0

Heureux d'être d'aide :) –

1

L'ordre d'entrée de la légende est le même que celui de la série. Je ne suis pas sûr si cela est même exposé dans le modèle d'objet. Vous pouvez modifier le numéro du dernier paramètre de la formule de série pour réorganiser les séries et les entrées de légende.

ActiveSheet.ChartObjects("Chart 1").Activate 
Debug.Print ActiveChart.FullSeriesCollection(1).Formula 

Cela vous obtiendrez quelque chose comme

=SERIES(Sheet1!$B$6,,Sheet1!$C$6,1) 

Le 1 comme le dernier paramètre signifie qu'il est la première série dans le tableau et donc la légende. Modifiez ce paramètre pour déplacer l'entrée de légende vers une position différente.

+0

Ceci est également utile de se pencher sur la série. Mais j'ai actuellement un problème quand j'essaie d'attribuer une valeur à la série en utilisant cela. Donc je passe à la façon de @siddharth. Je vais essayer plus quand j'ai le temps. Merci tout de même! –

+0

Sid a cloué avec la propriété PlotOrder. C'est ce que le dernier paramètre de la formule de la série est. – teylyn