共有ファイルが使用されているか?確認VBA

サーバ又は、共有環境にて共有ファイルが使用されているかどうか?確認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にてよく使います。

これをやっていないとバッチファイルが処理できなく、迷惑をかける事が多々ありました。

是非活用してみて下さい.

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です