判断指定文件的临时存盘文件是否存在。
if dir("c:\……\~$abc.doc")<>"" then 
'已经打开
end if

解决方案 »

  1.   

    一个方法是判断是否存在临时文件
    还有一个方法是获取所有已经打开的Word的Instance,然后判断你的文件是否在其中。
      

  2.   

    To:joyplay(想吃老虎的小猪)
    请问如何获取所有已经打开的Word的Instance???
      

  3.   

    Dim objWord ' As Word.Application
      Dim objWindow ' As Word.Window
      On Error GoTo NoWordOpened
      Set objWord = GetObject(, "word.application")
      
      For Each objWindow In objWord.Windows
        Debug.Print objWindow.Document.FullName
      Next
    NoWordOpened:
    '完毕你注意到我注释了变量声明的类型,程序中采用了后期绑定类型的方式,让Automation 自动处理类型。
    如果你在项目文件中引入Microsoft Word Object Library ...我的是10.0版本(OfficeXP,Office 2000是8.0),则可以去掉注释
    GetObject 是一种获取运行中的Class的Instance的方法。
    你也可以用CreateObject("Word.application")或者 new 一个 Word.Application 来创建一个新的Instance(打开一个word),然后在objWord.Windows中你可以得到包括新打开的instance在内的所有word。呵呵,我不知道有没有别的对象可以列举出所有的words。所以用了Word.Application.Windows 这个对象层次,而不是Word.Windows。
    在对InternetExplorer进行同样操作的时候有ShellWindows,Word没见到。
    姑且用上面的方法吧,可以根据需要选择前期绑定或者后期绑定方式。