2009-05-08 6 views
1

Rubyを使ってExcelのスクリプト例を10^1000個見つけることはできますが、ExcelでイベントにRubyを反応させる方法がわかりません。選択されたときにワークシートの行の内容を取得しようとしていますが、このようなイベントベースの検索では、メソッドや例が見つかりません。RubyでExcelのイベントに反応する方法は?

答えて

1

はそのON_EVENTメソッドを呼び出して、OLE Eventオブジェクトを作成するためにWIN32OLE_EVENT.newメソッドを使用します。 WIN32OLE_EVENT.message_loopメソッドを呼び出して、イベント監視ループを起動します。ここで

は、ブックを保存する前に、イベントの監視を停止し、その後、選択した範囲の値を出力例を示します

require 'win32ole' 

def exit_event_loop 
    $LOOP = false 
end 

xl = WIN32OLE.connect('Excel.Application') 
wb = xl.ActiveWorkbook 

ev = WIN32OLE_EVENT.new(wb, 'WorkbookEvents') 
ev.on_event('SheetSelectionChange') do 
    range = xl.Selection 
    puts(range.Value) 
    STDOUT.flush 
end 

ev.on_event('BeforeSave') do 
    exit_event_loop 
end 

$LOOP = true 
while $LOOP 
    WIN32OLE_EVENT.message_loop 
    sleep 0.1 
end 

お役に立てば幸いです。

関連する問題