Excel用のこのコードがあります。win32ole経由でルビーのパワーポイントを開く
require 'win32ole'
excel = WIN32OLE.new('Excel.Application')
excel.visible = true
workbook = excel.Workbooks.Open('c:\file.xls');
しかし、私はPowerPointで同じことをするのに問題があります。コードのこの作品:
require 'win32ole'
ppt = WIN32OLE.new('Powerpoint.Application')
ppt.visible = true
presentation = ppt.Presentations.Open('c:\file.pptx');
は、このエラーを生成します
filename.rb in `method_missing': (in OLE method `Open':) (WIN32OLERuntimeError)
OLE error code:80004005 in <Unknown>
<No Description>
HRESULT error code:0x80020009
Exception occurred.
Microsoft Support siteは唯一の必須パラメータがファイル名であることを述べています。
私は醜い回避策を見つけた
パワーポイントの古いバージョンを開くことはできますか?あなたの最初の例では.xlsファイル、2番目の例ではpptx(新しい形式)を開いています。 –
C:\ file.pptxが存在しますか?もしそうでなければ私はそのエラーを得る。 – Anodyne
@Marc Talbot、私もファイルをpptに変換しました。ファイルの両方のバージョンは手動で問題なく開かれています –