Excel VBAにて別のExcelファイルを開く
現在、ExcelファイルVBAにて別のExcelファイルを開こうとしています。FileSystemオブジェクトを利用してオープンはできるのですが、当然そのファイルをどなたかが利用していると「書き込みできません」とのメッセージが出てきます。これを回避するためにオープンするExcelファイルがすでに誰かに開かれているかを判定できる方法はございませんか?WSHやAPIを利用してもかまいません。以下にロジックを書いておきますので、どうかよろしくお願いいたします。緊急度は大変高いです。
'ErrorFileフォルダ内のエクセルファイルが存在するかを判定
Do Until fs.FileExists(buff) = False
'ErrorFile内のエクセルファイルを取得
Set f = fs.GetFile(buff)
'FileSystemオブジェクトでErrorFile\logフォルダ内の同一名称ファイルが存在するかを判定
If fs.FileExists(f.ParentFolder & "\log\" & f.Name) = True Then
'存在していたら、ファイルを削除 ←この部分で誰かがファイルを開いているとエラー
fs.DeleteFile f.ParentFolder & "\log\" & f.Name
End If
'ErrorFileフォルダ内のファイルをErrorFile\logフォルダに移動
fs.MoveFile f.Path, f.ParentFolder & "\log\" & f.Name
'マクロが動作しているパスにErrorFileフォルダ内のエクセルファイル名をフルパスで取得
buff = ActiveWorkbook.Path & "\ErrorFile\" & Dir("ErrorFile/*.xls", vbSystem)
Loop
どうか、解決策を返信いただければ幸いです。
お礼
本当にありがとうございました。 大変助かりました。