- ベストアンサー
Excelのマクロで円グラフの色を指定する方法
- Excelのマクロを使用して、円グラフの色を指定する方法が知りたいです。
- Sheet1にある表のデータを元に作成した円グラフの色を固定するマクロを作成したいです。
- 参考になる情報として、Excelのマクロを使用して円グラフの色を設定する方法が書かれたページがあります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
グラフが置いてあるシートを開く 下記のマクロを実行する。 sub macro1() dim c as chartobject dim o dim s as string dim i as integer for each c in activesheet.chartobjects set o = c.chart.seriescollection(1) s = split(o.formula, ",")(1) for i = 1 To o.points.count o.points(i).interior.color = range(s)(i).interior.color next i next end sub
その他の回答 (1)
- keithin
- ベストアンサー率66% (5278/7941)
>円グラフだけについてこのように色を指定したく for each c in activesheet.chartobjects if c.chart.type = 5 then : :所定の動作を行う : end if next といった具合で調べればいいです。 >グラフを選択している状態でマクロを実行すると 非常に使いにくくなるので、その方法のマクロは回答しませんでした。そのやり方はお勧めしません。 どーしてもというなら、グラフの「どこを」選んでいたとき(あるいはたまたまグラフじゃない何か・何でもが選ばれていた状態でマクロを実行してしまった時)に、マクロは「いま何が選ばれている」と理解しているか、ご自分で調べながら作りこんでみて下さい。
お礼
お返事が遅くなり申し訳ございません。 ご回答いただきありがとうございます。 教えていただいたマクロはまだ実行できていないのですが、 調べながら確認してみようと思います。 選択したグラフで、というのは使いにくくなってしまうんですね。 単純にグラフを指定できるものかと思っていましたが、 いろいろな箇所を選択してみて、マクロがどのように表示されるのか勉強します。 ご親切にありがとうございました。
お礼
早速ご回答いただきありがとうございます。 教えていただいたマクロを実行したところ、グラフが希望の色になりました! ですが、初めの説明不足で申し訳ないのですが、 他のグラフも全てデータシートのセル色になってしまいました。 Sheet1には複数の表を作成しており、それを元に、 Sheet2に複数のグラフがあります。 全て表のセル色になるのなら、表の色の方を修正しようかと思い試してみました。 系列が1種類の円グラフなら、それで問題なくできたのですが、 系列が複数ある集合縦棒グラフや、積み上げ縦棒グラフではうまくいきませんでした。 いくつかのグラフのうち、円グラフだけについてこのように色を指定したく、 可能であれば、グラフを選択している状態でマクロを実行すると、 その選択しているグラフについてのみ同じような結果が得られればと思っております。 難しいようであれば、色を変えたいグラフだけ、一旦別のシートに作成し、 色変更のマクロを実行してから、Sheet2にコピーしたグラフを貼り付ければ よいのかもしれません。 しかし、できれば上記のようなマクロにしたいのですが、それは可能でしょうか。 よろしければ、またご回答いただけると嬉しいです。 よろしくお願いいたします。