メインコンテンツへスキップ

Excelでセルの色に基づいてグラフに色を付ける方法は?

通常、グラフを作成するときは、列バーの色がデフォルトです。 次のスクリーンショットのように、セルの色に基づいて各バーの塗りつぶされた色をフォーマットする必要がある場合、Excelでどのように解決できますか?

VBAコードを使用したセルの色に基づいて、XNUMXつまたは複数のデータ系列でグラフに色を付けます

驚くべき機能を備えたセルの色に基づいて、XNUMXつまたは複数のデータシリーズでグラフに色を付ける


VBAコードを使用したセルの色に基づいて、XNUMXつまたは複数のデータ系列でグラフに色を付けます

セルの色に基づいてXNUMXつのデータ系列でグラフに色を付ける

次のVBAコードを使用すると、元のセル値の色に基づいてXNUMXつのデータ系列を含むグラフの色をすばやく変更できます。次のようにしてください。

1。 まず、次のスクリーンショットのように棒グラフまたは縦棒グラフを作成します(データを選択してクリックします) インセット > 列グラフまたは棒グラフを挿入):

2。 を押し続けます Alt + F11 キーを押して アプリケーション向け Microsoft Visual Basic 窓。

3に設定します。 OK をクリックします。 インセット > モジュール、モジュールウィンドウに次のコードを貼り付けます。

VBAコード:セルの色に基づいたXNUMXつのデータ系列のカラーチャートバー:

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

Note:上記のコードでは、 チャート1 使用したいチャート名ですので、ご自身のものに変更してください。

4。 上記のコードを貼り付けた後、を押してください F5 このコードを実行するにはキーを押します。チャートバーの色は元のセルの色に基づいて変更されています。スクリーンショットを参照してください。


セルの色に基づいて複数のデータ系列でグラフに色を付ける

複数のデータ系列を含むグラフの場合は、次のVBAコードを適用してください。

1。 次のスクリーンショットのように、複数のデータ系列を含む棒グラフまたは縦棒グラフを作成してください。

2。 を押し続けます Alt + F11 キーを押して アプリケーション向け Microsoft Visual Basic 窓。

3に設定します。 OK をクリックします。 インセット > モジュール、モジュールウィンドウに次のコードを貼り付けます。

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

4。 次に、 F5 このコードを実行するためのキーを押すと、チャートバーは元のセルの色で一度に塗りつぶされます。スクリーンショットを参照してください。

注意:

1.上記のコードでは、 チャート1 使用したいチャート名ですので、ご自身のものに変更してください。

2.このコードは折れ線グラフにも適用できます。


驚くべき機能を備えたセルの色に基づいて、XNUMXつまたは複数のデータシリーズでグラフに色を付ける

上記のコードを使用すると、チャートの色がセルの色と常に一致するとは限りません。この問題を解決するために、ここでは便利なツールを紹介します- セルの色に応じてグラフの色を変更する of Kutools for Excel、この便利な機能を使用すると、セルの色に基づいてグラフにすばやく簡単に色を付けることができます。

注: これを適用する セルの色に応じてグラフの色を変更する、まず、ダウンロードする必要があります Kutools for Excel、次に機能をすばやく簡単に適用します。

インストールした後 Kutools for Excel、次のようにしてください。

1。 まず、使用したいチャートを挿入し、チャートを選択して、をクリックしてください クツール > チャート > チャートツール > セルの色に応じてグラフの色を変更する、スクリーンショットを参照してください:

2。 次に、プロンプトボックスが表示されます。クリックしてください OK

3。 これで、選択したグラフは、以下のスクリーンショットに示すように、セルの色に基づいて色付けされました。

セルの色に基づいてXNUMXつのデータ系列でグラフに色を付ける

セルの色に基づいて複数のデータ系列でグラフに色を付ける

今すぐExcel用のKutoolsをダウンロードして無料トライアル!


