Excel マクロのオブジェクトリファレンス
Excel をマクロで操る場合に使うオブジェクトやプロパティのリファレンス。
MSDN Library Japan - Microsoft Excel のオブジェクト
MSDN Library - Excel プライマリ相互運用機能アセンブリ リファレンス
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