KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Excel でセルの色に基づいてグラフを自動的に着色する方法は?

著者Xiaoyang変更日

Excel で縦棒グラフなどの標準チャートを作成すると、系列やデータポイントにはExcel の既定色が自動的に割り当てられ、その色が元のデータ範囲のセルの塗りつぶし色と一致しないことがあります。しかし、ダッシュボードやレポート、データの視覚化など多くのシナリオでは、チャートの棒をソースセルに適用された色と完全に一致させたい場合があります。これにより、視覚的な一貫性を保ち、データを一目で分かりやすくしたり、色を意味のある手がかりとして活用してカテゴリグループを強調したりできます。たとえば、下図のようにサマリーテーブルで設定したカラーコーディングをチャートの各列に反映させたいこともあるでしょう。ところがExcel には、セルの塗りつぶし色(特に手動で設定されたもの)をチャート要素に自動的にマッピングする直接的な機能が備わっていません。そのため、セルの色が手動で適用されているか、数式や条件付き書式ルールに基づいているかによって、いくつかの異なる対応方法が必要になります。以下では、さまざまなシナリオでこの色の連携を効果的に実現するための実用的な解決策を複数ご紹介します。

セルの色に基づくカラーチャート

VBA コードを使用して、1 つまたは複数のデータ系列を持つチャートをセルの色に基づいて着色する

便利な機能を使用して、1 つまたは複数のデータ系列を持つチャートをセルの色に基づいて着色する


VBA コードを使用して、1 つまたは複数のデータ系列を持つチャートをセルの色に基づいて着色する

1 つのデータ系列を持つチャートをセルの色に基づいて着色する

チャートの棒に該当セルの塗りつぶし色を継承させたい場合、その色が条件付き書式や数式ではなく手動で設定されているのであれば、VBA を使ってチャートの棒の色を元のセルの色と同期できます。この手法は、視覚的な整合性が明確さやレポート基準上特に重要となる単一系列チャートに最適です。

1。まず、データを選択して縦棒グラフを作成します。これを行うには、関連セルを選択し、挿入>縦棒グラフまたは縦棒グラフの挿入をクリックしてください。すると、下図のような既定のチャートが表示されます。

縦棒または横棒グラフを挿入

2ALT + F11キーを押して、Microsoft Visual Basic for Applications (VBA)エディターを開きます。

3挿入 > 標準モジュールを VBA ウィンドウでクリックし、以下のコードをモジュールウィンドウにコピー&ペーストしてください。このスクリプトにより、各チャートの棒グラフが対応するセルの塗りつぶし色に自動的に更新されます。

VBA コード:1 つのデータ系列を持つチャートの棒をセルの色に基づいて着色する:

Sub ColorChartColumnsbyCellColor()
'Updateby Extendoffice
    Dim xChart As Chart
    Dim I As Long, xRows As Long
    Dim xRg As Range, xCell As Range
    On Error Resume Next
    Set xChart = ActiveSheet.ChartObjects("Chart 1").Chart
    If xChart Is Nothing Then Exit Sub
    With xChart.SeriesCollection(1)
        Set xRg = ActiveSheet.Range(Split(Split(.Formula, ",")(1), "!")(1))
        xRows = xRg.Rows.Count
        Set xRg = xRg(1)
        For I = 1 To xRows
            .Points(I).Format.Fill.ForeColor.RGB = ThisWorkbook.Colors(xRg.Offset(I - 1, 0).Interior.ColorIndex)
        Next
    End With
End Sub
注意上記のコードでは、Chart1を実際のチャート名に置き換えてください(チャートを選択した際に「名前」ボックスに表示されます)。後でチャートの名前を変更する場合は、それに応じてマクロも更新してください。)

4。コードを入力したら、F5キーを押してマクロを実行しましょう。すると、チャートの棒がソースセルの塗りつぶし色を即座に反映し、下図のように視覚的に対応するようになります!

セルの色に基づいてグラフを着色するVBAコードを実行

この方法は、セルの塗りつぶし色を手動で設定し、頻繁に手動調整が必要なチャートに最適です。ただし、セルの色を変更した場合は、リンクが動的でないため VBA コードを再度実行する必要がある点にご注意ください。また、コードを保持するには、ブックをマクロ有効ファイル(。xlsm)として保存することをお忘れなく。


複数のデータ系列を持つチャートをセルの色に基づいて着色する

