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

Вход

Регистрация

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

 

= Мир MS Excel/Возможно ли узнать что книга открыта программно - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Возможно ли узнать что книга открыта программно (Макросы/Sub)
Возможно ли узнать что книга открыта программно
Poltava Дата: Среда, 02.10.2019, 16:20 | Сообщение № 1
Группа: Друзья
Ранг: Форумчанин
Сообщений: 232
Репутация: 50 ±
Замечаний: 0% ±

Возможно ли узнать что книга открыта программно. То есть допустим при открытии книги выполняется определенный код который лежит в Workbook_Open() но он должен отрабатывать только если книгу открыл человек. А вот если книгу открыли программно то тогда этот код не должен отработать.
 
Ответить
СообщениеВозможно ли узнать что книга открыта программно. То есть допустим при открытии книги выполняется определенный код который лежит в Workbook_Open() но он должен отрабатывать только если книгу открыл человек. А вот если книгу открыли программно то тогда этот код не должен отработать.

Автор - Poltava
Дата добавления - 02.10.2019 в 16:20
Roman777 Дата: Среда, 02.10.2019, 16:46 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Poltava, Предполагаю, что готового функционала для этого не существует.
А если попробовать [vba]
Код
Application.EnableEvents = false
[/vba] написать перед открытием программно, тогда, возможно, не запустятся события... и код не будет отрабатывает (но я не проверял). Тут ещё смотря каким способом открытие происходит программно.


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

Сообщение отредактировал Roman777 - Среда, 02.10.2019, 16:54
 
Ответить
СообщениеPoltava, Предполагаю, что готового функционала для этого не существует.
А если попробовать [vba]
Код
Application.EnableEvents = false
[/vba] написать перед открытием программно, тогда, возможно, не запустятся события... и код не будет отрабатывает (но я не проверял). Тут ещё смотря каким способом открытие происходит программно.

Автор - Roman777
Дата добавления - 02.10.2019 в 16:46
Poltava Дата: Среда, 02.10.2019, 17:00 | Сообщение № 3
Группа: Друзья
Ранг: Форумчанин
Сообщений: 232
Репутация: 50 ±
Замечаний: 0% ±

Нет EnableEvents не вариант так как при открытии не должна выполниться только определенная часть кода. То есть нужна именно проверка что книгу открыли программно, а не щелкнув по ней мышкой.


Сообщение отредактировал Poltava - Среда, 02.10.2019, 17:00
 
Ответить
СообщениеНет EnableEvents не вариант так как при открытии не должна выполниться только определенная часть кода. То есть нужна именно проверка что книгу открыли программно, а не щелкнув по ней мышкой.

Автор - Poltava
Дата добавления - 02.10.2019 в 17:00
Roman777 Дата: Среда, 02.10.2019, 17:15 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Poltava, Тогда идея та же:
Привязаться к свойствам Application, которые не нужны вам в программе:

Например, перед запуском делаем:
[vba]
Код
Application.EnableSound = false
[/vba]
А при открытии целевой книге у неё в ивенте сразу возвращаем это значение в true, но при этом можем уже обработать по этому флагу...


Много чего не знаю!!!!
 
Ответить
СообщениеPoltava, Тогда идея та же:
Привязаться к свойствам Application, которые не нужны вам в программе:

Например, перед запуском делаем:
[vba]
Код
Application.EnableSound = false
[/vba]
А при открытии целевой книге у неё в ивенте сразу возвращаем это значение в true, но при этом можем уже обработать по этому флагу...

Автор - Roman777
Дата добавления - 02.10.2019 в 17:15
Poltava Дата: Среда, 02.10.2019, 17:36 | Сообщение № 5
Группа: Друзья
Ранг: Форумчанин
Сообщений: 232
Репутация: 50 ±
Замечаний: 0% ±

я так понял имеется в виду что
[vba]
Код
Application.EnableSound = false
[/vba]
Должно выполняться перед программным открытием книги в программе которая инициализирует открытие файла. Но весь смысл именно в том что к программе которая его открывает доступа нет и в нее изменения внести нельзя! иначе не было бы смысла городить этот огород.
 
