Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Закрытие открытых файлов pdf в папке - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Закрытие открытых файлов pdf в папке
StoTisteg Дата: Четверг, 11.10.2018, 18:28 | Сообщение № 1
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Передо мной стоит задача — переместить папку на новое место. Список полных путей формируется с помощью FilenamesCollection, перемещение — через FileCopy и Kill. Проблема в том, что некоторые файлы могут при этом оказаться открытыми и естественно, "переезжать" откажутся, их нужно закрыть и повторить процедуру (ну или перед её началом попытаться закрыть всё подряд). Открыты могут быть Экселевские, Вордовые и pdf-файлы. Закрытие первых двух понятное дело, проблемы не составляет, проблема в открытых "ручками" pdf. Как бы их позакрывать?


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеПередо мной стоит задача — переместить папку на новое место. Список полных путей формируется с помощью FilenamesCollection, перемещение — через FileCopy и Kill. Проблема в том, что некоторые файлы могут при этом оказаться открытыми и естественно, "переезжать" откажутся, их нужно закрыть и повторить процедуру (ну или перед её началом попытаться закрыть всё подряд). Открыты могут быть Экселевские, Вордовые и pdf-файлы. Закрытие первых двух понятное дело, проблемы не составляет, проблема в открытых "ручками" pdf. Как бы их позакрывать?

Автор - StoTisteg
Дата добавления - 11.10.2018 в 18:28
Roman777 Дата: Четверг, 11.10.2018, 21:38 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Если Adobe Reader, то:

[vba]
Код
Sub test()
Dim myPrC, myProg
Set myProg = GetObject("winmgmts:")
Set myPrC = myProg.ExecQuery("SELECT * FROM Win32_Process")
For Each X In myPrC
Debug.Print X.Name
If X.Name = "AcroRd32.exe" Then
    X.Terminate
End If

Next
End Sub
[/vba]
Код взял отсюда и поправил...


Много чего не знаю!!!!

Сообщение отредактировал Roman777 - Четверг, 11.10.2018, 21:40
 
Ответить
СообщениеЕсли Adobe Reader, то:

[vba]
Код
Sub test()
Dim myPrC, myProg
Set myProg = GetObject("winmgmts:")
Set myPrC = myProg.ExecQuery("SELECT * FROM Win32_Process")
For Each X In myPrC
Debug.Print X.Name
If X.Name = "AcroRd32.exe" Then
    X.Terminate
End If

Next
End Sub
[/vba]
Код взял отсюда и поправил...

Автор - Roman777
Дата добавления - 11.10.2018 в 21:38
StoTisteg Дата: Пятница, 12.10.2018, 10:22 | Сообщение № 3
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Спасибо, работает. Закрывает, правда, все файлы, но для pdf это не страшно.


Интуитивно понятный код - это когда интуитивно понятно, что это код.

Сообщение отредактировал StoTisteg - Пятница, 12.10.2018, 10:25
 
Ответить
СообщениеСпасибо, работает. Закрывает, правда, все файлы, но для pdf это не страшно.

Автор - StoTisteg
Дата добавления - 12.10.2018 в 10:22
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!