石塚ともうします。

たしか、下記のcygwin用の絶対pathの取得を入れるとうまくいくかもしれないです。
http://magazine.rubyist.net/?0004-Win32OLE

この辺りのコードです。

   fso = WIN32OLE.new('Scripting.FileSystemObject')
   net_file = fso.GetAbsolutePathName('\\roswell\share_data\net.xlsx')

また、もしかしたら拙作wrap_excelってgemを使ってみたらうまくいくかもしれないです。
https://github.com/tomiacannondale/wrap_excel
最近私が全くexcelを使ってないので、不確かなのですがこのgemでcygwin用のコードがあるんです。私も以前ハマった記憶があるので、もしかしたら山口さんの問題を解決してくれるかもしれないです。

あやふやな回答ですいません。


2015年6月25日 10:07 <yamataka / u08.itscom.net>:

> 山口と申します。
>
> CYGWIN_NT-6.2 JPC20156460 2.0.4(0.287/5/3) 2015-06-09 12:22 x86_64
> Cygwin
> ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-cygwin]
> の環境で、
> yama@tnt:/cygdrive/c/Temp$ ls /cygdrive/c/Temp/local.xlsx
> /cygdrive/c/Temp/local.xlsx*
> yama@tnt:/cygdrive/c/Temp$ ls '\\roswell\share_data\ net.xlsx'
> \\roswell\share_data\ net.xlsx
>
> の2つの Excel ファイルを、Win32OLE を用いて、ExcelファイルをOpenしようと
> しているのですが、
> ネットワーク上のファイルOpenに失敗します。
>
> #! /bin/ruby
> # coding: cp932
>
> require 'win32ole'
>
> excel  = WIN32OLE.new('Excel.Application')
>
> local_file='C:\Temp\local.xlsx'
> net_file  ='\\roswell\share_data\net.xlsx'
>
> excel.visible = true
>
> local_workbook = excel.workbooks.open(local_file)
> net_workbook   = excel.workbooks.open(net_file)
>
> のスクリプトを実行すると、
> local_workbookは、ExcelのWorkbookが表示されるのですが、
> net_workbook  は、ExcelのWorkbookが、表示されずに、
>
> OLE error code:FFFFFFFF800A03EC in Microsoft Excel
> '\roswell\share_data\net.xlsx' が見つかりません。ファイル名およびファイ
> ルの保存場所が正しいかどうかを確認してください。
>
> 最近使用したファイルの一覧からファイルを開こうとしている場合は、そのファ
> イルの名前が変更されていないこと、移動または削除されていないことを確認し
> てください。
>     HRESULT error code:0x80020009
>       Exception occurred.
>         from ./tako.rb:14:in `<main>'
>
> が、表示されます。
>
> エラーメッセージのネットワーク上の \\roswell ではなく \roswell となって
> いるので、
> net_file  ='\\\roswell\share_data\net.xlsx'
>
> と変更し、実行したところ、
> エラーメッセージは、表示されなくなりましたが、
> '\\roswell\share_data\net.xlsx" を開く事が出来ませんでした。
> とのExcelのダイアログが表示されます。
>
> 解決方法をご存じであれば、ご教示いただけますでしょうか?
> よろしくお願いします。
>
>
>
>