|
|
|
Supreme Being
      
участник
Last Login: 23.06.2008 8:38
Сообщ.: 91,
Visits: 451
|
|
| Возникла следущая задача. Макрос в открытом Excel файле должен удалить этот же файл из файловой системы. Естественно без извращений это не получается сделать, поскольку он используется сервисом. Но грохнуть его все равно надо. Не подскажте как?
|
|
|
|
|
Supreme Being
      
участник
Last Login: 16.04.2008 11:44
Сообщ.: 366,
Visits: 2 473
|
|
Убить сам себя? Хм...
Единственное что могу посоветовать, создать из макроса скрипт vbs, который по таймеру убьет твой файл, запустить его, закрыть себя. Тоже изврат, но по другому не знаю.
С уважением,
|
|
|
|
|
Supreme Being
      
участник
Last Login: 14.12.2007 16:53
Сообщ.: 100,
Visits: 1 707
|
|
|
|
|
|
Supreme Being
      
участник
Last Login: 23.06.2008 8:38
Сообщ.: 91,
Visits: 451
|
|
| Годится! Код работает. А вот какая логика в нем - это другой вопрос. А в-общем то какая разница. Хотя если сможете объяснить принцип - буду очень рад.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 03.03.2008 16:40
Сообщ.: 443,
Visits: 4 574
|
|
ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly
'Если в обычном режиме "чтение/запись", операционная система не даст убить открытый файл. Данной командой мы его закрываем и открываем только для чтения, с ним можно что хочешь делать
SetAttr iFullName$, vbNormal
'Это на тот случай, если файл изначально имел атрибут "Только для чтения" - vbReadOnly. Обычно такого не бывает, но для подстраховки. Кстати, в любом случае одна из строк - первая или вторая, окажутся ненужными...
Kill iFullName$
'Собственно удаление беззащитного файла
ActiveWorkbook.Close saveChanges:=False
'Закрыть файл без сохранения (ибо в режиме xlReadOnly без saveChanges:=False он будет спрашивать, куда сохранить изменения).
|
|
|
|
|
Supreme Being
      
участник
Last Login: 23.06.2008 8:38
Сообщ.: 91,
Visits: 451
|
|
| А вот для документов Word подобное можно делать?
|
|
|
|