hirax.net::inside out::2010年07月03日

最新記事(inside out)へ  |   年と月を指定して記事を読む(クリック!)

2010年6月 を読む << 2010年7月 を読む >> 2010年8月 を読む

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のグラフを綺麗にするRubyスクリプトを作るエクセル 2010のグラフを綺麗にするRubyスクリプトを作る