web-dev-qa-db-ja.com

動的チャートのすべてのデータ系列を削除する

リストボックス(Lbox1)での選択に従って、複数のデータ系列で動的グラフを作成します。

最初にすべてのデータ系列を削除して新しいグラフを作成すると、エラーがスローされます。

Public Sub listbox_selection()
    Dim i As Integer
    Dim temp As String
    Dim k As Integer
    Dim s As SeriesCollection

    k = Sheets("Plan1").ChartObjects(1).Chart.SeriesCollection.count

    ##This part giving error
    For i = 1 To k
        Sheets("Plan1").ChartObjects(1).Chart.SeriesCollection(i).Delete
    Next
    ####

    Sheets("Plan1").ListBoxes("LBox1").Select
    For i = 1 To Sheets("Plan1").Shapes("LBox1").ControlFormat.ListCount
        If Sheets("Plan1").ListBoxes("LBox1").Selected(i) = True Then
            Call Listit(X:=i)
        End If
    Next
End Sub

Public Sub Listit(ByVal X As Integer)
    X = X + 3
    With Sheets("Plan1").ChartObjects(1).Chart
        With .SeriesCollection.NewSeries
           .XValues = Range("Q2:U2")
           .Values = Range("Q" & X & ":U" & X & "")
           .Name = Range("P" & X).Value
        End With    
    End With
End Sub
6
Alvi John

これを試して、

Sub temp()
  ActiveSheet.ChartObjects("Chart 1").Activate
  For Each s In ActiveChart.SeriesCollection
      s.Delete
  Next s
End Sub
12
nightcrawler23

Sheets("Plan1").ChartObjects(1).Chart.ChartArea.ClearContentsを使用できます

7
3alster

Excel 2010

ActiveChart.ChartArea.ClearContents
1
Lionel