
使いづらいエクセル資料が送られてきて困ってます…
例えばこんな感じ…(適当に作ってみました)


このレイアウトを見て、嫌悪感を覚える人もいるでしょうね(笑)



これの何がいけないの?
このレイアウトのダメな点
・独自のレイアウト
・画像がペタペタ貼ってあってめちゃくちゃ重い
・セルの結合多い
・謎にスペースが多用してある
という点です。
このようなエクセルはインポートが出来ないのでデータベースを扱う側からすると嫌がられます。
僕は中国や国内の企業さんから新商品の提案書を受け取って自社のデータベースにまとめたり
ECサイトの管理をしたりしています。
一日で100商品ぐらいをまとめたりしているのですが、届いたエクセルの資料を見ていつも思います。
何これ?嫌がらせ??
唯一の救いはエクセルで送ってくれることです。パワポやPDF送られてきたときはマジでキツイ。
データベースやECサイトはエクセル(CSV)でインポートが出来ますからエクセルだと格段に楽(時間の節約)ができるんです。
インポートが出来る形はというのは
・1行目に各項目。2行目から詳細
・セルの結合は無し


こんな資料を送ってもらえたら、数分で作業が終わるので大変喜ばしいことなのですが
どこの会社にもテンプレートがありますから、わがままばかりは言っていられませんよね。
頂いた資料を元にレイアウトの変更を行うしかあります。
ですから僕が最初にやることは
ファイル内の画像を全て削除!
デ〇ノートの魅上のように華麗に削除していきます。
画像がいくつも貼ってあると重いし編集の邪魔になりますので…
いくつもある画像を1個ずつ選択して削除するのは面倒なので、1分でサクッと終わらせましょう。
1回コピペするだけで簡単なので出来て損はないですよ。ぜひ挑戦してみてください。
・エクセルファイル内にある全ての画像を削除する方法(コード付き)
・エクセルファイル内にある全ての画像を抜き出す方法(記事紹介)
エクセルファイル内にある全ての画像を削除する方法
「百聞は一見に如かず」というのでまずは動画を見てください。(再生時間40秒)
(ページが変わっていないのにカーソルが挙動不審な動きをしているのは、下記で説明する「ステップ4」~「ステップ6」の作業をしています。)
これから紹介する方法を手順通りにやってもらえれば、「マクロ使い」の一歩を踏み出せます。
マクロを使う前にはバックアップとして必ずファイルの複製を行ってください!
データの損失や破損などによる責任は負いかねます。
エクセルファイル内にある全ての画像を削除する手順
バックアップ兼、画像抽出用の為にも複製をしておきましょう。データのバックアップは鉄則です!
まずは、下記のコードをコピーしてください。
Sub 画像の削除()
Dim ws As Worksheet, shp As Shape
For Each ws In Worksheets
For Each shp In ws.Shapes
If shp.Type = msoPicture Then shp.Delete
Next shp
Next ws
End Sub




「Alt」と「F11」を押しても反応がない場合はWindowsマークの横にある「Fn」を一回押してからやってみてください。


「挿入」から「標準モジュール」を選んで開かれたシートに、先ほどコピーしたコードを貼り付けて閉じます。


「ツール」から「マクロ」を選び「画像の削除」を指定して「実行」を押す。


たったこれだけでマクロ発動!!
キレイさっぱり画像が削除されています。
マクロを保存する方法
今後もマクロを使う機会があるのであればマクロの保存をお勧めします。
先ほどの「ステップ5」(挿入→標準モジュール→貼り付け)まで進んだ状態で
「ファイル」→「ファイルのエクスポート」を選びます。
「.bas」以前には「画像の削除」など分かり易い名前を付けて保存してください。
再度使用する際には、
「ステップ3」(編集したいエクセルファイルを開く)と
「ステップ4」(「Alt」キーと「F11」キーを押してvisual basic for application(VBA)を開く)を実行したら
「ファイル」→「ファイルのインポート」を行ってください。
あとは「ステップ6」(「ツール」→「マクロ」→「実行」)と同じ動作でOKです。
画像の抽出
※「ステップ1」で複製したファイルをさらにバックアップ用に複製しておきましょう。
資料がまとまったら次に画像の抽出をします。
「ステップ1」で複製したエクセルファイルの拡張子を「.zip」に変更し圧縮フォルダにします。
「ファイルが使えなくなる可能性が~」みたいな警告が出ますが気にせず進みましょう。
その圧縮フォルダ内の「xl」→「media」というフォルダの中に全ての画像が収納されています。
適当に外に出せば使えるようになります。


まとめ
今回はエクセルファイル内の画像を一瞬で全部削除するマクロを紹介しました。
VBAを開いてコードを貼り付ける➡マクロ実行
ざっくり言うとこれだけです。
データベース使っているとエクセルのレイアウトは特に気になっちゃいますよね。
相手が合わせてくれれば、それほど楽でありがたいことはないですが、そうはいきません。
「僕が使いやすいレイアウトにしてください!!」
なんて強要もできませんのでまずは自分で問題解決に努めること。
知識も増えるしスキルの向上にもつながります。
エクセルの資料作りだけでなく、どんなことにも通ずる話ですよね。
僕も初心者ですので、今後も初心者でも使いやすい便利なマクロを探していきます。
良いのがあればまた紹介させていただきます。
ノシ