Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11004 / 76735 ←次へ | 前へ→

【71273】Re:オートシェイプにコネクタがつながっているかどうかを調べる
発言  kanabun  - 12/2/17(金) 8:23 -

引用なし
パスワード
   ▼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

8 hits

【71269】オートシェイプにコネクタがつながっているかどうかを調べる sakumambo 12/2/16(木) 22:25 質問
【71270】Re:オートシェイプにコネクタがつながって... kanabun 12/2/16(木) 22:52 発言
【71271】Re:オートシェイプにコネクタがつながって... sakumambo 12/2/17(金) 0:36 質問
【71273】Re:オートシェイプにコネクタがつながって... kanabun 12/2/17(金) 8:23 発言
【71274】Re:オートシェイプにコネクタがつながって... kanabun 12/2/17(金) 8:31 発言
【71299】Re:オートシェイプにコネクタがつながって... sakumambo 12/2/18(土) 10:54 質問
【71300】Re:オートシェイプにコネクタがつながって... hint 12/2/18(土) 16:55 発言

11004 / 76735 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free