- Сообщения
- 103
- Реакции
- 0
Есть часто повторяющие действия, которые хочется автоматизировать.
Запускаю макрос в этом же файле — все работает. Запускаю макрос в другом файле — нефига, либо выпрыгивает ошибка, либо он делает вид, что макрос выполняет, но при этом никакой группировки, никакого блокировки не делает, то есть, подозреваю, ничего не делает.
Corel X4 (sp1). WinXP (sp3).
В чем может быть дело? Спасибо!
Или, скажем так, нужен макрос, который растрировал бы все выделенные объекты, не затрагивая при этом текст. Такое возможно реализовать? Или, может быть, это уже есть в природе, а я не знал.
Рад буду вашей помощи. Готов даже поспособствовать материально, если поможете. Спасибо!
Записываю для этого дела макрос:
1. Выделить все объекты — сгруппировать — разгруппировать полностью.
2. Выделить все тексты — сгруппировать — блокировать.
Останавливаю запись макроса.
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
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
Или, скажем так, нужен макрос, который растрировал бы все выделенные объекты, не затрагивая при этом текст. Такое возможно реализовать? Или, может быть, это уже есть в природе, а я не знал.
Рад буду вашей помощи. Готов даже поспособствовать материально, если поможете. Спасибо!