シートにオートシェイプ、画像などが利用されているかを確認する。
指定のシート内にオートシェイプ、線、画像、SmartArtなど図が利用されているかを確認します。
確認するにはSheetオブジェクト内のShapesプロパティを利用して調べることができます。
このサンプルコードではオートシェイプ、線、画像、SmartArtなどの図の種類は問わずに図が使われているかを確認し、その総数を出力しています。
動作確認
Windows10/Excel2016:○
Windows11/Excel2024:○
'******************************************************************
' オートシェイプ、画像などの有無を判定
'******************************************************************
Sub Main_ChkShapes()
Dim sObj As Shape
Dim lCnt As Long
'指定のシート内の図(オートシェイプ、画像など)があればカウント
For Each sObj In Sheets("Sheet1").Shapes
lCnt = lCnt + 1
Next
'有無結果
If lCnt > 0 Then
Debug.Print "オートシェイプ、画像などのオブジェクトが" & lCnt & "個あります"
Else
Debug.Print "オートシェイプ、画像などのオブジェクトはありません"
End If
End Sub■実行結果




