رنگ نمودار از سلول ها با داده های آن

فرمول بندی مسئله

می‌خواهم ستون‌های روی هیستوگرام (یا برش‌های نمودار دایره‌ای و غیره) به‌طور خودکار رنگی را داشته باشند که برای پر کردن سلول‌های مربوطه با داده‌های منبع استفاده شده است:

با پیش بینی گریه های متعجب و خشمگین تک تک رفقا، لازم به ذکر است که البته رنگ پر شده در نمودار را می توان به صورت دستی نیز تغییر داد (روی ستون کلیک راست کنید – فرمت نقطه/سری (فرمت نقطه/سری داده) و غیره - هیچ کس بحث نمی کند. اما در عمل، موقعیت‌های زیادی وجود دارد که انجام این کار به طور مستقیم در سلول‌ها با داده‌ها آسان‌تر و راحت‌تر است و سپس نمودار باید به طور خودکار دوباره رنگ شود. برای مثال، سعی کنید برای ستون‌های این نمودار، پر کردن بر اساس منطقه را تنظیم کنید:

فکر می کنم شما ایده را دریافت کردید، درست است؟

راه حل

هیچ چیز جز ماکرو نمی تواند این کار را انجام دهد. بنابراین، ما باز می کنیم ویرایشگر ویژوال بیسیک از زبانه توسعه دهنده (توسعه دهنده - ویرایشگر ویژوال بیسیک) یا میانبر صفحه کلید را فشار دهید Alt + F11، یک ماژول خالی جدید را از طریق منو وارد کنید درج - ماژول و متن چنین ماکرو را در آنجا کپی کنید، که تمام کارها را انجام می دهد:

Sub SetChartColorsFromDataCells() If TypeName(Selection) <> "ChartArea" سپس MsgBox "Сначала выделите диаграмму!" خروج از پایان فرعی اگر مجموعه c = ActiveChart برای j = 1 به c.SeriesCollection.Count f = c.SeriesCollection(j).Formula m = Split(f, ",") مجموعه r = Range(m(2)) برای i = 1 به r.Cells.Count c.SeriesCollection(j).Points(i).Format.Fill.ForeColor.RGB = _ r.Cells(i).Interior.Color بعدی i بعدی j پایان فرعی  

اکنون می توانید ویژوال بیسیک را ببندید و به اکسل بازگردید. استفاده از ماکرو ایجاد شده بسیار ساده است. نمودار را انتخاب کنید (منطقه نمودار، نه منطقه نمودار، شبکه یا ستون ها!):

و ماکرو خود را با دکمه اجرا کنید ماکرو برگ توسعه دهنده (توسعه دهنده - ماکروها) یا با یک میانبر صفحه کلید Alt + F8. در همان پنجره در صورت استفاده مکرر می توانید با استفاده از دکمه میانبر صفحه کلید را به ماکرو اختصاص دهید پارامترهای (گزینه ها).

PS

تنها مگس موجود در پماد عدم امکان استفاده از یک عملکرد مشابه برای مواردی است که رنگ با استفاده از قوانین قالب بندی مشروط به سلول های داده منبع اختصاص داده می شود. متأسفانه ویژوال بیسیک ابزار داخلی برای خواندن این رنگ ها ندارد. البته "عصا" خاصی وجود دارد، اما آنها برای همه موارد و نه در همه نسخه ها کار می کنند.

  • ماکروها چیست، چگونه از آنها استفاده کنیم، کجا کد ماکرو را در ویژوال بیسیک وارد کنیم
  • قالب بندی شرطی در اکسل 2007-2013
  • آنچه در نمودارها در اکسل 2013 جدید است

پاسخ دهید