Ruby による Win32OLE プログラミング - 開発環境の設定
Ruby による Win32OLE プログラミング -
開発環境の設定
Win32OLE モジュールの設定
まず,Win32OLE モジュールの最新版を助田さんのサイトからダウンロードしてください.cygwin 用はバイナリが提供されていますが,mswin32 版 Ruby を使っている方は,別途 VC++ などでコンパイルする必要があります.
Win32OLE モジュールをインストールした後,実際に Win32OLE が動くかどうか確かめてみましょう.Win32OLE のバージョンを確認するプログラムは,次のようになります(win32ole-ver.rb).
require 'win32ole' puts WIN32OLE::VERSION
このように,require 'win32ole' で Win32OLE モジュールをロードします.このプログラムの実行結果は,次のようになります.
prompt> ruby win32ole-ver.rb 0.1.2
この記事を書いている時点の最新バージョンは 0.1.2 です.
Visual Basic Editor の設定
Win32OLE プログラミングをするには,扱う OLE オブジェクトについてメソッドやプロパティの知識が必要になります.そのためのリファレンスとして活用できるのが Visual Basic Editor(VBE) です.Win32OLE プログラミングでは,この環境が必須です.
VBE は,Excel や Word など 各 Office 製品に付属しています.Ruby で Excel のプログラミングをしたい場合は Excel の VBE,Word のプログラミングをしたい場合は Word の VBE を立ち上げましょう.それ以外の OLE オブジェクトについてはどちらでもかまいませんが,少しだけ設定が必要になります(後述).下の図は, Excel の VBE です.
右下にイミディエイトウィンドウがあります.ここに Visual Basic コードを書き込んで実際に OLE オブジェクトの動作を確かめることができます.例えばイミディエイトウィンドウで
ActiveSheet.Cells(1,1).Value = "Ruby"
と書き込めば現在アクティブになっているシートの一番左上のセルに Ruby という文字が代入されます.
また,ヘルプ機能も充実しています.Cells とは何か知りたいときは,イミディエイトウィンドウで Cells のところにカーソルを持っていき, F1 キーを押せば Cells プロパティのヘルプが表示されます(もしヘルプが表示されない場合は,Excel の Visual Basic ヘルプがインストールされていません.すぐにインストールしましょう).なお Msxml など,ライブラリによってはヘルプが提供されていないこともありますので注意してください.
画面サイズが大きいモニタをお持ちの方で Excel プログラミングをしようという人は,画面上半部に 通常の Excel 画面,下半部に VBE を表示していると,イミディエイトウィンドウの結果がすぐ確認できて便利です.そうでない方は,ショートカットキー:Alt-F11 でエクセル画面と VBE 画面を切り替えましょう.
イミディエイトウィンドウで,オブジェクトのプロパティ値や計算結果等を知りたいときは Debug.Print 文を使います.例えば,現在開いている Excel ブックのワークシートの個数を知りたい場合
Debug.Print ThisWorkbook.Worksheets.Count
と入力しリターンキーを押せばすぐに答えを知ることができます.
オブジェクトブラウザ
VBE の中で もっともよく使うのがオブジェクトブラウザです(下図). オブジェクトブラウザを使えば,どんなクラスがあり,そのクラスはどんなメソッドとプロパティを持っているのかが一目でわかります.
オブジェクトブラウザは,VBEの「表示(V) - オブジェクトブラウザ(O)」メニューを選択すると表示されます.また,オブジェクトブラウザでクラスやメソッドを選択してから F1 キーを押すとヘルプが表示されます(ヘルプが用意されているものについてのみ).
オブジェクトブラウザの一番左上にあるコンボボックスで表示するライブラリを一つに限定できます.Excel プログラミングの場合は,普段 Excel ライブラリだけを表示しておく方が使いやすいでしょう.
ライブラリの参照設定
オブジェクトブラウザにデフォルトでは表示されないライブラリがあります.この場合は,ライブラリを参照設定する必要があります.参照設定するには,「ツール(T) - 参照設定...(R)」メニューを選択します.
上図は,Internet Explorer 5 に付属する Msxml ライブラリ (Microsoft 製 XML-DOM ライブラリ) を選択したところです.参照設定ダイアログで必要なライブラリをチェックしてください.
マクロの記録の活用
Excel や Word プログラミングでは,マクロの記録を使って自動生成される Visual Basic プログラムから必要な情報を得ることができます.Visual Basic で書かれたプログラムを Ruby に翻訳すればオブジェクトブラウザでクラスを検索する手間が省けます.マクロの詳しい説明は,VBE 等のヘルプを参考にしてください.