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