Колір діаграми з комірок з її даними

Постановка проблеми

Я хотів би, щоб стовпці на гістограмі (або фрагменти на круговій діаграмі тощо) автоматично мали колір, який використовувався для заповнення відповідних клітинок вихідними даними:

Передбачаючи здивовані та обурені вигуки окремих товаришів, слід зазначити, що, звичайно, колір заливки на діаграмі можна змінити і вручну (правий клік по колонці – Формат точки/серії (Формат точки даних/серії) тощо – ніхто не сперечається. Але на практиці буває багато ситуацій, коли це простіше і зручніше зробити прямо в комірках з даними, і тоді діаграма повинна автоматично перефарбовуватися. Спробуйте, наприклад, встановити заповнення за регіонами для стовпців у цій діаграмі:

Я думаю, ви зрозуміли ідею, правда?

рішення

Ніщо, крім макросу, не може цього зробити. Тому відкриваємо Редактор Visual Basic із вкладки розробник (Розробник — редактор Visual Basic) або натисніть комбінацію клавіш Alt + F11, вставте новий порожній модуль через меню Вставка – модуль і скопіюйте туди текст такого макросу, який зробить всю роботу:

Sub SetChartColorsFromDataCells() If TypeName(Selection) <> "ChartArea" Then MsgBox "Сначала выделите диаграмму!" Exit Sub End If Set c = ActiveChart For j = 1 To c.SeriesCollection.Count f = c.SeriesCollection(j).Formula m = Split(f, ",") Set r = Range(m(2)) For i = 1 До r.Cells.Count c.SeriesCollection(j).Points(i).Format.Fill.ForeColor.RGB = _ r.Cells(i).Interior.Color Next i Next j End Sub  

Тепер ви можете закрити Visual Basic і повернутися до Excel. Користуватися створеним макросом дуже просто. Виберіть діаграму (область діаграми, а не область графіка, сітку чи стовпці!):

і запустіть наш макрос за допомогою кнопки Макрос таб розробник (Розробник — Макроси) або за допомогою комбінації клавіш Alt + F8. У цьому ж вікні, у разі частого використання, ви можете призначити макросу комбінацію клавіш за допомогою кнопки параметри (Параметри).

PS

Єдина ложка дьогтю — це неможливість використання подібної функції для випадків, коли колір призначається коміркам вихідних даних за допомогою правил умовного форматування. На жаль, Visual Basic не має вбудованого засобу для читання цих кольорів. Є, звичайно, певні «милиці», але вони працюють не у всіх випадках і не у всіх версіях.

  • Що таке макроси, як ними користуватися, куди вставляти код макросу у Visual Basic
  • Умовне форматування в Excel 2007-2013
  • Що нового в діаграмах в Excel 2013

залишити коментар