【ExcelVBA】シート上に設置されているコントロールやシェイプを全て削除するには

この記事では、シート上に設置されているコントロールやシェイプを全て削除する方法についてご説明します。

【動画】シート上に設置されているコントロールやシェイプを全て削除する実際の動き

本題に入る前に、まずは次の動画をご覧ください。


シート上に設置されているすべてのコントロールやシェイプを取得してDeleteメソッドで削除しています。

マクロ作成の流れ

STEP.1
シート上に設置されているすべてのコントロールやシェイプを取得する
シート上に設置されているすべてのコントロールやシェイプを取得します。
STEP.2
取得したコントロールやシェイプを削除する
取得したコントロールやシェイプを削除します。

コードの例

Option Explicit

Sub test()

    Dim shp As Shape        'Shape型の変数を宣言
    
    'ActiveSheetオブジェクト内の全てのShapeを繰り返し処理
    For Each shp In Worksheets("top").Shapes
    
        'Shapeを削除する
        shp.Delete
        
    Next shp
    
End Sub

注目すべきコード①

最初に見て頂きたいのは8行目です。

    'ActiveSheetオブジェクト内の全てのShapeを繰り返し処理
    For Each shp In Worksheets("top").Shapes

コードの説明

以上のコードは、シート上に設置されているコントロールやシェイプを全て取得するFor文です。

For文内でソート上に設置されているコントロールやシェイプを一つずつ取得します。

取得したコントロールやシェイプは変数shpに格納されます。

注目すべきコード②

次に見て頂きたいのは11行目です。

        'Shapeを削除する
        shp.Delete

コードの説明

注目すべきコード①」で取得したコントロールやシェイプを、Deleteメソッドで削除します。

動作確認

マクロ実行前

以下のExcelのシートにコントロールやシェイプが適当に配置されています。

マクロ実行後

マクロが実行されると、Excelのシートに配置されていたコントロールやシェイプが全て削除されました。

最後に

この記事では、シート上に設置されているコントロールやシェイプを全て削除する方法についてご説明しました。

シート上に設置されているコントロールやシェイプを取得し削除するを繰り返すことでシート上からコントロールやシェイプが無くなります。

シート上に設置されているコントロールやシェイプを全て削除したいけど手動でやるのは面倒…という場合は本マクロを参考にしてみてくださいね。

プログラミングのスキルを習得するなら

プログラミングのスキルを習得したい、今のスキルをもっと高めたい、そう考えているなら「プログラミングスクール」がおすすめです。

プログラミングのスキルの基礎を身につけるなら「TechAcademy」で1週間の無料体験があるので、これで「プログラミングの基礎」を学ぶのにおすすめですよ。

→ TechAcademyの「1週間 無料体験」はこちら