1つ以上の引数を取るCOMオブジェクトでメソッドを呼び出そうとすると、最後の引数で次のエラーが発生します。
Could not convert argument 0 for call to Open. (ArgumentError)
引数をとらないメソッドを呼び出すとき、またはプロパティを取得/設定するときは、すべて正常に機能します。上記のエラーを表示するコードは次のとおりです。
def new_com_object(prog_id)
System::Activator.CreateInstance(System::Type.GetTypeFromProgID(prog_id))
end
xls = new_com_object('Excel.Application')
xls.Visible = true
xls.Workbooks.Open('c:\\Book1.xls')