• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAでの共有ファイル操作)

VBAでの共有ファイル操作

このQ&Aのポイント
  • VBAを使用して別のパソコン上の共有ファイルを操作する方法について説明します。
  • 共有フォルダ内の同名ファイルを上書きコピーする方法についても説明します。
  • 複数のパソコンがアクセスする場合の処理についても考慮しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

こんにちは。 > 別のパソコンが使用している場合は何かメッセージをだし... こんな感じの関数を標準モジュールに作成して、 ' // ファイルが編集可能か調べる Public Function IsFileEditable( _     ByVal FilePath As String _ ) As Boolean   Dim n  As Integer      IsFileEditable = False      If CreateObject("Scripting.FileSystemObject") _     .FileExists(FilePath) = False Then     Exit Function   End If      n = FreeFile()   On Error Resume Next   Open FilePath For Binary Lock Read Write As #n   Close #n   IsFileEditable = CBool(Err.Number = 0)   On Error GoTo 0 End Function 次のように確認すれば良いと思いますよ。   sPath = acpath & "\日記" & TextBox1.Value & ".xls"   If IsFileEditable(sPath) Then     ' MsgBox "編集可能", vbInformation     Workbooks.Open Filename:=sPath   Else     MsgBox "ファイルは使用中です。" & vbLf _        & "しばらくして実行してください", vbCritical     Exit Sub   End If > 「上書きしますか?」みたいなメッセージを表示させずに強制的に > 上書きさせることはできるのでしょうか   Application.DisplayAlerts = False   ’(上書き処理)   Application.DisplayAlerts = True でアラートの表示は停止できます。 ただし、自分以外の誰かが編集中のファイルについて、もし何らかの 手段で無理やり「上書き」できたとしても、ファイルが破損してしまう 可能性が非常に高いです。 先述の IsFileEditable 関数などの手段を使って、予めファイルが 使用中でないことを確認して条件分岐させた方が良いでしょうね。。

takedono
質問者

お礼

本とか見ながらやっているのですがこのようなことまでは書いてなかったので助かりました。ありがとうございます。