Check Whether an Excel File Is Open on a Network : Windows Resources « Windows API « VBA / Excel / Access / Word






Check Whether an Excel File Is Open on a Network

 
Private Declare Function lOpen Lib "kernel32" Alias "_lopen" (ByVal lpPathName As String, ByVal iReadWrite As Long) As Long
Private Declare Function lClose Lib "kernel32" Alias "_lclose" (ByVal hFile As Long) As Long
Private Const OF_SHARE_EXCLUSIVE = &H10
Private Function FileIsOpen(strFullPath_FileName As String) As Boolean
    Dim hdlFile As Long
    Dim lastErr As Long
    hdlFile = -1
    hdlFile = lOpen(strFullPath_FileName, OF_SHARE_EXCLUSIVE)
    If hdlFile = -1 Then
        lastErr = Err.LastDllError
    Else
        lClose (hdlFile)
    End If
    FileIsOpen = (hdlFile = -1) And (lastErr = 32)
End Function
Sub CheckFileOpen()
    If FileIsOpen("C:\C.xlsx") Then
        MsgBox "File is open"
    
    Else
        MsgBox "File is not open"
    End If
    
End Sub

 








Related examples in the same category

1.Clipping and Unclipping the Cursor
2.The FindWindow() function finds the first top-level window in the window list that satisfies the specified arguments.
3.Custom About Dialog
4.Disable the X for Closing a Userform
5.Check mouse button
6.Returns the Windows directory
7.Get execuatable file name from a given file name
8.Get screen width and height
9.Get window's rectangle
10.Find window by class name
11.Show Excel Window Size
12.Get color depth
13.Get DC and release it
14.Get user name
15.Get the computer name
16.Freeze a window
17.Change the Excel icon