WD: Macro to Determine If File Is Already Open

ID: Q89429

The information in this article applies to:

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 "Open" command.
      ' If the document has a lock on the file an error will
      ' occur springing the error trap.
      Open "C:\WINWORD\README.DOC" 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 = "C:\WINWORD\README.DOC"
   Errors:
      If err <> 0 then
         Close #1
         If err = 55 Then MsgBox "File Already Open"
      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 the Microsoft fee-based consulting line at (800) 936-5200. For more information about the support options available from Microsoft, please see the following page on the World Wide Web:

   http://www.microsoft.com/supportnet/refguide/ 

For information about how to do this in Word 97, please see the following articles in the Microsoft Knowledge Base:

   ARTICLE-ID: Q159345
   TITLE     : Word 97: Macro to Determine If File Is Already Open

REFERENCES

"Using WordBasic," by WexTech Systems and Microsoft, page 263

Additional query words: files fileopen read document

Keywords          : kbmacro wordnt kbmacroexample winword ntword macword word6 winword2 word7 word95 
Version           : WINDOWS:1.0,1.1,1.1a,2.0,2.0a,2.0a- CD,2.0b,2.0c,6.0,6.0a,6.0c,7.0,7.0a; MACINTOSH:6.0,6.0.1,6.0.1a
Platform          : MACINTOSH Win95 WINDOWS winnt
Issue type        : kbhowto

Last Reviewed: April 9, 1999