引用:
Excelのシート上に作成した、ひし形のオートシェイプを全部消す
(標準モジュール)
---------------------------------------------------------------
Sub DeleteAllDiamonds()
Dim shpTarget As Excel.Shape
Dim lngDeletedCount As Long
Application.ScreenUpdating = False
For Each shpTarget In ActiveSheet.Shapes
With shpTarget
If
.Type = msoAutoShape Then
If
.AutoShapeType = msoShapeDiamond Then
.Delete
lngDeletedCount = lngDeletedCount + 1
End If
End If
End With
Next
Application.ScreenUpdating = True
Dim strMsgText As String
If lngDeletedCount = 0 Then
strMsgText = "アクティブシートにひし形はありません。"
Else
strMsgText = lngDeletedCount & "個のひし形を削除しました。"
End If
MsgBox strMsgText, vbInformation, "実行完了"
End Sub
---------------------------------------------------------------
引用:
実行時エラー:438
オブジェクトは、このプロパティまたはメソッドをサポートしていません。
引用:
ActiveSheet.msoShapeDiamond.Delete
・Excel.Worksheet オブジェクトに msoShapeDiamond という名前の
メンバーは存在しない。
・また、「ワークシート上の全てのひし形(のみ)の集合」を
コレクションとして返すプロパティやメソッドはサポートされていない。
引用:
ActiveSheet.Ovals.Delete
・Ovals メソッドは過去のバージョンとの下位互換性のために
残されているメンバーであり、現在のバージョンの Excel では
Excel.Worksheet オブジェクトの非表示メンバーとなっている。