Sample Visual Basic ProceduresThis example checks to see if Book2.xls in the root directory of drive C is already open. If the file is not already open, the macro will open it.
' Test to see if the file is open.
If IsFileOpen("c:\Book2.xls") Then
' Display a message stating the file in use.
MsgBox "File already in use!"
' Add code here to handle case where file is open by another
' Display a message stating the file is not in use.
MsgBox "File not in use!"
' Open the file in Microsoft Excel.
' Add code here to handle case where file is NOT open by
' another user.
' This function checks to see if a file is open or not. If the file is
' already open, it returns True. If the file is not open, it returns
' False. Otherwise, a run-time error will occur because there is
' some other problem accessing the file.
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.
' Attempt to open the file and lock it.
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.
' Check to see which error occurred.
Select Case errnum
' No error occurred.
' File is NOT already open by another user.
IsFileOpen = False
' Error number for "Permission Denied."
' File is already opened by another user.
IsFileOpen = True
' Another error occurred.
ID d'article : 138621 - Dernière mise à jour : 17 août 2005 - Révision : 1