Як видалити діаграми за допомогою vba (з прикладами)


Щоб видалити діаграми в Excel, у VBA можна використовувати такі методи:

Спосіб 1. Видаліть усі графічні елементи з активного аркуша

 Sub DeleteActiveSheetCharts()
ActiveSheet.ChartObjects.Delete
End Sub

Цей конкретний макрос видалить усі діаграми з поточного активного аркуша в Excel.

Спосіб 2. Видаліть усі діаграми з усієї книги

 Sub DeleteAllWorkbookCharts()

Dim wk As Worksheet

For Each wk In Worksheets

    If wk.ChartObjects.Count > 0 Then
        wk.ChartObjects.Delete
    End If
    
Next wk

End Sub

Цей конкретний макрос видалить усі діаграми з кожного аркуша всієї книги Excel.

Наступні приклади показують, як використовувати кожен метод на практиці.

Приклад 1: видалення всіх графічних зображень з активного аркуша

Припустимо, у нас є наступний аркуш Excel, що містить дві діаграми:

Ми можемо створити такий макрос, щоб видалити всі діаграми з цього аркуша:

 Sub DeleteActiveSheetCharts()
ActiveSheet.ChartObjects.Delete
End Sub

Коли ми запускаємо цей макрос, ми отримуємо такий результат:

Зауважте, що обидві діаграми видалено з аркуша.

Приклад 2: видаліть усі діаграми з усієї книги

Припустімо, у нашій книзі Excel є інший аркуш, який містить ще дві діаграми:

Ми можемо створити такий макрос, щоб видалити всю графіку з обох аркушів книги:

 Sub DeleteAllWorkbookCharts()

Dim wk As Worksheet

For Each wk In Worksheets

    If wk.ChartObjects.Count > 0 Then
        wk.ChartObjects.Delete
    End If
    
Next wk

End Sub

Після виконання цього макросу вся графіка на обох аркушах буде видалена:

Зауважте, що в цьому прикладі ми видалили лише діаграми з двох аркушів, але цей макрос працюватиме з книгою Excel, яка містить будь-яку кількість аркушів.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання у VBA:

VBA: як видалити рядки на основі значення клітинки
VBA: як видалити аркуш, якщо ім’я містить певний текст
VBA: як видалити файли

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *