「execl vba activexコントロール 全シート 一括削除」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
Excel VBA(Visual Basic for Applications)で、すべてのシート上に存在するActiveXコントロールを削除するには、どのようなコードを書けばいいのかを探している方による検索です。
大量のActiveXコントロールが存在するブックで、とにかく一旦すべて削除したいというのは、ありそうな要望に思えます。
アクティブシート上のActiveXコントロールを削除するサンプルマクロ
以下のようなマクロで、アクティブなシート上に存在するすべてのActiveXコントロールを削除できます。
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
If shp.Type = msoOLEControlObject Then
shp.Delete
End If
Next shp
アクティブシート上の全Shapeに対してFor Each~Nextループを回して、
For Each shp In ActiveSheet.Shapes
ShapeオブジェクトのTypeプロパティが、定数・msoOLEControlObjectだったときに、
If shp.Type = msoOLEControlObject Then
削除を行っています。
shp.Delete
全ワークシート上のActiveXコントロールを削除するサンプルマクロ
「execl vba activexコントロール 全シート 一括削除」
という検索をなさった方の要望をかなえるには以下のようなマクロです。
Dim sh As Worksheet
Dim shp As Shape
For Each sh In Worksheets
For Each shp In sh.Shapes
If shp.Type = msoOLEControlObject Then
shp.Delete
End If
Next shp
Next sh
全ワークシートに対するFor Each~Nextループの中で、
For Each sh In Worksheets
先の、アクティブシート上のActiveXコントロールを削除するマクロと同じ処理を行っています。
For Each shp In sh.Shapes
If shp.Type = msoOLEControlObject Then
shp.Delete
Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » ActiveXコントロールをすべて削除するExcelマクロ