Sub CopyDoc()
Dim d As Document
Dim s As Shape
Dim Lg As Layer
Set s = ActiveShape
For Each d In Application.Documents
For Each Lg In d.ActivePage.Layers
If Lg.Name = "Logo" Then
Lg.Activate
Lg.Paste
d.Save
End If
Next
Next
End Sub
Кэп подсказывает, что самое быстрое - удалить текущий слой и создать новый с тем же именемА как удалить всё на текущем слое ?
А если это надо сделать сотни раз....Кэп подсказывает, что самое быстрое - удалить текущий слой и создать новый с тем же именем
Тем болееА если это надо сделать сотни раз....
Лааадно ) Раскрою секрет ) Что-то мне скрипт удаляет, но потом не хочет создавать слой:Тем более
Я вангую, что операция удаления-создания пустого слоя в макросе будет отрабатывать в сто раз быстрее и корректнее, чем перебор всех объектов с удалением
Sub CopyDoc()
Dim d As Document
Dim s As Shape
Dim Lg As Layer
Set s = ActiveShape
For Each d In Application.Documents
For Each Lg In d.ActivePage.Layers
If Lg.Name = "Lo" Then
Lg.Activate
Lg.Delete
ActivePage.CreateLayer ("Lo")
Lg.Paste
d.Save
End If
Next
Next
End Sub
Сделал так. Если документ имеет необходимый слой, то буфер вставляется. Но если нет, то выводит ошибку, что на картинке.Сделайте уже, наконец, как в #23