サーバ又は、共有環境にて共有ファイルが使用されているかどうか?確認VBA
職場に於いて、Excelファイルを共有する事は常識的にあると思います。
そこで、自動化を行って行く上で、ファイルの更新を行わなければならない事があるかと思います。そんな時、他の人が、ファイルを使用していると、処理が、エラーを起こしたり、保存ができなかったりします。
今回は、そんな時の為のサンプルを紹介したいと思います。
ファイルが使用されていれば、処理を行わず中止 使用されていなければ、処理をする。
といったサンプルを共有したいと思います。
早速VBAから
If IsFileOpen(“\\〇\〇\〇.xlsx”) Then
‘ Display a message stating the file in use.
MsgBox “使用中の為作業を中断します!”
Else
MsgBox “使用中ではない!”
End If
End Sub
Function IsFileOpen(filename As String)
Dim filenum As Integer, errnum As Integer
On Error Resume Next ‘ Turn error checking off.
filenum = FreeFile() ‘ Get a free file number.
Open filename For Input Lock Read As #filenum
Close filenum ‘ Close the file.
errnum = Err ‘ Save the error number that occurred.
On Error GoTo 0 ‘ Turn error checking back on.
Select Case errnum
Case 0
IsFileOpen = False
Case 70
IsFileOpen = True
Case Else
Error errnum
End Select
End Function
処理実行
使用していない場合
使用している場合
こんな感じになります。
まとめ
共同作業に於いては、知っていて問題ないVBAだと思います。
私の場合、バッチ処理用Excelにてよく使います。
これをやっていないとバッチファイルが処理できなく、迷惑をかける事が多々ありました。
是非活用してみて下さい.