xcel 2013 マクロ講座 28回

選択シート内の画像をまとめて削除する

27回選択したセル範囲全体を連続処理するに引き続き、今回もFor Each~Nextステートメントを使います。

(サンプルファイルは、こちらから 2013マクロ講座28回サンプルデータ

マクロで図形を操作するには

予備知識
ワークシート上の図形、または描画オブジェクトは、マクロでは、なんと表すでしょうか。
これらは、3 つの異なるオブジェクト、 Shapes コレクション、 ShapeRange コレクション、および Shape オブジェクトで表されます。
Shapes

図形を削除するコードを書く

For Each~Nextステートメントを以下の用に使います。
構文
では、Visual Basic Editorを起動します。

Alt+F11 でVBEの起動ができます。
「挿入」メニューの「標準モジュール」をクリックします。コードは、「標準モジュール」上に記入します。
以下のように、コードを記述します。
Sub 画像まとめて削除() と書くと、
自動的に、
End Sub
と記入されます。
画像削除
変数名は、わかりやすくするために「画像」としておきます。

Dim 画像 As Shape

操作対象は、Sheet1上の画像、またはActiveShee上の画像です。

表し方は、Sheet1.ShapesActiveSheet.Shapes
スポンサーリンク
スポンサーリンク

すると、For Each~Nextステートメントの構文は、以下のようになりますよ。
For Each
何をしたいかといえば、Delete です。
画像.Delete
コードは、このようになります。
画像削除コード
Sub 画像まとめて削除()
    Dim 画像 As Shape
    
    For Each 画像 In ActiveSheet.Shapes
        画像.Delete
    Next
End Sub
    
では、実際に動作を確認しましょう。
画像がいっぱい表示されたシートを表示してマクロを実行します。
画像まとめて削除するマクロ
一瞬で画像が削除されました。
画像削除マクロ
スポンサーリンク
スポンサーリンク