2010-07-03[n年前へ]
■エクセル 2010のグラフを綺麗にするRubyスクリプトを作る
先日、エクセル2003のグラフを綺麗にするアプリを作りました。しかし、Excel 2010に対して動かしてみると、どうしてもエラーが出てしまうのです。そこで、今日は、Borland C++ Builder 6.0でコードを書くのは止めて、とりあえず、Rubyでエクセル2010のグラフを綺麗にするスクリプトのスケルトンを書いてみました。その実行結果例が下に張り付けたものになります。透明度も調整できますし、近似色が使われることもなく、なかなか良い感じです。
あとは、このスクリプトに機能追加&EXE化を行った上で、色指定などを行うインターフェースから適当にその実行ファイルを読んでやれば良さそうです。そういった辺りは、また後程してみようと思います。
ちなみに、Rubyスクリプトの主要部(を簡単に示したもの)はこのような具合になります。オブジェクトの親子関係が入り混じっている箇所に、少し惑いました(LegendKey経由になっているのも、そんな戸惑いの影響になります)。
excel=WIN32OLE::connect("Excel.Application") chart=excel.ActiveChart legend=chart.Legend count=legend.LegendEntries.Count count.times do |i| entry=legend.LegendEntries(i+1) fill=entry.LegendKey.Format.Fill fill.ForeColor.RGB=255*i/(count-1)+ 0*256+ 255*(count-1-i)/(count-1)* 256*256 fill.Transparency=TRANSPARENCY fill.Solid end
2010-07-04[n年前へ]
■Excel 2010のチャートを綺麗な色で仕上げるアプリ作りました。
というわけで、Excel 2010のチャートを綺麗な色で仕上げるアプリソフトを作ってみました。VBAを使えば簡単な作業でしょうがC++とRubyを使って作ってみました。まずは、GUIラッパーが必要ファイルを作成した上で(RubyスクリプトをEXE化した)コマンドラインアプリケーションを呼び出し、そのコマンドラインアプリケーションがExcel 2010のチャートを操作する、という具合の動き方になっています。作ったアプリケーション ExcelColorChnager2010.exe (および必要ファイル)は、ここにExcelColorChanger2010.zipとして置いておきます。
適当に書いことに加え、Excel 2010 for Windos以外、たとえば、excel 2007で動くのか?といったことは調べていない状態ですが、とりあえず一回手から放してみることにします。
ちなみに、(内部的に使われる)コマンドラインアプリケーションのexcel2010.exeは、
excel2010.exe 0 200 10 0.5などとコマンドラインから実行するなり・呼ぶなりすることで、縦軸最小値・縦軸最大値・縦軸刻み幅・グラフ面の透明度、というようにExcelのアクティブなチャートを設定することができます。