|
|
|
новичок
      
участник
Last Login: 24.12.2009 12:34
Сообщ.: 2,
Visits: 12
|
|
Добрый день!
Подскажите, пожалуйста, каким образом можно решить следующую задачу.
Я написал скрипт (макрос), который выполняется в момент открытия книги, после чего книга тут же закрывается. Однако если вызывать метод ThisWorkbook.Close, то закрывается именно сама книга скрипта, но не окно Excel, в котором эта книга была открыта. Если же применять метод Application.Quit, то закрываются любые открытые на данный момент окна Excel. Мне же необходимо "уничтожить" только то окно, в котором выполнялся мой скрипт.
Подозреваю, что данная операция осуществляется при помощи API-функций. Но основная проблема, с которой я столкнулся в их применении - это получение дескриптора "моего" окна Excel. Порывшись в сети, наткнулся на функцию FindWindow, однако она в качестве параметра принимает переменную lpClassName, а как получить ее значение для моего приложения я не знаю ...
Может быть, есть иные способы реализовать закрытие окна?..
Буду очень признателен за помощь!
|
|
|
|
|
новичок
      
участник
Last Login: 24.12.2009 12:34
Сообщ.: 2,
Visits: 12
|
|
Подсказали альтернативное решение без привлечения WinAPI, возможно кому-нибудь пригодится. :))
Все очень просто и элегантно:
If Workbooks.Count = 1 Then Application.Quit Else ThisWorkbook.Close
|
|
|
|