|
▼sakumambo さん:
>▼kanabun さん:
>コネクタがつながっていないオートシェイプを探したいです。
>コネクタがつながっていないオートシェイプが存在するのは作図ミスなのでそれを発見しなければならないといことで、困っています。
>用途を書かずすみませんでした。
そうすると、最初に Dictionaryに図形名を全部登録しておいて、
それから先ほどの「コネクターが接続している図形」名を調べ、その
名前がDictionaryにあれば削除していき、 ... Dictionaryに残った図形
名が、コネクタが接続されていない、ということかな?
Sub コネクタが接続されていないAutoShape()
Dim shp As Object
Dim dic As Object
Dim ss As String
Set dic = CreateObject("Scripting.Dictionary")
'すべての図形名を辞書に登録
For Each shp In ActiveSheet.DrawingObjects
dic(shp.Name) = Empty
Next
'コネクタにつながっている図形を除外
For Each shp In ActiveSheet.DrawingObjects
With shp.ShapeRange
If .Connector Then 'コネクターだったら
With .ConnectorFormat
If .BeginConnected Then
ss = .BeginConnectedShape.Name
If dic.Exists(ss) Then dic.Remove ss
End If
If .EndConnected Then
ss = .EndConnectedShape.Name
If dic.Exists(ss) Then dic.Remove ss
End If
End With
End If
End With
Next
If dic.Count > 0 Then
MsgBox Join(dic.Keys(), vbCrLf), , _
"Connectorにつながっていない図形は"
Else
MsgBox "すべての図形はConnectorと接続中"
End If
End Sub
|
|