hirax.net::Keywords::「OLE」のブログ



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スクリプトを作る






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のアクティブなチャートを設定することができます。

Excel 2010のチャートを綺麗な色で仕上げるアプリ仕立てました。■Excel 2010のチャートを綺麗な色で仕上げるアプリ仕立てました。








■Powered by yagm.net