Ответить
Сообщениея так понял имеется в виду что
[vba]
Код
Application.EnableSound = false
[/vba]
Должно выполняться перед программным открытием книги в программе которая инициализирует открытие файла. Но весь смысл именно в том что к программе которая его открывает доступа нет и в нее изменения внести нельзя! иначе не было бы смысла городить этот огород.

Автор - Poltava
Дата добавления - 02.10.2019 в 17:36
Roman777 Дата: Среда, 02.10.2019, 18:00 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Poltava, открывшаяся книга не узнает, что её открыла программа, к сожалению...


Много чего не знаю!!!!
 
Ответить
СообщениеPoltava, открывшаяся книга не узнает, что её открыла программа, к сожалению...

Автор - Roman777
Дата добавления - 02.10.2019 в 18:00
bmv98rus Дата: Среда, 02.10.2019, 20:02 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
при открытии книги выполняется определенный код который лежит в Workbook_Open()
Значит можно запросит подтверждение открытия, человек подтвердит, автоматика нет. Но проблема в том что на время запроса все стоит как вкопанное и желательно тогда запрос делать формой, которая например по таймауту закроется и код прекратит работу. тогда другая проблема, если человек открыл файл и его отвлекли. По таймауту принято решение что это не человек, и …


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщение
при открытии книги выполняется определенный код который лежит в Workbook_Open()
Значит можно запросит подтверждение открытия, человек подтвердит, автоматика нет. Но проблема в том что на время запроса все стоит как вкопанное и желательно тогда запрос делать формой, которая например по таймауту закроется и код прекратит работу. тогда другая проблема, если человек открыл файл и его отвлекли. По таймауту принято решение что это не человек, и …

Автор - bmv98rus
Дата добавления - 02.10.2019 в 20:02
Roman777 Дата: Среда, 02.10.2019, 20:54 | Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
А у меня ещё одно предложение из серии "Курсы по костылезации для продвинутых" =))
Можно завести отдельную книгу с макросом, которым уже управляем мы и подменять её на ту, которую открывает "закрытая" программа. Собственно, программа открывает нашу книгу с управляемым макросом, который уже мутит всё с целевой книгой, что нужно...


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

Сообщение отредактировал Roman777 - Среда, 02.10.2019, 20:55
 
Ответить
СообщениеА у меня ещё одно предложение из серии "Курсы по костылезации для продвинутых" =))
Можно завести отдельную книгу с макросом, которым уже управляем мы и подменять её на ту, которую открывает "закрытая" программа. Собственно, программа открывает нашу книгу с управляемым макросом, который уже мутит всё с целевой книгой, что нужно...

Автор - Roman777
Дата добавления - 02.10.2019 в 20:54
Poltava Дата: Среда, 02.10.2019, 23:21 | Сообщение № 9
Группа: Друзья
Ранг: Форумчанин
Сообщений: 232
Репутация: 50 ±
Замечаний: 0% ±

Да варианты конечно интересные и сам думал в эту сторону но как говориться это все усложняет работу пользователя что крайне не желательно.
 
Ответить
СообщениеДа варианты конечно интересные и сам думал в эту сторону но как говориться это все усложняет работу пользователя что крайне не желательно.

Автор - Poltava
Дата добавления - 02.10.2019 в 23:21
bmv98rus Дата: Четверг, 03.10.2019, 13:31 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
это все усложняет работу пользователя что крайне не желательно.
Либо дудочка, либо горшочек. Худо бедно можно определить в интерактивном ли режиме открыт файл, но кто мешает открыть в интерактивном режиме программой?


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщение
это все усложняет работу пользователя что крайне не желательно.
Либо дудочка, либо горшочек. Худо бедно можно определить в интерактивном ли режиме открыт файл, но кто мешает открыть в интерактивном режиме программой?

Автор - bmv98rus
Дата добавления - 03.10.2019 в 13:31
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Возможно ли узнать что книга открыта программно (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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