- ベストアンサー
VBAでの共有ファイル操作
- VBAを使用して別のパソコン上の共有ファイルを操作する方法について説明します。
- 共有フォルダ内の同名ファイルを上書きコピーする方法についても説明します。
- 複数のパソコンがアクセスする場合の処理についても考慮しています。
- みんなの回答 (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 関数などの手段を使って、予めファイルが 使用中でないことを確認して条件分岐させた方が良いでしょうね。。
お礼
本とか見ながらやっているのですがこのようなことまでは書いてなかったので助かりました。ありがとうございます。