2010-07-02[n年前へ]
■エクセル2003(以前のバージョンも?)のグラフを綺麗にするアプリを作りました。
(既存のアドインやカスタマイズ方法の自由度や品質に満足できなかったので)Windows版 Excel 2003(以前のバージョンも?)のグラフを綺麗にするアプリを作ってみました。VBAを使えばもっと簡単に書けるのだろうなぁ、と思いつつC++で組んでしまいました。動作の仕組みは、エクセルのブックが保持しているカラーパレットの空き領域に対して、チャートで使う色を(それぞれのインデックスに対して)割り当てて、チャートの各領域の色にインデックスカラーを指定する、という具合です。そのような動作なので、近似色が使われることによる不自然さなどが生じることはありません。とても滑らかな綺麗なチャートを、Excelで一瞬で作り上げることができます。
作ってみたアルファ版を、ここ(ExcelColorChanger2003.zip)に置いておきます。(Excel 2007,2010では動かないと思いますが、)もしも、Excel 2000などで動くことを確認した方がいらっしゃいましたら、教えて頂ければ幸いです。ソースコードなどは、いずれ公開する予定です。
このアプリケーションを使うと、開かれているエクセルの中のチャート(複数のチャートがあれば、一番最初に作成したもの)を、等高面グラフや濃度グラフを、スペクトルカラー風にしてみたり、炎風の色表現にしてみたり、青→赤の色表現にしてみたり、と色々なことができます。…あるいは、Bitmapファイルを適当に作ってやれば、左端がグラフ中の下端の色として扱われ、一番右端の色が上端の色として使われたグラフに変えることができます。つまり、自由自在にチャートの色を簡単にカスタマイズすることができます。しかも、縦軸の最大・最小・分割幅なども設定することができるようになっています。
そのサンプル画面が下になります。上段の3つが、このアプリケーションが標準で備えているグラデーションパターンで、左下がExcelの標準そのままで作ったものになります。ちなみに、右下が、今回作ったアプリケーションです。
ちなみに、今回作成したアプリケーションでは、チャートの縦軸分割数が24個以上あるものに関しては、24個までしか処理を行わないようになっています。Excel2003, 2007向けバージョンについては、今夜にでも、また別途作ってみようと考えています。
綺麗な(チャート向け)グラデーション用画像を作成した方がいらっしゃれば、送付して頂ければ幸いです。また、何か追加機能などありましたら、教えて頂ければうれしく思います。