Home » エクセルマクロ・Excel VBAの使い方 » DrawingObjects » ActiveSheet.Pictures.Deleteとは

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel(バージョン2106 ビルド14131.20278 Microsoft Store)

レガシーなオブジェクト・DrawingObjects系のオブジェクトは(わかっている人にとっては便利なのですが)、Excel VBA初学者のハードルを上げる要因になっています。

「vba Pictures Delete」
「ActiveSheet.Pictures.Delete」
といった検索キーワードでアクセスがありました。

DrawingObjects系のオブジェクトを使った

ActiveSheet.Pictures.Delete

といったExcel VBAのコードを、どこかで見かけた方による検索でしょう。

[スポンサードリンク]

ActiveSheet.Pictures.Deleteの意味

結論からお伝えすると「ActiveSheet.Pictures.Delete」とは、Worksheet.Picturesメソッドを使ってアクティブシート上の全画像を表すPicturesコレクションを取得して、Pictures.Deleteメソッドで画像を一括削除しているコードです。

意味としては上記のとおりですが、Picturesコレクションはレガシーなオブジェクトであり、最低でもFor Each~Nextループを使った画像削除を理解してから使うことを、おすすめします。

Worksheet.Pictures.Deleteの確認手順

「ActiveSheet.Pictures.Delete」
を使うのなら、オブジェクトブラウザーを引き、テストコードを実行して戻り値を確認し、コードの意味を理解してからにしましょう。

オブジェクトブラウザーで[非表示のメンバーを表示]オプションをOnの状態にすると、PicturesオブジェクトやPicturesメソッドを確認できるようになります。

ローカルウィンドウで非表示のメンバーを表示設定にしてPicturesを完全一致検索した結果

グローバルなActiveSheetプロパティで取得できるWorksheetオブジェクトには、戻り値が「As Object」として定義されているPicturesメソッドが、実は存在することがわかります。

Excel.Worksheet.Pictures

Worksheet.Picturesメソッドの戻り値は、Objectと定義されていますけれど、

Sub Picturesメソッドの戻り値を確認する()
 Dim obj As Object
 Set obj = ActiveSheet.Pictures
 Stop
End Sub

といったSubプロシージャを実行して、ローカルウィンドウを使ってオブジェクト変数objを確認すれば、下図のとおりActiveSheet.Picturesの戻り値がPicturesオブジェクトであることがわかります。

ローカルウィンドウでActiveSheet.Picturesの戻り値を確認

オブジェクトブラウザーのクラスペインで「Pictures」を選択すれば、

Excel.Pictures.Delete

Deleteメソッドが存在することを確認できます。

最終更新日時:2021-11-04 13:32

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » DrawingObjects » ActiveSheet.Pictures.Deleteとは

「DrawingObjects」の記事一覧

検索


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

.