conundrum様

先ほどの追加です。
>  私も begin - ensure - end を使ったのですが、強制終了した場合には、
> EXCEL.exeが残ってしまいます。結局は、プログラムで終了しなければならないよ
う
> です。本来は、不用意に終了した場合に、実行すると理解していましたが、必ずし
> も真でないと思いました。間違いでしょうか。

このことを確認するスクリプトを作成しました。実行中に強制終了した場合に、
begin - ensure - end を利用しても、EXCEL.exeが残ることは確認しました。これに
は、はっきりした理由があると思いますが、如何でしょうか。

require 'win32ole'
excelfile="C:\\file.xls"
begin
  xl = WIN32OLE.new('Excel.Application')
  book = xl.Workbooks.Open(excelfile)
  sheet=book.Worksheets(1)
  arr= sheet.UsedRange.Rows.Columns.Value
ensure
  book.Close
  xl.Quit
end

while 1
  p arr
end
===========
yahata