Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » ActiveXコントロールをすべて削除するExcelマクロ

ActiveXコントロールをすべて削除するExcelマクロ

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

ActiveXコントロールをすべて削除するExcelマクロ

「execl vba activexコントロール 全シート 一括削除」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

Excel VBA(Visual Basic for Applications)で、すべてのシート上に存在するActiveXコントロールを削除するには、どのようなコードを書けばいいのかを探している方による検索です。

大量のActiveXコントロールが存在するブックで、とにかく一旦すべて削除したいというのは、ありそうな要望に思えます。

[スポンサードリンク]

アクティブシート上のActiveXコントロールを削除するサンプルマクロ

以下のようなマクロで、アクティブなシート上に存在するすべてのActiveXコントロールを削除できます。

Sub ActiveXコントロールを削除する_アクティブシート()

 Dim shp As Shape

 For Each shp In ActiveSheet.Shapes
  If shp.Type = msoOLEControlObject Then
   shp.Delete
  End If
 Next shp

End Sub

アクティブシート上の全Shapeに対してFor Each~Nextループを回して、
 For Each shp In ActiveSheet.Shapes

ShapeオブジェクトのTypeプロパティが、定数・msoOLEControlObjectだったときに、
  If shp.Type = msoOLEControlObject Then

削除を行っています。
   shp.Delete

全ワークシート上のActiveXコントロールを削除するサンプルマクロ

「execl vba activexコントロール 全シート 一括削除」
という検索をなさった方の要望をかなえるには以下のようなマクロです。

Sub 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

End Sub

全ワークシートに対する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マクロ

「Shapesコレクション・Shapeオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.