Ruby Office Automation-イベントハンドラーをMSWORDで動作させることはできません

StackOverflow https://stackoverflow.com/questions/3657070

質問

Rubyバージョン1.9.1p430 Office 2010でW7で実行されています。

私はDocumentBeForeCloseイベントをキャッチしようとしていますが、それを機能させることさえできません!

SheetSelectionChangeが処理されるExcelを使用して、いくつかの例に従いました。問題なく動作します。

同じプロセスを使用して、上記のワードイベントを処理したかったのです。

私のコードは、win32ole_event.newステートメントで失敗します。これが私が使用しているものです:

require 'win32ole'

wd = WIN32OLE.connect('Word.Application')
wd.visible = true
doc = wd.Documents.Add

ev = WIN32OLE_EVENT.new(doc, 'ApplicationEvents4')

私が得るエラーは次のとおりです。

ev = WIN32OLE_EVENT.new(doc, 'ApplicationEvents4')
RuntimeError: failed to query IConnectionPoint
    HRESULT error code:0x80040200

私は、シンクの名前の正しいコンテンツを広範囲に見てきました WIN32OLD_EVENT 声明ですが、これは私が思いついた最高のものであり、明らかに間違っています!

誰かが私を正しい方向に向けることができれば、私は最も感謝しています。誰かがRubyの単語イベントを成功して処理したかどうかを聞いてみたいと思います。

役に立ちましたか?

解決

word.applicationに関連する「applicationevents4」のため、win32ole_eventコールでdocオブジェクトの代わりに単語オブジェクトを使用する必要があると思います。

ev = WIN32OLE_EVENT.new(wd, 'ApplicationEvents4')


メッセージループを忘れないでください

loop do
    WIN32OLE_EVENT.message_loop
end
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top