Группировка и блокировка объектов

Статус
Закрыто для дальнейших ответов.

Борис_Бодунов

Участник
Топикстартер
Сообщения
103
Реакции
0
Есть часто повторяющие действия, которые хочется автоматизировать.

Записываю для этого дела макрос:

1. Выделить все объекты — сгруппировать — разгруппировать полностью.

2. Выделить все тексты — сгруппировать — блокировать.

Останавливаю запись макроса.​

Запускаю макрос в этом же файле — все работает. Запускаю макрос в другом файле — нефига, либо выпрыгивает ошибка, либо он делает вид, что макрос выполняет, но при этом никакой группировки, никакого блокировки не делает, то есть, подозреваю, ничего не делает.

Corel X4 (sp1). WinXP (sp3).

В чем может быть дело? Спасибо!

Выкладываю тело макроса (пытался записать трижды):
Sub textcurv()
' Recorded 09.07.2009
ActivePage.Shapes.All.CreateSelection
Dim s1 As Shape
Set s1 = ActiveSelection.Group
Dim grp1 As ShapeRange
Set grp1 = s1.UngroupAllEx
ActiveDocument.CreateSelection grp1(35), grp1(39), grp1(41), grp1(44), grp1(48), grp1(50), grp1(3), grp1(55), grp1(56), grp1(57), grp1(58)
ActiveDocument.AddToSelection grp1(59), grp1(60), grp1(65), grp1(66), grp1(67), grp1(68), grp1(69), grp1(70), grp1(4), grp1(75), grp1(76)
ActiveDocument.AddToSelection grp1(77), grp1(79), grp1(80), grp1(85), grp1(86), grp1(87), grp1(94), grp1(95), grp1(100), grp1(101), grp1(13)
ActiveDocument.AddToSelection grp1(14), grp1(15), grp1(16), grp1(17), grp1(20), grp1(23), grp1(24), grp1(25), grp1(26), grp1(27), grp1(106)
ActiveDocument.AddToSelection grp1(107), grp1(108), grp1(109)
Dim s2 As Shape
Set s2 = ActiveSelection.Group
s2.Locked = True
End Sub
Sub grup()
' Recorded 16.07.2009
ActivePage.Shapes.All.CreateSelection
Dim s1 As Shape
Set s1 = ActiveSelection.Group
Dim grp1 As ShapeRange
Set grp1 = s1.UngroupAllEx
ActiveDocument.CreateSelection grp1(10), grp1(11), grp1(13), grp1(15), grp1(16), grp1(17), grp1(22), grp1(23), grp1(25), grp1(26), grp1(2)
ActiveDocument.AddToSelection grp1(33), grp1(36), grp1(37), grp1(38), grp1(43), grp1(4), grp1(45), grp1(46), grp1(47), grp1(48), grp1(49)
ActiveDocument.AddToSelection grp1(55), grp1(58), grp1(59), grp1(60), grp1(61), grp1(62), grp1(63)
Dim s2 As Shape
Set s2 = ActiveSelection.Group
s2.Locked = True
End Sub
Sub grup3()
' Recorded 16.07.2009
ActivePage.Shapes.All.CreateSelection
Dim s1 As Shape
Set s1 = ActiveSelection.Group
Dim grp1 As ShapeRange
Set grp1 = s1.UngroupAllEx
Dim s2 As Shape
Set s2 = ActiveDocument.CreateShapeRangeFromArray(grp1(4), grp1(8), grp1(9), grp1(10), grp1(11), grp1(13)).Group
s2.Locked = True
End Sub

Или, скажем так, нужен макрос, который растрировал бы все выделенные объекты, не затрагивая при этом текст. Такое возможно реализовать? Или, может быть, это уже есть в природе, а я не знал.

Рад буду вашей помощи. Готов даже поспособствовать материально, если поможете. Спасибо!
 

Sanchos

Sancho
15 лет на форуме
Сообщения
806
Реакции
158
Ответ: Группировка и блокировка объектов

нужен макрос, который растрировал бы все выделенные объекты, не затрагивая при этом текст.

На счёт есть или нет, незнаю. А вот реализовать можно и без макросов.
делаем новый слой "txt", выделяем весь текст через меню Edit и переносим на этот слой, блокируем его. Выделяем остальное и битмапим. Если сильно лень всё это проделывать, то макрос можно написать.

А записаный макрос не работает потому что идёт выделение объектов по зонам, а не по типу самого объекта.
 

Борис_Бодунов

Участник
Топикстартер
Сообщения
103
Реакции
0
Ответ: Группировка и блокировка объектов

Sanchos сказал(а):
...реализовать можно и без макросов: делаем новый слой...
Способ интересный и новый для меня. Спасибо! Вот только получается, что опять-таки надо выполнять несколько действий вместо одного клика по макросу, который сам бы все это сделал.

Sanchos сказал(а):
Если сильно лень всё это проделывать, то макрос можно написать.
А вот за это я бы Вам сказал очередное большое спасибо, как за Ваш CdrPrefligh. Соответственно, я бы купил такой макрос.

Sanchos сказал(а):
А записаный макрос не работает потому что идёт выделение объектов по зонам, а не по типу самого объекта.
Может, подскажите, как записать его так, чтобы выделение объектов было по типу самого объекта? Тогда я, наверное, и не стал бы покупать у Вас макрос, который Вы, возможно, и написали бы )). Шутка! В любом случае, на кошелек пришлю «благодарность».
 

Борис_Бодунов

Участник
Топикстартер
Сообщения
103
Реакции
0
Ответ: Группировка и блокировка объектов

Благодаря Sanchos вопрос окончательно и бесповоротно решен в мою пользу, за что ему низкий поклон. Написан замечательный макрос. Хорошо, что есть умные люди, готовые помочь.
 
Статус
Закрыто для дальнейших ответов.