Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » 接続しているコネクタが存在するか判定するExcelマクロ

接続しているコネクタが存在するか判定するExcelマクロ

対象: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

サンプルマクロで利用しているオブジェクト式について

ShapeオブジェクトのConnectorFormatプロパティで取得できる、ConnectorFormatオブジェクトの、

接続しているコネクタが存在するか判定するExcelマクロ

BeginConnectedプロパティとEndConnectedは、いずれかの図形に接続されているときにTrueを返します。

接続しているコネクタが存在するか判定するExcelマクロ

この判定を行っているのが、
   If _
   .ConnectorFormat.BeginConnected Or _
   .ConnectorFormat.EndConnected Then
のIf文です。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » 接続しているコネクタが存在するか判定するExcelマクロ

「Shapesコレクション・Shapeオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.