Excelに貼り付けられた画像をJPG・PNGで取り出す方法|1枚だけ・大量画像を一括保存する手順

Excel

メールや仕事相手から送られてきたExcelファイルに写真や画像が貼り付けられていて、「この画像だけをExcelから取り出してJPGやPNGファイルとして保存したい」ということがあります。画像をスクリーンショットで撮影する方法もありますが、元の画像より画質が落ちたり、余計な部分が入ったりするため、できればExcel内の画像データを直接取り出したいところです。

Excelの画像を取り出す方法はいくつかあり、画像が1~2枚なら右クリックから保存する方法、保存できない場合はコピーして画像編集ソフトへ貼り付ける方法、画像が大量にあるならxlsxファイルの内部から一括抽出する方法が便利です。

なお、「PGN」は一般的な画像形式ではなく、画像形式としては「PNG(.png)」を指しているケースが多いため、この記事ではJPG(JPEG)とPNGへの保存方法を中心に解説します。

一番簡単:画像を右クリックして「図として保存」を使う

Excelに貼り付けられた画像が1枚または数枚程度なら、最初に試したいのが「図として保存」です。利用しているExcelのバージョンや画像の種類によって表示される項目は異なりますが、対応している画像なら非常に簡単に保存できます。

Excelを開いて保存したい画像をクリックし、画像が選択された状態で右クリックします。メニューに「図として保存」などの項目が表示されたら、それを選択します。

保存画面が表示されたら保存先とファイル名を指定し、利用可能な形式からPNGやJPEGを選択して保存します。これだけでExcelとは独立した通常の画像ファイルとして利用できるようになります。

MicrosoftもOfficeで画像を別ファイルとして保存する方法を公式サポートで案内しています。[参照] Microsoft Support「Save a picture or other graphic as a separate file」

JPGとPNGはどちらを選べばいい?

保存時にJPG(JPEG)とPNGのどちらを選べばよいか迷う場合は、画像の内容によって使い分けるとよいでしょう。

形式 向いている画像 特徴
JPEG/JPG 写真 ファイルサイズを小さくしやすいが、圧縮によって画質が変化する
PNG スクリーンショット、図、文字を含む画像 文字や線を比較的きれいに保存しやすく、透過にも対応

たとえばスマートフォンやデジタルカメラで撮影した商品写真ならJPEG、パソコンのスクリーンショットや説明図、グラフ、文字が多く含まれる画像ならPNGが扱いやすいでしょう。

元画像の形式や画質をできるだけ維持したい場合は、後述する「xlsxファイルの中から元データを取り出す方法」が適しています。

「図として保存」が表示されない場合はコピーして画像ソフトへ貼り付ける

Excel上の画像を右クリックしても「図として保存」が表示されない場合があります。その場合は、画像をコピーしてWindowsのペイントなどへ貼り付け、そこから画像ファイルとして保存する方法があります。

まずExcel上で目的の画像を選択し、Ctrl+Cでコピーします。次にWindowsの「ペイント」などの画像編集アプリを起動し、Ctrl+Vで貼り付けます。

画像が貼り付けられたら、「ファイル」→「名前を付けて保存」などからPNG画像またはJPEG画像として保存します。

この方法は簡単ですが、Excel内部に保存されている元画像ファイルをそのまま抽出する方法ではありません。そのため、元データをできるだけそのまま取得したい場合や、大量の画像を取り出したい場合は次の方法がおすすめです。

画像が大量にあるならxlsxファイルから一括で取り出せる

Excelファイルに数十枚、数百枚の画像が貼り付けられている場合、1枚ずつ右クリックして保存するのは大変です。このような場合は、「.xlsxファイルの内部から画像ファイルを直接取り出す」方法が便利です。

現在一般的に使用されている.xlsx形式のExcelファイルは、Office Open XMLという形式で保存されています。実体としては複数のXMLファイルや画像などをZIPパッケージとしてまとめた構造になっています。

