「エクセル マクロ リンクした図の削除」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
リンクされた図・画像を削除するExcelマクロ・VBA(Visual Basic for Applications)のコードを探している方による検索です。
「リンクした図」と表現されているものが、具体的に何を意味しているのかわかりませんので、参考になりそうなマクロを2つご紹介しておきます。
一つは[図の挿入]ダイアログの[ファイルにリンク][挿入とリンク]から挿入された、
リンクされた画像を削除するマクロ。
もう一つは[リンクされた図]コマンドや[カメラ]コマンドから挿入されたリンクされた図を削除するマクロです。
図の挿入ダイアログから挿入されたリンクされた図を削除するサンプルマクロ
以下のようなマクロで、図の挿入ダイアログから挿入された、アクティブシート上のリンクされた図を削除できます。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だったときに削除を行っています。
リンクされた図・カメラコマンドで挿入されたリンクされた図を削除するサンプルマクロ
[リンクされた図]コマンドや[カメラ]コマンドで挿入された、リンクされた図の場合は上記のマクロでは削除できません。
[リンクされた図][カメラ]コマンドで挿入されたリンクされた図の場合、以下のようなマクロで削除できます。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マクロ