RubyでCOMを使う

はじめに

WindowsでRubyを使うなら、COMを使わないと損です。

私の理解では、COMというのは、Windows上に散らばっているオブジェクト間通信の機構です。 ExcelやIEなどのアプリケーションだけでなく、Excelの中のワークシートやセルもひとつのオブジェクトです。 COMを使うと、Rubyからこれらのオブジェクトを自由に扱うことができます。

単純な例では、ExcelのセルにRubyから文字を書き込むとか、ワークシートを操作するとかができます。 そんなのExcelのVBAでもできるじゃない、というかもしれませんが、VBの貧弱な言語仕様ではストレスたまりまくりです。 Rubyで楽しくCOMプログラミングをしましょう。

WIN32OLE

RubyでCOMを使う時には、WIN32OLEという拡張ライブラリを使います。 こんな感じで使います。

Rubyのスクリプトではこんな風に書きます。

以下の例は、InternetExplorerを起動して、Rubyのホームページを開き、5番目のリンクをクリックするというものです。

  # sample_01.rb
  require 'win32ole'
  ie_obj = WIN32OLE.new("InternetExplorer.Application")
  ie_obj.visible = true
  ie_obj.navigate("http://www.ruby-lang.org/")
  while ie_obj.busy == true
    sleep 0.5
  end
  link_obj = ie_obj.document.links(5)
  p link_obj.innerText
  link_obj.click
  

 


戻る