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

flamber

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

Вложения

  • Untitled.png
    Untitled.png
    35.8 КБ · Просм.: 58

eugeny

15 лет на форуме
Сообщения
859
Реакции
210
где заголовок страницы с ctrl кликнуть по кнопке сворачивания. Свернет все слои и внутри группы тоже свернет
1707446519397.png
 

flamber

Участник
Топикстартер
Сообщения
9
Реакции
1
Может быть через VBA можно как-то?
 

dastin

Некромант-любитель
12 лет на форуме
Сообщения
2 147
Реакции
2 053
Последнее редактирование:

flamber

Участник
Топикстартер
Сообщения
9
Реакции
1
СПАСИБО ОГРОМНОЕ!!! Все работает отлично.

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

dastin

Некромант-любитель
12 лет на форуме
Сообщения
2 147
Реакции
2 053
если ВСЕ слои сделать невидимыми - на что смотреть?
 

flamber

Участник
Топикстартер
Сообщения
9
Реакции
1


Нужно погасить все слои чтоб выбрать нужные...
 

flamber

Участник
Топикстартер
Сообщения
9
Реакции
1
Sub LayrsOn()
Dim i As Integer
For i = 0 To ActivePage.Layers.Count
ActivePage.Layers.Item(i).Visible = True
Next
End Sub
 

dastin

Некромант-любитель
12 лет на форуме
Сообщения
2 147
Реакции
2 053
кое-что можно добавить ...
но, это для одной страницы - так и задумано?
 
  • Спасибо
Реакции: AZ-597

flamber

Участник
Топикстартер
Сообщения
9
Реакции
1
Да. Количество объектов очень большое. Комп и с одной еле справляется.
 
Последнее редактирование:

dastin

Некромант-любитель
12 лет на форуме
Сообщения
2 147
Реакции
2 053
если вышеозначенный код с перебором "разукрасить фонариками"
Код:
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

flamber

Участник
Топикстартер
Сообщения
9
Реакции
1
Спасибо БОЛЬШОЕ!!!
Все ускорилось отлично!!!
еще Refresh добавил, а то иконки глазок не обновлялись :)
 

dastin

Некромант-любитель
12 лет на форуме
Сообщения
2 147
Реакции
2 053
можно чуть иначе ... но будет ли быстрее???
Кроме вас - с жутким количеством слоёв в макете - не оценит никто

Код:
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

flamber

Участник
Топикстартер
Сообщения
9
Реакции
1
Все отрабатывает практически мгновенно. Спасибо!!!
 
  • Спасибо
Реакции: dastin