2009-05-08 4 views
1

Ruby를 사용하여 10^1000 가지의 스크립팅 Excel 예제를 찾을 수 있습니다.하지만 Ruby를 Excel에서 이벤트에 반응시키는 방법을 이해할 수는 없습니다. 내가 선택한 때 워크 시트에서 행의 내용을 검색하는 노력하고있어,하지만 그런 이벤트 기반 검색 내가 어떤 방법이나 예제를 찾을 수 없습니다.루비에서 Excel 이벤트에 반응하는 방법?

답변

1

사용 후는 OLE 이벤트 객체를 생성 방법의 ON_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 

희망.

관련 문제