Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » リンクされた図・画像を削除するExcelマクロ

リンクされた図・画像を削除するExcelマクロ

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

「エクセル マクロ リンクした図の削除」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

リンクされた図・画像を削除するExcelマクロ・VBA(Visual Basic for Applications)のコードを探している方による検索です。

「リンクした図」と表現されているものが、具体的に何を意味しているのかわかりませんので、参考になりそうなマクロを2つご紹介しておきます。

一つは[図の挿入]ダイアログの[ファイルにリンク][挿入とリンク]から挿入された、

リンクされた図を削除するExcelマクロ

リンクされた画像を削除するマクロ。

もう一つは[リンクされた図]コマンドや[カメラ]コマンドから挿入されたリンクされた図を削除するマクロです。

[スポンサードリンク]

図の挿入ダイアログから挿入されたリンクされた図を削除するサンプルマクロ

以下のようなマクロで、図の挿入ダイアログから挿入された、アクティブシート上のリンクされた図を削除できます。
Sub リンクされた図を削除する_msoLinkedPicture()
 Dim shp As Shape
 For Each shp In ActiveSheet.Shapes
  If shp.Type = msoLinkedPicture Then
   shp.Delete
  End If
 Next
End Sub

アクティブなシート上の全ShapeをFor Each~Nextループで順番に調べ、Shape.TypeプロパティがmsoLinkedPicutreだったときに削除を行っています。

リンクされた図・カメラコマンドで挿入されたリンクされた図を削除するサンプルマクロ

[リンクされた図]コマンドや[カメラ]コマンドで挿入された、リンクされた図の場合は上記のマクロでは削除できません。

[リンクされた図][カメラ]コマンドで挿入されたリンクされた図の場合、以下のようなマクロで削除できます。
Sub リンクされた図を削除する_Formula()
 Dim shp As Shape
 For Each shp In ActiveSheet.Shapes
  If shp.OLEFormat.Object.Formula <> "" Then
   shp.Delete
  End If
 Next
End Sub

[リンクされた図][カメラ]コマンドで挿入された、リンクされた図の場合、OLIFormatオブジェクトの、Objectオブジェクトの、Formulaプロパティにリンク先のアドレスが格納されています。

このFormulaプロパティが空っぽだったときに、削除を行っています。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » リンクされた図・画像を削除するExcelマクロ

「Shapesコレクション・Shapeオブジェクト」の記事一覧

検索


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

.