色彩検定1級を取得する魅力を紹介♪

Excelでかなりの数のブックから大小様々な画像を消す作業をすることになりました。
「オブジェクト選択→消去」を手作業で1つ1つ消去するにはシートも多く、
ブックも100以上あり、かなり時間がかかってしまうため
出来ればマクロで自動化したいです。
詳しい方、お手すきで構いませんので教えて下さると助かります。

以下、詳細です。
・ブック内のオブジェクト画像は大小さまざまで、複数のシートに渡ってかなりの数が貼ってあります。(画像を貼っていないシートもあります)
・位置がバラバラなものもあり、一定ではありません。
・フォルダ内すべて.xlsx形式←画像をすべて消去したあと、同名のブックに上書き保存したいです

***

例えばですが、作業に必要であれば、
同じフォルダ内にマクロ有功ブック(.xlsm形式)を作成するようなことも可能です。

情報足りなければ補足致します。
急ぎではございませんので、どうぞよろしくお願いいたします。

gooドクター

A 回答 (2件)

こんにちは


シート上にあるすべてのオブジェクトを削除の対象にする場合は
検索と選択→条件を選択してジャンプ、選択オプションオブジェクト選択してOKボタンを押し、Deleteキー で記録されるマクロです。
(この実行で削除されるオブジェクトが対象になります。)

ActiveSheet.DrawingObjects.Delete

これをフォルダに入れいるすべてのブックにあるすべてのシートに対して実行すれば良い事になります。(閉じる時は上書き保存)
これは、削除したくないオブジェクトが無い事が前提です。

サンプルです 
Sub Sample()
Dim filepath As String, TagetBk As String
Dim sH As Worksheet
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "フォルダを選択してください"
If .Show = True Then
filepath = .SelectedItems(1)
End If
End With
If filepath = "" Then Exit Sub
TagetBk = Dir(filepath & "\*.xlsx")
Application.ScreenUpdating = False
Do Until TagetBk = ""
With Workbooks.Open(filepath & "\" & TagetBk)
For Each sH In .Worksheets
sH.DrawingObjects.Delete
Next
.Close SaveChanges:=True '保存して閉じる
End With
TagetBk = Dir
Loop
Application.ScreenUpdating = True
End Sub

変更された内容は上書きされますのでコピーブックなどでかつ、
実行は自己責任で行ってください。

シェイプのタイプで処理を分ける場合は
sH.DrawingObjects.Delete 部分で(このコードの代わりに)
For Each objXX In sH.Shapes
If objXX.Type<>?? Then
'オブジェクトを削除
tobjXX.Delete
End If
Next
みたいにします。
    • good
    • 1
この回答へのお礼

助かりました

ご丁寧にありがとうございます!
わかりやすくて感動いたしました。
早速VBAを使わせていただき、上手くいきました。

シェイプのタイプは実際には複数あるのですが、
特に今回は関係なく全て消去したかったので本当に助かりました。

※他の方からもありましたが、この作業をするブックは一定期間でバックアップおよびコピーを取っており、最終的には数字のみ残っていればいいものなので問題ございません。オブジェクトによりかなり容量も逼迫しておりましたので、その点も解消され万々歳です。本当にありがとうございました。

お礼日時:2021/05/27 01:30

わたしなら、迷わず手作業で、1ブックずつ、消していきます。


VBA作って、テストして、・・・。ここまでは確実に必要な作業ですが、私の性格だと、すべてのブックの削除結果を確認すると思うので、結局、手作業でやった方が早いことになります。
まあ、性格によるものなので・・・。あなたの度胸次第ですね!!
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング