イベントインターフェースを取得する

このようなイベントの インタフェース名を調べるには一種のノウハウが必要です。
イベントのインタフェース名を調べる方法について ruby-list:39137 で、arton さんが書かれた方法が非常に参考になります。簡単な方法は助田さんが作成された Simple OLE Browser や Python Object Browser を用いることでしょう。

MSDNを調べろって言われても慣れてないとなかなか正解にたどり着かないのがMSDN。オンラインだとストレスがたまりやすくてあきらめることが多いのよね。ということで、作ってみた。

require 'win32ole'

tl = 'Microsoft Excel 9.0 Object Library'

ole_classes = WIN32OLE_TYPE.ole_classes(tl)
ole_classes.each do |c|
  begin
    methods = WIN32OLE_TYPE.new(tl, c.to_s).ole_methods
    methods.each do |m|
      p [c, m.event_interface, m] if m.event?
    end
  rescue
  end
end

tlのところは各自環境に合わせて適当に。

追記:http://msdn.microsoft.com/library/en-us/dno2kta/html/offaut.asp

以下、実行結果

続きを読む