対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016
ShapeオブジェクトのConnectorプロパティを使って、コネクタが存在するかどうかを判定できることをご紹介しました。
実は、Shape.Connectorプロパティだけを使って判定すると、どの図形とも接続されていないコネクタ(結局それは「線」なのですが)も、コネクタと判定されてしまうという課題もあります。
いずれかの図形に接続されているコネクタだけをコネクタと判定するならば、判定条件を増やす必要があります。
[スポンサードリンク]
図形に接続しているコネクタが存在するかを判定するサンプルマクロ
以下のSubプロシージャを実行すると、図形に接続しているコネクタが存在しているときに、
「図形に接続しているコネクタが存在します!」
メッセージが表示されます。
Sub 図形に接続しているコネクタが存在するかを調べる()
Dim shp As Shape For Each shp In ActiveSheet.Shapes
With shp
If .Connector Then
If _
.ConnectorFormat.BeginConnected Or _
.ConnectorFormat.EndConnected Then
MsgBox "図形に接続しているコネクタが存在します!"
Exit Sub
End If
End If
End With
Next shp
MsgBox "図形に接続しているコネクタは存在しません。"
End Sub
Dim shp As Shape For Each shp In ActiveSheet.Shapes
With shp
If .Connector Then
If _
.ConnectorFormat.BeginConnected Or _
.ConnectorFormat.EndConnected Then
MsgBox "図形に接続しているコネクタが存在します!"
Exit Sub
End If
End If
End With
Next shp
MsgBox "図形に接続しているコネクタは存在しません。"
End Sub
サンプルマクロで利用しているオブジェクト式について
ShapeオブジェクトのConnectorFormatプロパティで取得できる、ConnectorFormatオブジェクトの、
BeginConnectedプロパティとEndConnectedは、いずれかの図形に接続されているときにTrueを返します。
この判定を行っているのが、
If _
.ConnectorFormat.BeginConnected Or _
.ConnectorFormat.EndConnected Then
のIf文です。
[スポンサードリンク]
Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » 接続しているコネクタが存在するか判定するExcelマクロ