2

で新しいチャートを作成します

Sheets("DatenFilledChart").Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlArea
ActiveChart.SetSourceData Source:=Range("DatenFilledChart!$B$4:$B$1004")
ActiveChart.SeriesCollection(1).XValues = "=DatenFilledChart!$A$4:$A$1004"
ActiveChart.SeriesCollection(1).Name = "=DatenFilledChart!$B$1"

現在のチャートを操作するために、そのインデックスを保存したい

indexOfChart = ActiveChart.Index

ただし、それは失敗します

メソッド Index はオブジェクト _Chart に対して無効です

私は何を間違っていますか?

4

3 に答える 3

3

これを使用してみてください:

indexOfChart = Shapes.Count

それ以外の

indexOfChart = ActiveChart.Index

Indexプロパティは Charts コレクションには適用されません:

インデックス プロパティ

Tabsコレクション内のTabオブジェクトまたはPagesコレクション内のPageオブジェクトの位置。

詳細: http://msdn.microsoft.com/en-us/library/office/ff194426.aspx

于 2013-02-21T16:01:27.097 に答える
2

Index は ChartObject クラスのプロパティです。

Chart は ChartObject クラスのメンバーです。

したがって、Chart オブジェクトを使用する場合は、次のように階層を 1 レベル上げる必要があります。

indexOfChart = ActiveChart.Parent.Index
于 2013-12-06T17:48:22.040 に答える
1

AddChart追加されたオブジェクトへの参照を返すため、最も簡単な方法は、その参照を操作することです...

Sub tester()
    Dim co As Shape

    Set co = Sheet1.Shapes.AddChart()
    With co.Chart
        .ChartType = xlArea
        .SetSourceData Source:=Range("Sheet1!$A$1:$B$5")
        .SeriesCollection(1).Name = "Testing"
        'etc etc
    End With
End Sub
于 2013-02-21T18:29:02.060 に答える