Прежде чем открыть файл Word, я хочу проверить, открыт ли этот файл.(Одновременно открыто больше файлов слов) Основная подпрограмма вызывает эту функцию, чтобы сообщить мне, открыта она или нет.
Function FileInWdOpen(DokName As String) As Boolean
Dim wd As Word.Application
Dim wDoc As Word.Document
On Error Resume Next
Set wd = GetObject(, "Word.Application")
On Error GoTo NO_WORD_FOUND
If wd Is Nothing Then
FileInWdOpen = False
End If
For Each wDoc In wd.Documents 'should check for every open word file but doesn't do that
If wDoc.Name = DokName Then 'checks if this file is named like the one I want to check if its open or not
FileInWdOpen = True
Exit Function
End If
Next
FileInWdOpen = False
Exit Function
NO_WORD_FOUND:
FileInWdOpen = False
End Function
Этот код хорошо работает, когда открыт только один файл слов.Если два или более файлов открыты, скрипт не работает.
Проблема в том, что цикл for проверяет только первый открытый файл.
Я не понимаю, почему он не проверяет все открытые файлы.Я думал, что можно получить доступ ко всем документам с:
Dim WordApp As Word.Application 'sets an var for the Word Application
Set WordApp = GetObject(, "Word.Application") 'give the var an obj, in this case the Word Application
Dim WordDoc As Word.Document 'sets an var for the singel Word Documents
For Each WordDoc In WordApp.Documents 'for each Document in Dokuments
'code
Next
Так почему только первый документ привлекает внимание?