チャートに複数のデータ系列(例:時間の経過に伴う複数の製品や異なるカテゴリなど)が含まれている場合も、同様の VBA アプローチで、各棒グラフのセグメントやデータポイントをそのソースセルの塗りつぶし色にマッピングできます。これにより、レポートの視覚的な整合性が保たれ、閲覧者がワークシートとチャート間でデータを簡単に照合できるようになります。

1。下図のようにデータを設定し、複数系列の縦棒グラフを作成します。

セルの色に基づいて複数のデータ系列を持つグラフを着色

2ALT + F11キーを押して、VBA エディターを開きます。

3。VBA ウィンドウで、挿入 > 標準モジュールをクリックして、以下のコードを貼り付けてください。

VBA コード:複数のデータ系列を持つチャートの棒をセルの色に基づいて着色する:

Sub CellColorsToChart()
'Updateby Extendoffice
    Dim xChart As Chart
    Dim I As Long, J As Long
    Dim xRowsOrCols As Long, xSCount As Long
    Dim xRg As Range, xCell As Range
    On Error Resume Next
    Set xChart = ActiveSheet.ChartObjects("Chart 1").Chart
    If xChart Is Nothing Then Exit Sub
    xSCount = xChart.SeriesCollection.Count
    For I = 1 To xSCount
        J = 1
        With xChart.SeriesCollection(I)
            Set xRg = ActiveSheet.Range(Split(Split(.Formula, ",")(2), "!")(1))
            If xSCount > 4 Then
                xRowsOrCols = xRg.Columns.Count
            Else
                xRowsOrCols = xRg.Rows.Count
            End If
            For Each xCell In xRg
                .Points(J).Format.Fill.ForeColor.RGB = ThisWorkbook.Colors(xCell.Interior.ColorIndex)
                .Points(J).Format.Line.ForeColor.RGB = ThisWorkbook.Colors(xCell.Interior.ColorIndex)
                J = J + 1
            Next
        End With
    Next
End Sub

4F5キーを押してこのコードを実行すると、チャートの系列がデータ範囲内のセルの塗りつぶし色を反映するように更新され、下図のように表示されます。

セルの色に基づいて複数のデータ系列を持つグラフを着色するVBAコードを実行

注記:
  • コード内では、チャートはデフォルトでChart1として参照されています。必要に応じて、実際のチャート名に合わせて調整してください。
  • この方法は、縦棒グラフや横棒グラフはもちろん、折れ線グラフにも対応しています。
  • 問題(更新されない、エラーが発生するなど)が発生した場合は、チャートのデータ系列とセルの色範囲が1 対1 で対応しているかご確認ください。

この手法は、手動で着色されたデータに対して完全な制御と柔軟性を提供しますが、条件付き書式や数式によって自動生成された色には対応していません。そうした状況では、以下に示す数式ベースおよび条件付き書式を活用したソリューションをご参照ください。より動的な選択肢をご提供します。


便利な機能を使用して、1 つまたは複数のデータ系列を持つチャートをセルの色に基づいて着色する

VBA を使えばチャートの色をセルの塗りつぶし色と同期できますが、コードを手動で実行する必要があり、マクロや VBA によるセキュリティプロンプトに不安を感じるユーザーもいるかもしれません。よりスムーズでインタラクティブな方法をお探しであれば、セルの色に基づいてチャートの色を変更します機能がKutools for Excelに搭載されており、効率的なソリューションを提供します。このツールは、チャートにデータ系列が1 つでも複数でも、セルの塗りつぶし色を対応するチャート要素に自動的に適用します。さらに、セルの色を後から更新しても、簡単な再適用操作ですぐにマッピングが反映されます。

Kutools for Excelは300 以上の高度な機能を提供し、複雑な作業を効率化して、創造性と生産性を高めます。AI 機能と統合されたKutools は、正確にタスクを自動化し、データ管理を簡単にします。Kutools for Excel の詳細情報。。。         無料トライアル。。。
ヒント:このセルの色に基づいてチャートの色を変更しますユーティリティを使用するには、まずKutools for Excelをダウンロードしてインストールする必要があります。手順は簡単で、カラーマッピングを大幅に高速化できます。

Kutools for Excelをインストール後、以下の手順に従ってください。

1。着色したいチャートを挿入し、選択します。Kutools>チャート>グラフツール>セルの色に基づいてチャートの色を変更しますへ移動してください(下図参照)。

