Спрятать Excel от пользователя |
Опубликовано d.mokshin в пн, 14/07/2014 - 21:01.
|
||
При работе с Excel как с automation приложением полезно перевести это приложение в "абсолютно неинтерактивный режим". Сделать это можно создавая новый экземпляр приложения (new instance), а не подключаясь к уже запущенному, и установив следующие свойства:
- Visible (ложь) - отображение окна приложения на экране
- UserControl (ложь) - приложение запущено пользователем (или системой)
- Interactive (ложь) - реагирование окна приложения на ввод от пользователя
- DisplayAlerts (ложь) - отображение всяких предупреждающих сообщений (например, что данные будут утеряны)
- ScreenUpdating (ложь) - перерисовывание окна приложения при изменении в нем информации
- IgnoreRemoteRequests (истина) - игнорирование всех запросов от системы (в том числе на новые подключение как к automation server) - с этим нужно работать аккуратно, т.к. это параметр самого Excel (в Excel 2013 - Параметры Excel / Дополнительно / Игнорировать DDE-запросы от других приложений), и при аварийном завершении он останется установленным
По завершении формирования информации в Excel, если нужно приложение отобразить пользователю, то надо все эти свойства перевести в противоположное значение.
Пример:
Application.Visible = False
Application.UserControl = False
Application.Interactive = False
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Application.IgnoreRemoteRequests = True
................................
................................
................................
Application.IgnoreRemoteRequests = False
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Application.Interactive = True
Application.UserControl = True
Application.Visible = True
Последние комментарии
1 год 36 нед. назад
1 год 36 нед. назад
1 год 36 нед. назад
1 год 36 нед. назад
1 год 38 нед. назад
1 год 38 нед. назад
1 год 39 нед. назад
2 гг. 6 час. назад
2 гг. 1 день назад
2 гг. 27 нед. назад