アクティブシートの画像を全て削除する マクロ VBA For each構文 Shape.Typeプロパティの一覧表

たくさんの画像を扱っていると一気に画像の削除をしたくなるときがあります。

 

都度、手作業で削除する方法は

 

①画像を選択してdeleteキーで消去する

 

全て選択して消去する場合は

 

②Controlキー + G  → セル選択 → オブジェクトをにチェック → OK で画像全てが選択されるので deleteキー!

 

本題のマクロで一気に消去するには For each 構文を使います♪

For eachはお初目ですねww

For each構文はオブジェクトの中身を調べてくれる優れものです♪

For eachでShapeオブジェクトを対象にして削除しちゃいましょう!

 

サンプルは下記

shapeオブジェクトはたくさんのオブジェクトを含んでいます。

下記は備忘録として記載しておきます。

画像は msoLinkedPicture もしくは msoPicture を指定します。

オブジェクト名 詳細
msoShapeTypeMixed -2 他のオブジェクトと混ざっている状態
msoAutoShape 1 グラフ
msoCallout 2 吹き出し 引き出し線
msoChart 3 グラフ
msoComment 4 コメント
msoFreeform 5 フリーフォーム
msoGroup 6 グループ化された図形
msoEmbeddedOLEObject 7 埋め込みOLEオブジェクト
msoFormControl 8 フォームコントロール
msoLine 9
msoLinkedOLEObject 10 リンクOLEオブジェクト
msoLinkedPicture 11 リンクしている画像
msoOLEControlObject 12 ActiveXコントロール
msoPicture 13 画像
msoPlaceholder 14 プレースホルダー
msoTextEffect 15 テキスト効果
msoMedia 16 メディア
msoTextBox 17 テキストボックス
msoScriptAnchor 18 スクリプトアンカー
msoTable 19
msoCanvas 20 キャンバス
msoDiagram 21 図表
msoInk 22 インク
msoInkComment 23 インクコメント
msoIgxGraphic 24 スマートアート
msoWebVideo 26 ウェブビデオ
msoContentApp 27 コンテンツアプリ
msoGraphic 28 グラフィック
msoLinkedGraphic 29 リンクグラフィック

コメント

タイトルとURLをコピーしました