質問: Dir::pwd puts pwd + "/" + fout book.SaveAs({'filename'=> pwd + "/" + fout}) book.Close(0) excel.Quit()
回答: Ruby + エラーメッセージ で検索すると、 参考URL1 がヒットしました。 内容によってはそれ専用のディレクトリ ( フォルダ ) が必要みたいです。 [ 追記1 ] 失礼。よく読んだらURL先は"Redmine"っていうソフトのプラグイン開発時の問題みたいです。 あくまで可能性として挙げるなら。 ``` 可能性1: パスが間違っている。 ``` ``` 解決方法1: ( 読み込み時のみ ) Rubyで提供されている関数・クラス等で「ファイルがあるか(存在するか)」みたいなチェックをしてこれがtrue (に相当する奴でもいい)が返されるならパスは正しいが別の部分が問題。 もしfalseを返すならそもそもExcelファイルがないとか、別の場所を参照しているとか。 ``` ``` 可能性2: Excelを開こうとした(もしくは既に開いた)が、他のソフトか直接Excelを動かしているとか で使用中の状態なのにアクセスしようとしている ``` ``` 解決方法2: 起動しているExcelを閉じた状態にする。他のExcelを操作するソフトも閉じる ``` ``` 可能性3: 保存時のファイル名が別のファイル名とダブっているために上書き状態になるかなんかで拒否されている状態 ``` ``` 解決方法3: 別のファイルパスにする ``` ``` 可能性4: そもそもお使いのRubyではサポートされていない ( バージョン○○から。みたいな場合もたまにある。 ) ``` ``` 解決方法4: 解決法4-1. 諦めて別の言語にする 解決法4-2. 別の言語と連携をとる ( Java + C++だと JNI とか ) 解決法4-3. 別の言語に任せる ( 別ファイルを起動するやつとかで ) 解決法4-4. Ole以外の方法で、例えばExcelを操作するためのライブラリの導入を検討する ``` これぐらいしか思いつかない... 私としては「不正なファイルパスであるため」か「可能性4」辺りだとにらんでいる。 質問にあるエラーメッセージには「ファイル 'E:\//6EDEC000' にアクセスできません」とあります。 こういうファイルパスなんて見たことがない。ファイル名はともかく、"\//" なんて並びは見たことがない。 もしかするとファイル名が正しくされていない ( 例えば数列状態になっているとか ) とかの理由とか?