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
    
では、実際に動作を確認しましょう。
画像がいっぱい表示されたシートを表示してマクロを実行します。
画像まとめて削除するマクロ
一瞬で画像が削除されました。
画像削除マクロ
スポンサーリンク
スポンサーリンク