Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
0 / 0 / 0
Регистрация: 31.01.2021
Сообщений: 1
1

Проверка, открыт ли Ворд

31.01.2021, 22:25. Показов 5053. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день! Столкнулся с таким вопросом.

Данный код открывает целевой документ Word
Visual Basic
1
2
3
4
Set wd = New Word.Application
Set wdDoc = wd.Documents.Open _
(ThisWorkbook.Path & "" & "Акт.docm")
wd.Visible = True
Однако, если данный документ уже открыт, макрос с данным кодом зависает. Как сделать, чтобы он проверял, открыт ли данный файл ("Акт.docm") и:
- если открыт, то переходил к следующему действию
- если закрыт то использовался код выше и переходил к следующему действию.

Надеюсь на вашу помощь.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.01.2021, 22:25
Ответы с готовыми решениями:

Проверка открыт ли файл в ворд и внесение изменений в него
Добрый день. Есть код в файле эксель, который ищет по определенному пути тестовые файлы,...

уточнить файл Ворд открыт для чтения?
подскажите как при помощи ВБА уточнить файл Ворд открыт только для чтения? если да - тогда...

Как проверить, был ли открыт рекордсет в АДО, или он еще не открыт?
Народ! Помогите по сабжу

Проверка на то открыт ли файл
Моя программа работает в фоновом режиме. При открытии конкретного файла она скрывает его и выдает...

4
4076 / 1456 / 401
Регистрация: 07.08.2013
Сообщений: 3,630
01.02.2021, 03:34 2
можно проверить наличие файла с именем
Chr(129) & "$т.docm"
в папке где расположен ваш файл Акт.docm
если есть то файл открыт
0
834 / 484 / 186
Регистрация: 09.03.2009
Сообщений: 1,664
01.02.2021, 11:29 3
snipe, этот файл может остаться от предыдущего вылета ворда, так что не показатель открытости и блокирования.
0
5 / 5 / 0
Регистрация: 02.09.2020
Сообщений: 32
01.02.2021, 12:25 4
прошу прощения, не то ответил

Добавлено через 10 минут
решение:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Function FileInWordOpen(DokName As String) As Boolean
Dim wd
wd = CreateObject("Word.Application")
Dim wDoc
wDoc = CreateObject("Word.Document")
 
Dim i As Long, s As String
On Error Resume Next
Set wd = GetObject(, "Word.Application")
On Error GoTo NO_WORD_FOUND
If wd Is Nothing Then
    FileInWordOpen = False
End If
For i = 1 To wd.Documents.Count
  s = wd.Documents(i)
  If InStr(DokName, s) <> 0 Then
     FileInWordOpen = True
     Exit Function
  End If
Next
 
NO_WORD_FOUND:
 
 FileInWordOpen = False
 
 End Function
Sub testdocopened()
Debug.Print FileInWordOpen("test.docx")
End Sub
0
11513 / 3799 / 681
Регистрация: 13.02.2009
Сообщений: 11,217
01.02.2021, 14:00 5
Попадалась функция проверки открыт ли файл:
Visual Basic
1
2
3
4
5
6
Function IsBookOpen(wbFullName As String) As Boolean
    On Error Resume Next
    Open wbFullName For Random Access Read Write Lock Read Write As 1
    close 1
    IsBookOpen = Err
End Function
0
01.02.2021, 14:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.02.2021, 14:00
Помогаю со студенческими работами здесь

Проверка не открыт ли оракловый курсор
Есть некоторый рабочий проект на юниксовой машине. Установлены питон3, cx_Oracle и другие. Скрипт...

Бвстрая проверка открыт ли порт на определенном IP
Нужно проверить, открыт ли порт на определенном IP. Раньше делал через System.Net так : Socket s =...

Проверка на загрузку фотографии в ворд
Всем привет подскажите пожалуйста у меня есть программа которая загружает картинки в word как...

Ошибка Файл не может быть открыт ядром базы данных microsoft jet. Файл уже открыт другим пользователем для монопольного доступа или
После написания программы, записал исходник на диск. При запуске экзешника с диска появляется такая...

Вставить многостраничный документ ворд в документ ворд
Нужно вставить многостраничный документ word (2 стр. и более) в документ word. При вставке...

Не открыт сокет
Отчего socket-&gt;isOpen() может выдавать false?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru