[ruby-list:50193] Re: [質問] Win32OLE Excel ネットワーク上のファイルOpen失敗

From: <yamataka@...08.itscom.net>
Date: 2015-07-02 05:05:31 UTC
List: ruby-list #50193
山口です。

> 成田と申します。
> 
> \は\\と書かなければならないので\\というのは\\\\となるという
> 事はないでしょうか?
> 
> あてずっぽうで申し訳ありませんがご確認いただけないでしょうか。

成田さん、ご教示ありがとうございます。

念の為、環境は、
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]
です。

#! /bin/ruby
# coding: cp932

require 'win32ole'

def getAbsolutePath filename
   fso = WIN32OLE.new('Scripting.FileSystemObject')
   return fso.GetAbsolutePathName(filename)
end

anet_file = getAbsolutePath('\\\\A.B.C.D\yama\tmp\net.xlsx')

excel  = WIN32OLE.new('Excel.Application')
excel.visible = true

net_workbook   = excel.workbooks.open(anet_file)

で、\\\\A.B.C.D のように、指定しましたが、

yama@JPC20156460:/cygdrive/c/Temp$ ./tako.rb
./tako.rb:16:in `method_missing': (in OLE method `open': ) (
WIN32OLERuntimeError)
    OLE error code:FFFFFFFF800A03EC in Microsoft Excel
      ファイル '\\A.B.C.D\yama\tmp\net.xlsx' にアクセスできません。次の
いずれかの理由が考えられます。

• ファイル名またはパスが存在しません。
• ファイルが他のプログラムによって使用されています。
• 保存しようとしているブックと同じ名前のブックが現在開かれています。
    HRESULT error code:0x80020009
      Exception occurred.
        from ./tako.rb:16:in `<main>'

の様に、エラーになってしまいます。

In This Thread