win32ole で Excel を使う

ruby の添付ライブラリ win32ole を使うと、ruby からwindows アプリが操れる。


例えば、Excel を開いて指定したセルに文字列をセットする場合には以下のようにする。

require 'win32ole'

xl = WIN32OLE.new('Excel.Application')
fso = WIN32OLE.new('Scripting.FileSystemObject')
book = xl.Workbooks.Open(fso.GetAbsolutePathName("./Book1.xls"))

begin
  sheet = book.Worksheets(1)
  sheet.Cells.Item(2, "B").Value = "ABCDEFG"
ensure
  book.Close
  xl.Quit
end

この例だと VBマクロで書くのもたいして変わりは無いけど、本格的なスクリプトを書くなら大分変わる。
ブロックも使えるし、モジュールを定義してオブジェクトを拡張することも可能。こうなるとVBマクロで書くよりずっと楽だろう。


メソッドやオブジェクトはVBマクロから使う場合と同じ。大文字小文字は判別してないようだ。
オブジェクトに対してどんなメソッドやプロパティがあるのかを調べるには以下のようにする。

  sheet.ole_methods

もっと詳しく知りたい人は、Rubyist Magazine に良くまとまった記事があるのでそちらをどうぞ。
Rubyist Magazine - Win32OLE 活用法 【第 2 回】 Excel