Isso deve cuidar de suas necessidades. Ele também solicita ao usuário, via MsgBox, como precaução contra a exclusão de gráficos / objetos desejados.
Sub delAllChartsInWorkbook() ' ' delchart Macro ' Macro recorded 1/4/2016 by ejbytes ' 'Variables Dim count As Integer Dim LIST As Integer Dim currSheet As Worksheet Dim myChart As ChartObject Dim YesOrNoAnswerToMessageBox As String Dim QuestionToMessageBox As String Dim tmpName As String 'Define Variables count = ActiveWorkbook.Worksheets.count '**************************************************** 'Loop example using a count. * '**************************************************** For LIST = 1 To count MsgBox "This is a loop example. This is Sheet: " _ & ActiveWorkbook.Worksheets(LIST).Name Next LIST '**************************************************** '* Loop example all sheet in this workbook * '* Cycle through each Sheet * '* Nested Loops: * '* * '* Outer Loop * '**************************************************** For Each currSheet In Worksheets MsgBox "Current sheet: " & currSheet.Name '**************************************************** '* Cycle through each Chart Object on current sheet * '* Sheets("Sheet1").ChartObjects * '* * '* Inner Loop * '**************************************************** For Each myChart In currSheet.ChartObjects QuestionToMessageBox = "DELETE chart: '" & myChart.Name & "' ?" YesOrNoAnswerToMessageBox = _ MsgBox(QuestionToMessageBox, vbYesNo, "Yes/No Comment?") If YesOrNoAnswerToMessageBox = vbNo Then MsgBox "Chart: " & myChart.Name & " skipped." Else tmpName = myChart.Name myChart.Delete MsgBox "Chart: " & tmpName & " Deleted!" 'Modify my chart? You can do this too: 'myChart.Chart.ChartType = xlLine End If Next myChart Next End Sub