電子書籍の厳選無料作品が豊富!

A列にオートシェイプの図形がいくつかある場合、数を拾い出すことは出来るのでしょうか?ご存知の方がいましたら教えてくれませんか?

A 回答 (2件)

こんにちは。



もう解決済みかもしれませんが、フォーム・ツールなどに対して、こんな風にして、オートシェイプのみを選別します。KenKen_SPさん、スレッド汚してすみません。

Sub ShapesCount2()
 Dim shp As Object
 Dim cnt As Long
 For Each shp In ActiveSheet.Shapes
  If shp.Type = msoAutoShape Then
   If shp.TopLeftCell.Column = 1 Then
    cnt = cnt + 1
   End If
  End If
 Next shp
 MsgBox cnt & "個", vbInformation
End Sub

たぶん、AutoShape という総合(統合)名称になっているので、AutoShapes のコレクションですと、いくつか別の種類も出てきてしまいます。なお、非表示オブジェクトに対してもカウントしています。
    • good
    • 0

こんにちは。

KenKen_SP です。

マクロで数えるしかないと思います。

Sub CountAutoShapes()

  Dim objShp As Shape
  Dim lngCnt As Long
  
  lngCnt = 0
  For Each objShp In ActiveSheet.Shapes
    'A列=列番号1
    If objShp.TopLeftCell.Column = 1 Then
      lngCnt = lngCnt + 1
    End If
  Next objShp
  Set objShp = Nothing
    
  MsgBox lngCnt & "個です。"

End Sub
    • good
    • 0
この回答へのお礼

ありがとうございす。助かりました。

お礼日時:2005/08/23 00:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!