V-Форум / Corel VBA / Тема: Подскажите чайнику

Подскажите чайнику

 11/01/2008 18:30:11 #Link

lusin

Здраствуйте!
Помогите чайнику стать немного самоваром

Есть задача написать макрос для Corel, который выполняет такую последовательность действий:
1. Рисует контур для фигуры
2. Разбивает получившуюся фигуру на контур и основную фигуру
3. Удаляет исходную фигуру

Вроде бы все и просто, можно сделать с использованием конструктора, но есть проблема в том что разбить результирующую фигуру не получается:( Если писать отдельными макросами все отлично, но после первой операции нужно снять выделение и снова выделить фигуру. Как это можно реализовать в коде макроса?

Мой код

Dim i As Integer

Private Sub CommandButton1_Click()
i = Val(TextBox1.Text)
Dim OrigSelection As ShapeRange

Set OrigSelection = ActiveSelectionRange
Dim eff1 As Effect
Set eff1 = OrigSelection(1).CreateContour(cdrContourInside, 0.19685, i, cdrDirectFountainFillBlend, CreateCMYKColor(0, 0, 0, 100), CreateCMYKColor(0, 0, 0, 100), CreateCMYKColor(0, 0, 0, 100), 0, 2)

ActiveSelection.Separate
OrigSelection(1).Delete

UserForm1.Hide
End Sub

Re: Подскажите чайнику

 11/01/2008 20:19:16 #Link

monter

lusin а зачем? это два клика мышью

Re: Подскажите чайнику

 15/01/2008 11:59:19 #Link

magnus_z

Private i As Integer

Private Sub CommandButton1_Click()
i = Val(TextBox1.Text)
Dim OrigSelection As ShapeRange
Dim eff1 As Effect

Set s1 = ActiveShape
Set eff1 = s1.CreateContour(cdrContourInside, 0.19685, i, cdrDirectFountainFillBlend, CreateCMYKColor(0, 0, 0, 100), CreateCMYKColor(0, 0, 0, 100), CreateCMYKColor(0, 0, 0, 100), 0, 2)
eff1.Contour.ContourGroup.AddToSelection
ActiveSelection.Separate
s1.Delete

UserForm1.Hide

End Sub

Re: Подскажите чайнику

 15/01/2008 12:01:21 #Link

magnus_z

Вот тут поторопился - убери в моём примере:
Dim OrigSelection As ShapeRange

Оно не нужно :-)))

Re: Подскажите чайнику

 15/01/2008 12:03:00 #Link

magnus_z

Цитата:

monter wrote:
lusin а зачем? это два клика мышью :-)


А если таких объёктов 1000?..

:-)

Re: Подскажите чайнику

 15/01/2008 21:11:48 #Link

monter

magnus_z ctrl+a, левой мышей на прозрачности, правой на ккаком-то цвете, потом в свойства обводдки, ставим нужные параметры (типа скругления углов или толщину или еще что-то), потом ctrl+q, ctrl+g, все кроме этой группы удалить, выделить группу и ctrl+u (не часто у меня возникает необходимость в таких действиях, но они все производятся нажатие хоткеев и потому я и спрашивал о целефообразности

Re: Подскажите чайнику

 16/01/2008 14:12:13 #Link

lusin

оказывается всё до безумия просто, делов то запомнить исходную фигуру а затем удалить ее

всем большое спасибо за помощь

Re: Подскажите чайнику

 30/01/2008 4:26:05 #Link

VUV

Здравствуйте!
Люди добрые подскажите! Есть макрос который экспортирует выделеный объект в EPS в строго указаное место и под строго указаным именем. Как сделать что бы он экспортировал в строго указанное место но каждый раз под новым именем?
Надеюсь на вашу помощь!

Re: Подскажите чайнику

 01/02/2008 4:02:15 #Link

VUV

ну может хоть кто нить подскажет как решить этот вопрос?!

Re: Подскажите чайнику

 01/02/2008 6:16:45 #Link

magnus_z

Цитата:
VUV wrote: ну может хоть кто нить подскажет как решить этот вопрос?!

Эта задача для VB, для VBA решается так же.
При экспорте нового файла задай ему новое имя. Здесь, к примеру, имя можно сделать состоящим из года, месяца, дня, часа, минуты и секуды - тогда твои имена точно будут уникальными :-)))
В этом случае имя экспортируемого eps будет:

Format(Date, "yymmdd") & Format(Time, "hhmmss") & ".eps"

Или исползуй генератор случайных чисел.

Или добавляй в начало (или в конец, перед ".eps") файла порядковый номер.

Решений может быть множество - выбирай любое :-)
(1) 2 »

Источник: https://powerclip.ru/modules/newbb/viewtopic.php?topic_id=7013&start=0

Rambler's Top100