より相対的なチャート記事:

  • Excelで別の棒グラフをオーバーレイする棒グラフを作成する
  • XNUMXつのデータ系列を使用してクラスター化された棒グラフまたは縦棒グラフを作成すると、XNUMXつのデータ系列の棒が並べて表示されます。 ただし、XNUMXつのデータ系列をより明確に比較するために、オーバーレイまたはオーバーラップした棒グラフを使用する必要がある場合があります。 この記事では、Excelでオーバーラップ棒グラフを作成する方法について説明します。
  • ExcelでXNUMXつのグラフ形式を他の形式にコピーする
  • ワークシートに複数の異なるタイプのグラフがあるとすると、必要に応じてXNUMXつのグラフを書式設定し、このグラフの書式設定を他のグラフに適用します。 もちろん、他の人をXNUMXつずつ手動でフォーマットすることもできますが、これは多くの時間を浪費します。ExcelでXNUMXつのチャートフォーマットを他の人にコピーするための迅速または便利な方法はありますか?
  • Excelでステップチャートを作成する
  • ステップチャートは、不規則な間隔で発生した変更を示すために使用されます。これは、折れ線グラフの拡張バージョンです。 ただし、Excelで直接作成する方法はありません。 この記事では、Excelワークシートでステップチャートを段階的に作成する方法について説明します。
  • Excelでプログレスバーチャートを作成する
  • Excelでは、次のスクリーンショットに示すように、進行状況の棒グラフを使用して、ターゲットへの進行状況を監視できます。 しかし、Excelワークシートで進捗棒グラフを作成するにはどうすればよいでしょうか。

最高のオフィス生産性向上ツール

🤖 Kutools AI アシスタント: 以下に基づいてデータ分析に革命をもたらします。 インテリジェントな実行   |  コードを生成  |  カスタム数式の作成  |  データを分析してグラフを生成する  |  Kutools関数を呼び出す...
人気の機能: 重複を検索、強調表示、または識別する   |  空白行を削除する   |  データを失わずに列またはセルを結合する   |   数式なしのラウンド ...
スーパールックアップ: 複数の基準の VLookup    複数の値の VLookup  |   複数のシートにわたる VLookup   |   ファジールックアップ ....
詳細ドロップダウン リスト: ドロップダウンリストを素早く作成する   |  依存関係のドロップダウン リスト   |  複数選択のドロップダウンリスト ....
列マネージャー: 特定の数の列を追加する  |  列の移動  |  Toggle 非表示列の表示ステータス  |  範囲と列の比較 ...
注目の機能: グリッドフォーカス   |  デザインビュー   |   ビッグフォーミュラバー    ワークブックとシートマネージャー   |  リソースライブラリ (自動テキスト)   |  日付ピッカー   |  ワークシートを組み合わせる   |  セルの暗号化/復号化    リストごとにメールを送信する   |  スーパーフィルター   |   特殊フィルター (太字/斜体/取り消し線をフィルター...) ...
上位 15 のツールセット12 テキスト ツール (テキストを追加, 文字を削除する、...)   |   50+ チャート 種類 (ガントチャート、...)   |   40+ 実用的 (誕生日に基づいて年齢を計算する、...)   |   19 挿入 ツール (QRコードを挿入, パスから画像を挿入、...)   |   12 変換 ツール (数字から言葉へ, 通貨の換算、...)   |   7 マージ&スプリット ツール (高度な結合行, 分割セル、...)   |   ... もっと

Kutools for Excel で Excel スキルを強化し、これまでにない効率を体験してください。 Kutools for Excelは、生産性を向上させ、時間を節約するための300以上の高度な機能を提供します。  最も必要な機能を入手するにはここをクリックしてください...

説明


Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
Comments (8)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
For more than 1 Chart:



Sub CellColorsToChart()'Updateby Extendoffice
Dim xChart As Chart
Dim I As Long, J As Long, Y As Long
Dim xRowsOrCols As Long, xSCount As Long Dim xRg As Range, xCell As Range
On Error Resume Next

For Y = 1 To 100Set xChart = ActiveSheet.ChartObjects("Chart "&Y).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 WithNext
Next
End Sub

This comment was minimized by the moderator on the site
If i have more charts in my sheet? do you have another code?
This comment was minimized by the moderator on the site
It is ok. But... why simply not going to "Format Legend Entry" option in every data series in the chart, and go "Fill" and make it the color you want. I mean... all is ok, but a VBA code for this simple task is kinda overkill. But thanks. Appreciate you share it.
This comment was minimized by the moderator on the site
i cant make it work :( is this supposed to work on a stacked bar chart? Thanks
This comment was minimized by the moderator on the site
This was an awesome start, but the colors of the chart and the cells don't always match. Any idea why?
This comment was minimized by the moderator on the site
Thank you for the codes! How would you add a conditional format when the format is already established?
This comment was minimized by the moderator on the site
Thank you for these codes! This was exactly what I've been looking for with one detail not quite fitting. When I ran the code, the bar graphs colored in correctly but not legend which stayed unchanged. Is there a variation to the code that would include the legend? Or is there a way to match the Legend to the changes in the chart without a code?
This comment was minimized by the moderator on the site
If i have more charts in my sheet? do you have another code?
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations