[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『コネクタのグループ化』(佐藤)
下記のソースで、
1、最後のShapeCon.ConnectorFormat.BeginConnectedShape.nameをプリントしようとすると、エラーになってしまいます。
2、グループ化をしないと期待した通りのものがプリントされます。
3、グループ化しても、ShapeCon.ConnectorFormat.BeginConnectedとShapeCon.ConnectorFormat.BeginConnectionSiteとは期待通りにプリントされます。
4、グループ化の後に、コネクタの再接続をするようにしても、結果は同じでした。
5、グループ化した親シェイプ(ここでは、shapeGroup)のConnectorFormat.BeginConnectedShapeに保持しているのかと思い、これをプリントするようにしても結果は同じでした。
6、プリントしないようにすると、エラーにはなりません。
7、この後、シート上に作成されたコネクタを移動すると、テキストボックスも一緒に移動します。(なので、グループ化に問題はないと考えています。)
8、コネクタをクリックすると、両端の接続ポイントが赤くなります。
9、また、接続しているシェイプ(Shape1かShape2)を移動すると、コネクタの再接続が行われます。
10、なので、グループ化した後はコネクタの接続先シェイプは、ShapeCon.ConnectorFormat.BeginConnectedShapeでなく、何処か別のところに保持しているのではないかと推察しているのですが、どなたかご存知の方がいれば、ご教授いただけないでしょうか?
11、または、接続先のシェイプ(Shape1かShape2)から、接続しているコネクタを特定することは可能でしょうか?
以上、よろしくお願いします。
<ソースコード>
Dim Shape1 As shape, Shape2 As shape, _ ShapeCon As shape, shapeEdit As shape, shapeGroup As shape
Set Shape1 = ActiveSheet.Shapes.AddShape _ (msoShapeOval, 100, 100, 50, 50) Set Shape2 = ActiveSheet.Shapes.AddShape _ (msoShapeOval, 300, 100, 50, 50)
'コネクタ描画 ※位置は仮決め Set ShapeCon = ActiveSheet.Shapes.AddConnector _ (msoConnectorStraight, 1, 1, 1, 1)
'コネクタを再接続 With ShapeCon .ConnectorFormat.BeginConnect Shape1, 1 .ConnectorFormat.EndConnect Shape2, 1 .RerouteConnections End With
' テキストボックスを作成 Set shapeEdit = ActiveSheet.Shapes.AddTextBox(msoTextOrientationHorizontal, 100 + 10, 100 - 10, 10, 10) shapeEdit.Select With Selection .Characters.Text = "x" .AutoSize = True End With
' グループ化 ShapeCon.Select False shapeEdit.Select False Set shapeGroup = Selection.ShapeRange.Group Debug.Print " shapeGroup = " & shapeGroup.name
If ShapeCon.ConnectorFormat.BeginConnected = msoTrue Then Debug.Print " line = " & ShapeCon.name & " begin connected = " & ShapeCon.ConnectorFormat.BeginConnected Debug.Print " line = " & ShapeCon.name & " begin site = " & ShapeCon.ConnectorFormat.BeginConnectionSite Debug.Print " line = " & ShapeCon.name & " begin shape = " & ShapeCon.ConnectorFormat.BeginConnectedShape.name End If If ShapeCon.ConnectorFormat.EndConnected = msoTrue Then Debug.Print " line = " & ShapeCon.name & " end connected = " & ShapeCon.ConnectorFormat.EndConnected Debug.Print " line = " & ShapeCon.name & " end site = " & ShapeCon.ConnectorFormat.EndConnectionSite Debug.Print " line = " & ShapeCon.name & " end shape = " & ShapeCon.ConnectorFormat.EndConnectedShape.name End If
< 使用 Excel:Excel2010、使用 OS:Windows10 >
学校とMOUGはマルチポスト許容ですが、サロンは禁止です。 サロンに、レスがついていますが、サロンではなく、学校 ないしは MOUG で取り組まれるなら サロンのほうは、その旨、コメントして解決済みにされたほうがいいですね。
また、サロンで取り組まれるなら 学校 と MOUG は クローズしておいたほうがいいですね。
(β) 2016/05/08(日) 12:16
ここのような掲示板を使わせてもらった以上、一旦質問した以上、また、検索でここにたどり着いた 人の為にも、自力解決した場合は、どのようにして解決したかを書くのが礼儀だと思う。 (マルチネス) 2016/05/09(月) 19:37
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.