2017-06-09 7 views
1

私はExcelチャートオートメーションに取り組んでいます。 LegendEntry(Series)オブジェクトを上に移動しようとすると、関連するAPIメソッドがMS siteから見つかりません。グラフを選択する>右クリック>データを選択...>LegendEntryのいずれかを選択してください。Move Upをクリックします。どのように私はVBAでこれを行うことができますか?前もって感謝します。VBAによってExcelチャートのLegendEntries(Series)のシーケンスを調整する方法はありますか?

答えて

3

これは、直列に見ることが有用である

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 

スクリーンショット enter image description here

+1

私はExcel 2010を使用しているので、オブジェクトは 'FullSeriesCollection'ではなく 'SeriesCollection'である必要があります。これは本当に役に立ちます!明確なデモをありがとう。 –

+0

喜んで助けになる:) –

1

凡例の入力順序は、系列の順序と同じです。これがオブジェクトモデルで公開されるかどうかはわかりません。系列数式の最後のパラメータの数を変更して、系列と凡例の並び順を変更することができます。

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

これが最後のパラメータとして、あなたに

=SERIES(Sheet1!$B$6,,Sheet1!$C$6,1) 
のようなもの

1を取得しますが、それは、チャート、したがって伝説の最初のシリーズであることを意味します。そのパラメータを変更して、凡例のエントリを別の位置に移動します。ここで

+0

別の方法です。しかし、私は現在、これを使ってシリーズに価値を割り当てようとすると、何か問題があります。だから私は@siddharthの方法に切り替える。私は時間があるときにもっと試してみる。同じようにありがとう! –

+0

SidはPlotOrderプロパティで釘付けにしました。これは、一連の数式の最後のパラメータです。 – teylyn

関連する問題