そのため、xlsxファイルをZIPとして開くと、Excel文書の内部に保存されている画像ファイルへアクセスできます。

Microsoft LearnでもOpen XML形式のファイルがZIPパッケージとして構成され、その内部に複数のパーツが格納される仕組みが解説されています。[参照] Microsoft Learn「Structure of a SpreadsheetML document」

xlsxから画像を取り出す具体的な手順

この方法を試す前に、元のExcelファイルを必ずコピーしてバックアップしてください。拡張子の変更やファイル操作を誤っても、元ファイルを残しておけば復元できます。

まず対象のExcelファイルが「○○.xlsx」という形式になっていることを確認します。Windowsで拡張子が表示されていない場合は、エクスプローラーの表示設定から「ファイル名拡張子」を表示してください。

次に、作業用としてコピーした「○○.xlsx」を「○○.zip」のように変更します。拡張子を変更すると警告が表示されることがありますが、作業用コピーであることを確認して進めます。

作成したZIPファイルを展開すると複数のフォルダーが表示されます。その中から次の場所を開きます。

xl/media/

この「media」フォルダーには、Excelブック内部に格納されている画像がimage1.png、image2.jpeg、image3.pngなどの名前で保存されていることがあります。

必要な画像を通常のフォルダーへコピーすれば、Excelを開いて1枚ずつ保存することなく画像ファイルとして利用できます。

拡張子を変えなくても7-Zipなどで開ける場合がある

ZIPへの拡張子変更をしたくない場合は、ZIP形式の内部を閲覧できる圧縮・解凍ソフトを利用する方法もあります。対応するソフトでxlsxファイルをアーカイブとして開き、「xl」→「media」と進めば画像を確認できます。

この方法なら元の.xlsxという拡張子を変更せずに済みます。ただし、Excelファイルの内部構造を直接扱うため、ファイル内部のデータを書き換えたり削除したりしないよう注意してください。

画像を取り出すだけなら、「xl/media」にある画像を別フォルダーへコピーするだけにしておくのが安全です。

この方法なら元のJPG・PNGをそのまま取り出せる場合がある

xlsx内部の「xl/media」から抽出する方法には大きなメリットがあります。Excelに画像が埋め込まれた際の状態によりますが、画像をExcelの画面から再保存するのではなく、ブック内部に格納されている画像データを直接取り出せるからです。

たとえばExcel上では写真を小さく縮小して表示していても、内部にはより大きな画像が保持されている場合があります。その場合、「xl/media」から取り出した画像のほうが、Excel画面をスクリーンショットした画像より高解像度です。

また、元画像がJPEGとして保存されていればJPEG、PNGならPNGとして格納されている場合があり、無理に別形式へ変換する必要もありません。

画質をできるだけ維持したい場合は、スクリーンショットより「xl/media」からの抽出を先に検討する価値があります。

注意:Excelで画像を圧縮されていると元の画質には戻せない

xlsxから直接画像を取り出せば必ず「撮影時の完全な元画像」が取得できるわけではありません。Excelへ貼り付けた後に画像が圧縮されていた場合、ブック内部にも圧縮後のデータが保存されている可能性があります。

Officeにはファイルサイズを小さくするために画像を圧縮する機能があります。画像の解像度を下げたり、トリミングした領域のデータを削除したりする設定が利用されている場合があります。

MicrosoftもOffice文書の画像サイズや画質を変更するための圧縮機能について公式サポートで案内しています。[参照] Microsoft Support「Reduce the file size of a picture in Microsoft Office」

したがって、抽出した画像が小さかったり画質が低かったりする場合は、Excelからの取り出し方が悪いのではなく、送られてきたExcelファイルの時点ですでに画像が圧縮されている可能性もあります。その場合、本来の高画質版が必要ならExcelファイルの作成者から元画像を送ってもらうのが確実です。

古い.xlsファイルではZIP方式は使えない

