2017-03-06 16 views
-1

http://s3.dosya.tc/server11/yvuh7e/v7m_Quadrant.zip.html散布図のドット(シリーズ)の色付けを自動化するにはどうすればよいですか?

私は助けが必要なテーブルを見つけることができます。 「M象限」シートには、グラフとピボットテーブルがあります。また、いくつかの名前を切り替えるコンボボックスもあり、したがってピボットテーブルを変更します。

私が必要とするのは、何とかシリーズの色を自動化するものです。私はシリーズは、古い色に残る新しい名前に変更すると、以下の

X axis positive, Y axis positive = Green 
X axis positive, Y axis negative = Orange 
X axis negative, Y axis positive = Blue 
X axis negative, Y axis negative = Red 

またはこの情報はまた、「M GRAFIK」シートに記録されている

をのcriteriasを経て、私は、色を持っていると思われますNカラムのピボットテーブルのリソースです。

Yeşil = Green, Kırmızı = Red, Mavi = Blue, Turuncu = Orange 

私のボタンとコンボボックスのマクロの下にソリューションを追加したいと思います。だから私はグラフィックを変更するたびに、colorinは再実行する必要があります。

また、ここではスクリーンショット:

enter image description here

よろしく

+0

あなた自身の質問を破棄しないでください。それは許可されていません。それを掲示することによって、あなたは取り替え可能な形でそのコンテンツをスタック交換にライセンスしています。 – Magisch

答えて

1

は、緑、オレンジ、青、赤のためのソースデータへの4つの列を追加します。上記の条件に従って、数式を使用して元のデータ列からデータを取得します。

4つの新しい列を散布図に新しい系列として追加します。各系列をそれぞれのマーカー色にフォーマットします。元のデータ系列を削除します。

2

あなたはSeriesオブジェクトからXおよびY値を取得するために、このような方法を使用し、その後、条件付き各PointFill.ForeColorFill.BackColorにR/G/Bの色を適用することができる:

Sub foo() 

Dim cht As Chart 
Dim srs As Series 
Dim pt As Excel.Point 
Dim x, y 
Dim s As Long 
Dim p As Long 

Set cht = ActiveSheet.ChartObjects(1).Chart '## Modify if needed 

'Loop all series in this chart 
For s = 1 To cht.SeriesCollection.Count 
    Set srs = cht.SeriesCollection(s) 
    'Loop all point in this series 
    For p = 1 To srs.Points.Count 
     'Get the x and y value of this point 
     x = srs.XValues(p) 
     y = srs.Values(p) 
     Set pt = srs.Points(p) 
     pt.Select 
     'assign color based on x and y value 
     '## NOTE: YOU NEED TO SPECIFY THE R/G/B PARAMETERS FOR EACH. 
     Select Case True 
      Case x >= 0 And y >= 0 'Green 
       pt.Format.Fill.ForeColor.RGB = RGB(0, 255, 0) 
       pt.Format.Fill.BackColor.RGB = RGB(0, 255, 0) 
      Case x >= 0 And y < 0 'Orange 
       'pt.Format.Fill.ForeColor.RGB = RGB(,,) 
       'pt.Format.Fill.BackColor.RGB = RGB(,,) 
      Case x < 0 And y >= 0 'Blue 
       'pt.Format.Fill.ForeColor.RGB = RGB(0,0,255) 
       'pt.Format.Fill.BackColor.RGB = RGB(0,0,255) 
      Case x < 0 And y < 0 'Red 
       'pt.Format.Fill.ForeColor.RGB = RGB(255,0,0) 
       'pt.Format.Fill.BackColor.RGB = RGB(255,0,0) 
     End Select 

    Next 
Next 
End Sub 
関連する問題