Microsoft KB Archive/89429

{|
 * width="100%"|

WD: Macro to Determine If File Is Already Open

 * }

Q89429

-

The information in this article applies to:


 * Microsoft Word for Windows, versions 1.0, 1.10, 1.10a, 2.0, 2.0a, 2.0a-CD, 2.0b, 2.0c, 6.0, 6.0a, 6.0c
 * Microsoft Word for Windows NT, version 6.0
 * Microsoft Word for Windows 95, versions 7.0, 7.0a
 * Microsoft Word for the Macintosh, versions 6.0, 6.0.1

-

SUMMARY
The following WordBasic macro uses the Open command to determine if a specified file is already open.

You can use the following macro to avoid opening two versions of a file when you use the WordBasic FileOpen command to open specific files:

  Sub MAIN On Error Goto errors ' Open the document using the Wordbasic &quot;Open&quot; command. ' If the document has a lock on the file an error will ' occur springing the error trap. Open &quot;C:\WINWORD\README.DOC&quot; For Input As #1 Close #1 ' If an error does not occur, no other process ' has the document currently open, so open the ' document in word. FileOpen .Name = &quot;C:\WINWORD\README.DOC&quot; Errors: If err <> 0 then Close #1 If err = 55 Then MsgBox &quot;File Already Open&quot; End If  End Sub

MORE INFORMATION
When using the WordBasic Open For As command, error number 55 will be returned if the file is already open. The macro above traps error number 55 and posts a message if the file is already open. The MsgBox command can be replaced by other WordBasic commands depending on the purpose of the macro. If the specified file (C:\WINWORD\README.DOC) is not open, the WordBasic FileOpen command will open the file.

NOTE: The above macro checks to see if the file is open. The macro will detect that the file is open even if the file is open in an application other than Word for Windows.

Microsoft provides programming examples for illustration only, without warranty either expressed or implied, including, but not limited to, the implied warranties of merchantability and/or fitness for a particular purpose. This article assumes that you are familiar with the programming language being demonstrated and the tools used to create and debug procedures. Microsoft support professionals can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific needs. If you have limited programming experience, you may want to contact a Microsoft Certified Partner or the Microsoft fee-based consulting line at (800) 936-5200. For more information about Microsoft Certified Partners, please see the following page on the World Wide Web:

"http://www.microsoft.com/partner/referral/" For more information about the support options available from Microsoft, please see the following page on the World Wide Web:

"http://support.microsoft.com/directory/overview.asp" For information about how to do this in Word 97, please see the following articles in the Microsoft Knowledge Base:

"Q159345 Word 97: Macro to Determine If File Is Already Open"