注意したいのがExcelファイルの拡張子です。「xl/media」から画像を取り出す方法は、主に.xlsxなどのOpen XML形式を対象としています。

古いExcel 97-2003形式の「.xls」は内部構造が異なるため、「.xls」を単純に「.zip」へ変更しても同じ方法では展開できません。

.xlsファイルしかない場合は、まずExcelで開き、「名前を付けて保存」から.xlsx形式のコピーを作成して、そのコピーを使って抽出を試す方法があります。ただし、形式変換によって内部データの状態が変化する可能性もあるため、元の.xlsファイルは必ず残してください。

画像がセル内画像やリンク画像の場合は挙動が異なることがある

Excelには通常の「図」として貼り付けられた画像だけでなく、新しいExcelで利用できるセル内画像や、外部ファイルへのリンクとして扱われる画像など、複数の形態があります。そのため、すべてのExcelファイルで同じ方法が使えるとは限りません。

「xl/media」を確認しても目的の画像が存在しない場合は、画像が通常の埋め込み画像ではない可能性があります。また、Web上の画像を参照しているなど、Excelファイル自体に元画像データが完全には保存されていないケースも考えられます。

まず右クリックによる保存を試し、それができなければコピー&貼り付け、画像が大量ならxlsx内部を確認する、という順番で試すと効率的です。

スクリーンショットは最後の手段として使う

どの方法でも画像を取り出せない場合は、WindowsのSnipping Toolなどを使ってExcel上に表示された画像をキャプチャする方法があります。

ただしスクリーンショットは、基本的にディスプレイへ表示されている状態を画像化する方法です。Excel内部に高解像度の元画像が存在していても、そのデータを直接取り出せるわけではありません。

そのため画質を重視するなら、最初からスクリーンショットを使うのではなく、「図として保存」→「xlsxのxl/mediaから抽出」→「コピーして画像編集ソフトへ貼り付け」などを先に試すのがおすすめです。

画像が1枚の場合と大量にある場合のおすすめ方法

どの方法を使えばよいか迷った場合は、画像の枚数と目的で判断すると簡単です。

状況 おすすめの方法
画像が1~2枚 右クリック→「図として保存」
「図として保存」がない コピーしてペイントなどへ貼り付ける
画像が大量にある xlsxをZIPとして開き「xl/media」から一括抽出
画質をできるだけ維持したい 「xl/media」から内部画像を直接抽出
どうしても取り出せない スクリーンショットを利用
抽出画像の画質が低すぎる 作成者に元画像を送ってもらう

特に数十枚の画像が貼り付けられた商品リストや資料の場合は、1枚ずつ右クリックするよりxlsx内部の「xl/media」を確認するほうが圧倒的に効率的です。

まとめ:Excelの画像はJPG・PNGとして取り出せる

Excelに貼り付けられた画像は、状況に応じてJPG(JPEG)やPNGなどの独立した画像ファイルとして取り出すことができます。

画像が数枚だけなら、まず画像を右クリックして「図として保存」が利用できるか確認するのが最も簡単です。表示されない場合は、画像をコピーしてペイントなどへ貼り付けて保存できます。

画像が大量にある.xlsxファイルなら、xlsxをZIPとして開き、「xl/media」フォルダーから画像をまとめて取り出す方法が便利です。元のExcelファイルをコピーしてから作業すれば、ファイルを壊すリスクも抑えられます。

また、「PGN」という画像形式を探している場合は、一般的には「PNG」の書き間違いである可能性があります。写真ならJPG、スクリーンショットや文字・図を含む画像ならPNGを目安にするとよいでしょう。

ただし、Excelへ保存される前の完全な元画像が必ず復元できるわけではありません。Excel側ですでに画像が圧縮されている場合は、抽出しても失われた解像度は戻せないため、高画質な原本が必要なときはExcelファイルの作成者から元画像を入手するのが確実です。

コメント

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