プロが教えるわが家の防犯対策術!

以下、お助けいただけたら幸いです!!
バブルチャートの色を変えるマクロに悩んでおります。
具体的にコードをどうしたらいいのか 歯が立ちません。

■どんなマクロを作成したいのか?
 →既に作ってあるバブルグラフの”グラフの色を変える”マクロ
【元データ表】
A列:県名、B列:X値、C列:Y値、D列:バブルの大きさの値
【既にあるグラフ】
 データ系列:列
 X値:B2:B85、Y値:C2:C85
 サイズ:D2:D85
★今回は”85”ですが 範囲はそれ以上それ以下のときもあります

■問題点
データ数は80個以上。
→★エクセルの色は56色なので56個超えるとエラーになる
→★色番号をバブルのカウントと対応させ1から指定すると黒など原色が出てしまう。淡い色にしたい

■変えたい点:
 色番号20番~50番まえを繰り返し使いたい

A 回答 (1件)

アルゴリズムが思いつかないだけと見受けましたので、あえて説明無しのコードだけで。


(全角スペースは半角に変換ください)
Sub PntClr()
Dim l As Long
Dim NoPnt As Integer
Dim CI As Integer
  Application.ScreenUpdating = False
  l = 1
  CI = 20
  With ActiveChart.SeriesCollection(1)
  NoPnt = .Points.Count
    Do While l < NoPnt
      If CI = 50 Then CI = 20
      .Points(l).Interior.ColorIndex = CI
      l = l + 1
      CI = CI + 1
    Loop
  End With  
  Application.ScreenUpdating = True
End Sub
    • good
    • 0
この回答へのお礼

そのものです!! できました
厚かましい質問にご丁寧な回答 本当に助かりました!!
具体的に自分が書いていたコードを書かずに申し訳ございません。

考えたのですがどうしてもわからなかったのです。

項目のラベル、判例を無くす、
など自分なりにコードを書いたのですが色となるとはたしてどう反映させたらいいのか行き詰まりました。
そうです 
構文の基は”Do While”なのだ、
という初心者ではあっても
その見当はついたのですが どうやってやるのかがわからなかった

If CI = 50 Then CI = 20
      .Points(l).Interior.ColorIndex = CI
      l = l + 1
      CI = CI + 1
ここが特に勉強になりました。
なるほどです。

お礼日時:2007/05/29 20:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!