Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.09.2009, 11:14   #1
#32
Пользователь
 
Аватар для #32
 
Регистрация: 03.09.2009
Сообщений: 11
По умолчанию Как узнать, открыт ли файл?

Доброго времени суток всем
Нужно узнать, открыт ли на данный момент файл "учёт.xls"
Какими средствами, подскажите plz
#32 вне форума Ответить с цитированием
Старый 16.09.2009, 11:21   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Можно, например, так:
Код:
Dim f As Workbook: On Error Resume Next: Set f = Workbooks("учет.xls")
If Err = 0 Then MsgBox "Файл учет.xls открыт." Else MsgBox "Файл учет.xls не открыт."
On Error GoTo 0
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 16.09.2009, 11:31   #3
#32
Пользователь
 
Аватар для #32
 
Регистрация: 03.09.2009
Сообщений: 11
По умолчанию

спасибо, работаем!!
#32 вне форума Ответить с цитированием
Старый 29.10.2009, 11:10   #4
hackPNZ
Пользователь
 
Регистрация: 14.10.2009
Сообщений: 29
По умолчанию

А как узнать из макроса Excel, открыт ли определенный файл Word? "file.doc", скажем.
hackPNZ вне форума Ответить с цитированием
Старый 29.10.2009, 11:47   #5
hackPNZ
Пользователь
 
Регистрация: 14.10.2009
Сообщений: 29
По умолчанию

Я пытаюсь делать это вот так, скажем
Код:
    Dim mdoc As Object
    Set mdoc = GetObject(, "Word.Application")
    On Error Resume Next
    If mdoc.Documents("file.doc") Is Nothing Then
        MsgBox "Файл закрыт!"
    Else
        MsgBox "Файл открыт!"
    End If
    On Error GoTo 0
Толку мало... Как только не пробовал, не получается(((

PS: Код, представленнный выше, находится в экселевском файле. Оттуда надо посмотреть, открыт документ или нет.

PPS: проблема в том, что макрос не видит открытый документ, всегда говорит что он закрыт.

Последний раз редактировалось hackPNZ; 29.10.2009 в 12:00.
hackPNZ вне форума Ответить с цитированием
Старый 30.10.2009, 12:04   #6
hackPNZ
Пользователь
 
Регистрация: 14.10.2009
Сообщений: 29
По умолчанию

Фухх... Решил проблему вот таким образом:
Код:
    
    fActName = "Акт.doc"
    st = ThisWorkbook.Path & "\" & fActName

    On Error Resume Next
    Set wrd = GetObject(, "Word.Application")
    
    'проверяем открыт ли файл.
    If wrd.Documents(fActName) Is Nothing Then

        Set wrd = CreateObject("Word.Application")
        wrd.Documents.Add(st).Activate
        wrd.Visible = True
        Set wrd = wrd.ActiveDocument

    Else
        Set wrd = wrd.Documents(fActName)
    End If
    On Error GoTo 0
hackPNZ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как узнать файл загружаемой программы ? juan666777 Общие вопросы Delphi 9 18.03.2009 17:51
Как узнать из адреса файл это или папка? Anfall Общие вопросы Delphi 12 25.02.2009 23:40
В лазерной технике открыт новый необъяснимый факт Alter Свободное общение 4 11.02.2009 10:43
Узнать что удалился файл Comer_Jus Общие вопросы Delphi 4 22.08.2008 09:30