Kutools の「セルの色に応じてグラフの色を変更」機能をクリック

2。プロンプトが表示されたら、ダイアログボックスで単にOKをクリックします。

プロンプトボックスが表示される

3。チャートはセルの色に即座に合わせて更新され、以下の例のように表示されます。

1 つのデータ系列を持つチャートをセルの色に基づいて着色する
セルの色に基づいて単一のデータ系列を持つグラフを着色

複数のデータ系列を持つチャートをセルの色に基づいて着色する
セルの色に基づいて複数のデータ系列を持つグラフを着色

この機能は、チャートの色を自動的に統一したい方、そしてデータ更新に関わらず再利用可能なソリューションをお探しの方に最適です。手動での書式設定やマクロ実行と比べて大幅な時間短縮を実現し、複数のメンバーがデータやチャートのプレゼンテーションを共同で編集する環境で特に威力を発揮します。

今すぐKutools for Excel をダウンロードして、無料トライアルをお試しください!


関連するチャート記事をさらに見る:

  • Excel で別の縦棒グラフ上に縦棒グラフを作成する
  • 2 つのデータ系列で集合縦棒グラフまたは通常の縦棒グラフを作成すると、各系列の棒が並んで表示されます。ただし、より明確に2 つのデータ系列を比較したい場合には、棒を重ね合わせた(オーバーレイ)縦棒グラフが有効です。本記事では、Excel で重複した縦棒グラフを作成する方法をご紹介します。
  • Excel で1 つのグラフの書式を他のグラフにコピーする
  • ワークシート内に複数の異なる種類のグラフがあり、そのうち1 つを希望通りに書式設定した後、その書式を他のグラフにも適用したいことはよくあります。もちろん、手動で1 つずつ書式を設定することもできますが、非常に時間がかかります。Excel で1 つのグラフの書式を他のグラフにすばやく簡単にコピーする方法はあるでしょうか?
  • Excel でステップチャートを作成する
  • ステップチャートは、不規則な間隔で発生する変化を可視化するための折れ線グラフの拡張版です。しかし、Excel にはこれを直接作成する機能が備わっていません。本記事では、Excel ワークシートでステップチャートを段階的に作成する方法を詳しく解説します。
  • Excel で進捗バーチャートを作成する
  • Excel では、下図のように進捗バーチャートを使って目標に対する進捗状況を簡単に監視できます。しかし、Excel ワークシートで進捗バーチャートを作成するにはどうすればよいでしょうか?

最高の Office 業務効率化ツール

🤖KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行     コード生成  カスタム数式作成    データ分析とチャート生成  拡張機能呼び出し
人気の機能検索・ハイライト、または重複をマーキング     空白行を削除する     データを失うことなく列の結合またはセルを     数式を使用しない四捨五入...
スーパー LOOKUP複数条件 VLookup    複数値 VLookup     複数シート間 VLookup      ファジーマッチ....
高度なドロップダウンリストドロップダウンリストをすばやく作成     連動型ドロップダウンリスト     複数選択可能なドロップダウンリスト....
列マネージャー指定した数の列を追加列の移動非表示列の表示状態を切り替え範囲および列の比較...
注目の機能グリッドフォーカス     デザインビュー   強化された数式バー    ワークブックとシートマネージャー     リソースライブラリ(オートテキスト)  日付ピッカー     ワークシートの統合    暗号化/セルの復号化    リストからメール送信     スーパーフィルター      特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。
トップ15 ツールセット12 テキストツールテキストの追加特定の文字を削除、...)   50+チャートタイプガントチャート、...)   40+実用的関数誕生日に基づいて年齢を計算します、...)   19 挿入ツールQR コードを挿入パスから画像を挿入、...)   12 変換ツール単語に変換する為替レートの変換、...)   7 結合と分割ツール高度な行のマージセルの分割、...)さらに多数
Kutools はお好みの言語でご利用いただけます。英語、スペイン語、ドイツ語、フランス語、中国語、および40+の他の言語をサポートしています!

Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。


Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします

  • Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
  • 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
  • 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!

すべてのKutools アドインが、たった1 つのインストーラーで完結。

Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。

ExcelWordOutlookTabsPowerPoint
  • オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
  • インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
  • 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
  • 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
  • 最高のお得感— 個別アドイン購入よりお得