This does PICTURES only, not other shapes.
remove comment on volatility if needed
Function NumPicsInRange(rngToSearch As Range)
'application.volatile
Dim n&, pic
For Each pic In ActiveSheet.Pictures
If Not Intersect(rngToSearch, pic.TopLeftCell) Is Nothing Then n = n + 1
Next
NumPicsInRange = n
End Function