記載いただいたコネクタ形状は、始点の向きが異なりますよね。
コネクタの始点・終点を定めていない(どこにも接続していない)ときは現状のようなクランク型をしていると思います。
始点・終点を他のオブジェクトに接続することで、オブジェクトの位置関係によってはL型のコネクタになります。
黄色い菱型で
黄色い菱型の部分というのは、カギ線コネクタの折れるを位置を調整するものを指していると思いますが、VBAでこれを制御するのはShape.Adjustments
です。
カギ線コネクタにはアジャスタは1つしかないので、Shape.Adjustments.Item(1)
の値を指定します。
詳しい資料がみつからなかったので推測になりますが、値の範囲は0~1で指定するようで、おそらく線の長さに対する折れる位置を調整するものと思います。
両端が接続されていないコネクタであれば、Shape.Adjustments.Item(1)=0
またはShape.Adjustments.Item(1)=1
のように極地に設定することで擬似的に角がひとつしかないL型のコネクタを表現できます。
ただ、接点を移動してしまうとまたクランク型に戻ってしまいますのでご注意ください。
別案
コネクタの両端をで他のオブジェクトに接続することで、L型コネクタにすることもできます。
例えば2つの四角オブジェクトを用意し、始点を1つ目のオブジェクトの下端に、終点を2つ目のオブジェクトの左端に接続することで、位置関係によってL型のコネクタになります。
私がL型コネクタを表現する時は、小さな非表示オブジェクト2つ作成し、コネクタの始点・終点をこれに接続することが多いです。
サンプル
以下は上記2つの方法でL型コネクタを表現するVBAサンプルです。
Sub Test()
Dim myDoc As Slide
Set myDoc = ActivePresentation.Slides(1)
'■隠しオブジェクトを使ったL型コネクタ■(サイズや形状の調整は隠しオブジェクトを移動して行います)
Dim shpBox1 As Shape
Dim shpBox2 As Shape
Dim shpCon As Shape
Set shpBox1 = myDoc.Shapes.AddShape(msoShapeRectangle, 10, 10, 10, 10)
Set shpBox2 = myDoc.Shapes.AddShape(msoShapeRectangle, 10, 10, 10, 10)
Set shpCon = myDoc.Shapes.AddConnector(msoConnectorElbow, 10, 10, 10, 10)
shpCon.Line.ForeColor.RGB = RGB(255, 0, 0) '赤線
'隠しオブジェクトを非表示
shpBox1.Visible = msoFalse
shpBox2.Visible = msoFalse
'隠しオブジェクトにコネクタ接続
shpCon.ConnectorFormat.BeginConnect shpBox1, 3
shpCon.ConnectorFormat.EndConnect shpBox2, 2
'隠しオブジェクトの位置で形状を調整
shpBox1.Left = 10
shpBox1.Top = 10
shpBox2.Left = 60
shpBox2.Top = 60
'■擬似的なL型コネクタ■(始点/終点を移動するとクランク型になります)
Dim shpCon2 As Shape
Set shpCon2 = myDoc.Shapes.AddConnector(msoConnectorElbow, 100, 100, 150, 150)
shpCon2.Line.ForeColor.RGB = RGB(0, 0, 255) '青線
'調整
shpCon2.Adjustments(1) = 0
Dim shpCon3 As Shape
Set shpCon3 = myDoc.Shapes.AddConnector(msoConnectorElbow, 200, 200, 250, 250)
shpCon3.Adjustments(1) = 1
'調整
shpCon3.Line.ForeColor.RGB = RGB(0, 255, 0) '緑線
End Sub
参考になれば幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/11 02:50
2017/10/11 02:58