2011-10-24 16 views
2

Excelグラフから空の系列をすべて削除しようとしています。空のグラフをグラフから削除する(VBAを使用)

Dim isEmptySeries As Boolean 
    For Series = 1 To .SeriesCollection.count 
     .SeriesCollection(Series).ApplyDataLabels Type:=xlDataLabelsShowValue, AutoText:=True, LegendKey:=False 
     isEmptySeries = True 

     For i = 1 To .SeriesCollection(Series).points.count 
      If .SeriesCollection(Series).points(i).DataLabel.Text = 0 Then 
       .SeriesCollection(Series).points(i).HasDataLabel = False 
      Else 
       isEmptySeries = False 
       .SeriesCollection(Series).points(i).DataLabel.Font.Size = 17 
      End If 
     Next i 

     If isEmptySeries Then 
       .SeriesCollection(Series).Delete 
     End If 
    Next Datenreihe 

このスクリプトは、ApplyDatalabels行で失敗します(「オブジェクトグラフのメソッド系列の収集に失敗しました」)。 シリーズの1つが削除されると、Excelがシリーズインデックスをシフトすると思いますか?それは事実ですか?それは私がエラーのために持っている唯一の説明です。

他にどのようにシリーズをループして空のものを削除すればよいですか?状況のこれらの種類で

答えて

5

.Deleteがうまく行わ

+0

+1を通じてループさせるためにはまだアイテムには影響しませんそのように逆の順序で

For i = .SeriesCollection(Series).points.count To 1 Step -1 

をループしてみてください。 – brettdj

関連する問題