Author |
Topic |
ivan
31 Posts |
Posted - 06/19/2006 : 10:10:43
|
а если визио соединяет в именно своем порядке, а мне надо в определенном? |
|
|
brace
Russia
358 Posts |
Posted - 06/19/2006 : 10:19:33
|
соединяй их попарно : пару за парой
ActiveWindow.DeselectAll ActiveWindow.Select vsoShape1, visSelect ActiveWindow.Select vsoShape2, visSelect Application.ActiveWindow.Selection.ConnectShapes
|
|
|
ivan
31 Posts |
Posted - 06/20/2006 : 11:51:29
|
на второй строке выдал ошибку |
|
|
ivan
31 Posts |
Posted - 06/20/2006 : 12:02:00
|
визио нужен айди, шобы знать в каком порядке лепить связи |
|
|
brace
Russia
358 Posts |
Posted - 06/20/2006 : 12:36:54
|
visio может соединять и без айди если ему дать названия шейпов читай статью ConnectShapes method ...в хелпе visio VBE. |
|
|
ivan
31 Posts |
Posted - 06/20/2006 : 12:41:58
|
Connects two or more selected shapes with a dynamic connector. Returns Nothing.
object.ConnectShapes()
object Required. An expression that returns a Selection object that contains the shapes to connect.
Version added 2003
Remarks Calling the ConnectShapes method is equivalent to clicking Connect Shapes on the Shape menu.
Example This Microsoft Visual Basic for Applications (VBA) macro shows how to use the ConnectShapes method to connect two shapes.
Public Sub ConnectShapes_Example()
Dim vsoShape1 As Visio.Shape Dim vsoShape2 As Visio.Shape
Set vsoShape1 = Application.ActiveWindow.Page.DrawRectangle(2, 9, 4, 7) Set vsoShape2 = Application.ActiveWindow.Page.DrawRectangle(5, 6, 7, 3)
ActiveWindow.DeselectAll ActiveWindow.Select vsoShape1, visSelect ActiveWindow.Select vsoShape2, visSelect Application.ActiveWindow.Selection.ConnectShapes
End Sub
это? |
|
|
ivan
31 Posts |
Posted - 06/20/2006 : 13:00:45
|
по поводу названий фигур в хелпе, шо-то там примера такого нет. зато вот новый вопрос. как переделать строку: "Set vsoShape1 = Application.ActiveWindow.Page.DrawRectangle(2, 9, 4, 7) Set vsoShape2 = Application.ActiveWindow.Page.DrawRectangle(5, 6, 7, 3)"
в "Application.Windows.ItemEx("#208;#232;#241;#243;#237;#238;#234;1").Activate Application.ActiveWindow.Page.Drop Application.Documents.Item("C:\Documents and Settings\kon\#208;#224;#225;#238;#247;#232;#233; #241;#242;#238;#235;\#207;#240;#238;#246;#229;#241;#241;#251;\#216;#224;#225;#235;#238;#237;#251; #244;#243;#237;#234;#246;#232;#233;.vss").Masters.ItemU("Process"), 0.590551, 10.826772
Application.Windows.ItemEx("#208;#232;#241;#243;#237;#238;#234;1").Activate Application.ActiveWindow.Page.Drop Application.Documents.Item("C:\Documents and Settings\kon\#208;#224;#225;#238;#247;#232;#233; #241;#242;#238;#235;\#207;#240;#238;#246;#229;#241;#241;#251;\#216;#224;#225;#235;#238;#237;#251; #244;#243;#237;#234;#246;#232;#233;.vss").Masters.ItemU("Process"), 3.051181, 10.03937" шобы фигуры брались из конкретного трафарета?
тем более коннектор появляется без определенного направления:( кроме того, если возможен вариант соединения по названиям фигур то как засунуть это в код? по поводу последнего вопроса, позырю статью, которую дал Туманыч, о, прощу прощения, Туманов
|
|
|
ivan
31 Posts |
Posted - 06/20/2006 : 13:17:18
|
пока вопросов нет кроме одного, если нужен коннектор со стрелочкой к одному главному объекту(фигуре)? |
|
|
brace
Russia
358 Posts |
Posted - 06/20/2006 : 13:39:10
|
статья та самая... я не программер макросы писать не умею но ведь визио 2003 сам макросы пишет... 1 включи макрорекордер 2 ручками соедини переферию с центральным шейпом 3 выключи макрорекордер посмотри на получившийся макрос... возможно он тебе подойдет.
|
|
|
ivan
31 Posts |
Posted - 06/20/2006 : 16:48:45
|
так я это и делал, дело было в другом, если у тебя 100 фигур, которые надо соединять, то можно вспотеть и время потратить попусту, соединяя все это вручную. таких людей я знаю, но меня их труд не привлекает. |
|
|
brace
Russia
358 Posts |
Posted - 06/20/2006 : 17:57:16
|
ну не так ты меня понял : записав макрос который сединяет 3 шейпа с центральным шейпом можно понять принцип построения макроса а затем просто добавить в макрос нужное кол-во шейпов через их айди или названия...
|
|
|
ivan
31 Posts |
Posted - 06/21/2006 : 11:22:17
|
я это делал, на предыдущей странице я выложил лист того (очень длинный), шо я делал. я записал макрос, и просто добавил еще айди тех, кого хотел соединить, но выдал он ошибку%( и не хотел работать |
|
|
ivan
31 Posts |
Posted - 06/21/2006 : 11:24:16
|
quote: Originally posted by brace
ну не так ты меня понял : записав макрос который сединяет 3 шейпа с центральным шейпом можно понять принцип построения макроса а затем просто добавить в макрос нужное кол-во шейпов через их айди или названия...
и макрос я писал с тремя шейпами, первые строки этой темы (точнее первые посты), принцип построеня макроса я понял, и допетрил лишь до того, чтобы удалить две строки с айди и чтобы независимо от айди, макрос соединял выделенные мной фигуры при нажатии горячей клавиши. |
|
|
Topic |
|
|
|