[ruby-list:50191] Re: [質問] Win32OLE Excel ネットワーク上のファイルOpen失敗
From:
<yamataka@...08.itscom.net>
Date:
2015-07-02 04:48:17 UTC
List:
ruby-list #50191
山口です。
> たしか、下記のcygwin用の絶対pathの取得を入れるとうまくいくかもしれない
です。
> http://magazine.rubyist.net/?0004-Win32OLE
> この辺りのコードです。
> fso = WIN32OLE.new('Scripting.FileSystemObject')
> net_file = fso.GetAbsolutePathName('\\roswell\share_data\net.xlsx')
ご教示ありがとうございます。
#! /bin/ruby
# coding: cp932
require 'win32ole'
def getAbsolutePath filename
fso = WIN32OLE.new('Scripting.FileSystemObject')
return fso.GetAbsolutePathName(filename)
end
alocal_file= getAbsolutePath('C:\Temp\local.xlsx')
anet_file = getAbsolutePath('\\A.B.C.D\yama\tmp\net.xlsx')
excel = WIN32OLE.new('Excel.Application')
excel.visible = true
local_workbook = excel.workbooks.open(alocal_file)
net_workbook = excel.workbooks.open(anet_file)
で、試してみましたが、
anet_file = getAbsolutePath('\\A.B.C.D\yama\tmp\net.xlsx') では、
'C:\A.B.C.D\yama\tmp\net.xlsx' が見つかりません
と表示され、network上のファイルが、ローカルファイルとして取り扱われてい
るエラーメッセージが表示されます。
anet_file = getAbsolutePath('//A.B.C.D/yama/tmp/net.xlsx')
では、# \\A.B.C.D\yama\tmp\net.xlsx' にアクセスできません
と表示され、GetAbsolutePathName を用いても、残念ながら解決に至りませんで
した。