Исходный текст
Option Explicit
Call EraseAllObjects(ThisApplication.Desktop.Objects)
'==============================================================================
' Удалить все объекты рабочего стола. При обращении через ThisObject
' скрипт выдаст исключение.
'==============================================================================
Sub EraseAllObjects(ObjCol)
Dim testdesk
With ObjCol
'Если нет информации об объектах, выйти из процедуры
If .Count = 0 Then
MsgBox "Объекты рабочего стола отсутствуют.", _
vbInformation, "Информация о текущей настройке"
Exit Sub
End If
'Удаление, аналогичное вызову Erase у каждого элемента коллекции. Необходимы права доступа на изменения файлов в коллекции.
On Error Resume Next
testdesc = "Тестовый объект"
If .Has(testdesk) Then ThisApplication.AddNotify "В коллекции присутвуют тестовые объекты"
'Удалить объекты
.EraseAll
'Если ошибка, то обращение функции было через ThisObject
If Err<>0 Then
MsgBox "Ошибка удаления объектов" _
& Chr(13) & "Код ошибки: " & Err, vbExclamation
End If
End With
End Sub
'==============================================================================