VBAで削除しようとしているセルの範囲に2つのグラフがあります。チャートを削除するのではなく、何もせずに何度も繰り返します。これはこれまで私が試したことです。しかし範囲からグラフを削除する
For Each ChartObjects In Range(Cells(i + 3, 12), Cells(i + 19, 50))
ChartObjects.Delete
Next ChartObjects
VBAで削除しようとしているセルの範囲に2つのグラフがあります。チャートを削除するのではなく、何もせずに何度も繰り返します。これはこれまで私が試したことです。しかし範囲からグラフを削除する
For Each ChartObjects In Range(Cells(i + 3, 12), Cells(i + 19, 50))
ChartObjects.Delete
Next ChartObjects
あなたはチャートの左上隅の下のセルを範囲内にあるかどうかを確認するためにChartObjectにのTopLeftCellプロパティを使用することができます...
Dim oChrtObj As ChartObject
For Each oChrtObj In ActiveSheet.ChartObjects
If Not Application.Intersect(oChrtObj.TopLeftCell, _
Range(Cells(i + 3, 12), Cells(i + 19, 50))) Is Nothing Then
oChrtObj.Delete
End If
Next oChrtObj
注意、あなたもできます1行ですべてのグラフを削除してください...
activesheet.chartobjects.delete
Cleverを削除することができます。 ChartObjectだけがあるたびに「s」を追加しなければなりませんでした。 –
実際には、わかりやすくするためにChartObjectはデータ型なので、For Eachコントロール変数の名前はChartObjectという名前とは異なるはずです。だから私はそれに応じてコードを修正した。 – Domenic
ChartObjectをRangeオブジェクトに割り当てることはできません。 'ChartArea.Top'や' ChartArea.Left'や 'ChartArea.Width'がその範囲の座標と同じ座標内にあれば、チェックのようなことをする必要があります。あるいは、チャートのために何らかのタイプの動的ネーミングを使用し、 'Chart.Name'プロパティをチェックして –