Excelで2つの図形をコネクタでつなぐ場合、マウスで、接点に合わせるだけでできますが、それも回数が増えてくるのマウスを操作する手になかなか負荷になってきます。
決まりきってるコネクタならマウス3クリックでできるようにマクロを作成しました。
マクロ
Private Sub CommonConnect(ByVal dashstyle As Integer)
Dim shp As Shape
Dim con As ConnectorFormat
Dim i As Long
On Error GoTo ERR_HNDL
i = 1
'2個選択されているかチェック
If Selection.ShapeRange.Count = 2 Then
Set shp = ActiveSheet.Shapes.AddConnector( _
Type:=msoConnectorElbow, _
BeginX:=0, BeginY:=0, _
EndX:=99, EndY:=99)
shp.Line.ForeColor.RGB = RGB(0, 0, 0)
shp.Line.BeginArrowheadStyle = msoArrowheadTriangle
shp.Line.EndArrowheadStyle = msoArrowheadTriangle
shp.Line.dashstyle = dashstyle
Set con = shp.ConnectorFormat
con.BeginConnect _
ConnectedShape:=Selection.ShapeRange(i), _
ConnectionSite:=4
con.EndConnect _
ConnectedShape:=Selection.ShapeRange(i + 1), _
ConnectionSite:=2
shp.Select
Else
MsgBox "1つのみ、または3個以上選択されています。"
End If
Exit Sub
ERR_HNDL:
MsgBox "図形が選択されていません。"
End Sub
Sub コネクト実線()
CommonConnect (msoLineSolid)
End Sub
Sub コネクト破線()
CommonConnect (msoLineDash)
End Sub
マクロ動作
2つの図形をコネクタでつなぎます。
MsoLineDashStyle 列挙
CommonConnect ()の引数について公式はこちら。
今回のマクロで使用したのは以下の通り。
msoLineSolid | 実線 | |
msoLineDash | 破線 |
ConnectionSite
どこにつなぐか。公式はこちら。
私は調べるよりも値変えてみて確認してしまいます。
ExcelVBA逆引き大全 600の極意 Office365/2019/2016/2013/2010対応 新品価格 |