win32ole で Excel を使う(4)

ブックをオープンするには以下のようにする。ポイントは、文字列でパスを渡してもダメということ。
FileSystemObject.AbsolutePath 経由で指定してやらないといけない。

excel = WIN32OLE.new('Excel.Application')
fso = WIN32OLE.new('Scripting.FileSystemObject')
book = xl.Workbooks.Open(fso.GetAbsolutePathName("./Book1.xls"))

ブックをクローズするには以下のようにする。

book.close

内容を変更していたら保存する必要があるが、保存するには以下のようにする。

# 上書き保存
book.save

# 名前を付けて保存。ファイル名は fso 経由で取得する
book.saveAs(fso.GetAbsolutePathName("./Book2.xls"))

ブックをクローズしても Excel は起動したままなので、ブックを閉じた後に Excel を終了してやる必要がある。

excel.Quit

なお、変更され保存していないブックを開いたままエクセルを閉じようとすると、終了前に閉じてよいかどうかの確認ダイアログが出る。