[CDR X5-X8] Как свернуть все слои?

  • Автор темы Автор темы flamber
  • Дата начала Дата начала

flamber

Участник
Топикстартер
Сообщения
17
Реакции
1
Подскажите пожалуйста!
Работаю с большим количеством слоев примерно 15-20 в них сотни объектов. Когда слои раскрыты устаешь матать скролом и сворачивать их.
Есть ли какая кнопка или макрос чтоб свернусь все слои разом?
 

Вложения

  • Untitled.png
    Untitled.png
    35.8 КБ · Просм.: 150
где заголовок страницы с ctrl кликнуть по кнопке сворачивания. Свернет все слои и внутри группы тоже свернет
1707446519397.png
 
Может быть через VBA можно как-то?
 
Последнее редактирование:
СПАСИБО ОГРОМНОЕ!!! Все работает отлично.

Может есть еще способ делать все слои видимыми и не видимыми не перебором, я все разом. Слоев много долго каждый раз бегает :)
 
Последнее редактирование:
если ВСЕ слои сделать невидимыми - на что смотреть?
 


Нужно погасить все слои чтоб выбрать нужные...
 
Sub LayrsOn()
Dim i As Integer
For i = 0 To ActivePage.Layers.Count
ActivePage.Layers.Item(i).Visible = True
Next
End Sub
 
кое-что можно добавить ...
но, это для одной страницы - так и задумано?
 
  • Спасибо
Реакции: AZ-597
Да. Количество объектов очень большое. Комп и с одной еле справляется.
 
Последнее редактирование:
если вышеозначенный код с перебором "разукрасить фонариками"
Код:
Sub LayrsOn()
Dim i As Integer
    Optimization = True
    EventsEnabled = False
For i = 0 To ActivePage.Layers.Count
ActivePage.Layers.Item(i).Visible = False
Next
    EventsEnabled = True
    Optimization = False
    ActiveWindow.Refresh
End Sub
будет выполняться несколько иначе
и всё загасит

соответственно
Код:
Sub LayrsOn()
Dim i As Integer
    Optimization = True
    EventsEnabled = False
For i = 0 To ActivePage.Layers.Count
ActivePage.Layers.Item(i).Visible = True
Next
    EventsEnabled = True
    Optimization = False
    ActiveWindow.Refresh
End Sub
включит всё обратно
 
  • Спасибо
Реакции: AZ-597
Спасибо БОЛЬШОЕ!!!
Все ускорилось отлично!!!
еще Refresh добавил, а то иконки глазок не обновлялись :)
 
можно чуть иначе ... но будет ли быстрее???
Кроме вас - с жутким количеством слоёв в макете - не оценит никто

Код:
Sub LayrsOn2()
Dim iLayer As Layer
    Optimization = True
    EventsEnabled = False
For Each iLayer In ActiveDocument.ActivePage.Layers
iLayer.Visible = True
Next
    EventsEnabled = True
    Optimization = False
    ActiveWindow.Refresh
End Sub
 
  • Спасибо
Реакции: AZ-597
Все отрабатывает практически мгновенно. Спасибо!!!
 
  • Спасибо
Реакции: dastin