.docxから画像を一括抽出する方法|Mac・Linux対応のターミナル手順をやさしく解説|UNIX Cafe

当サイトでは、コンテンツの一部に広告を掲載しています。
.docxファイル 画像 抽出 方法 Word Mac ターミナル | UNIX Café

UNIX Cafe | 第21回

目次

Wordから画像だけをまとめて取り出す方法

.docx をターミナルで展開して一括抽出

取材先やクライアントから Word(.docx)形式で受け取った資料
文章ではなく、「中に入っている画像だけをブログやWeb制作で使いたい」という場面はよくあります。

しかし、

  • 右クリックで1枚ずつ保存するのは面倒
  • 枚数が多いと作業ミスが起きやすい

そんなときに役立つのが、ターミナルを使った画像の一括抽出です。

Mac や Linux では、.docx の中身を展開するだけで、
Wordに含まれる画像(JPEG / PNG など)をすべてまとめて取り出すことができます。

.docx の正体は「ZIPファイル」

Word の .docx ファイルは、
実は 文章・画像・設定ファイルをまとめた ZIP 形式 です。

つまり、

  • 拡張子を .zip に変更
  • unzip で展開

という流れで、中身を直接確認できます。

ターミナルで画像を取り出す基本手順

STEP1:.docx を .zip にリネーム

mv sample.docx sample.zip

これは「移動」ではなく、名前を変更しているだけです。

STEP2:ZIPファイルを展開

unzip sample.zip -d output

-d output→ 展開先フォルダを output/ に指定

STEP3:画像が保存されている場所

展開後、画像は次の場所に入っています。

output/
└─ word/
    └─ media/
        ├ image1.jpeg
        ├ image2.png
        ├ image3.jpeg

ここにあるファイルが、
Word文書内に挿入されていたすべての画像です。

  • 形式:JPEG / PNG / GIF など
  • 変換なし(元の形式のまま)

.docx を直接 unzip できる場合もある

macOS では、環境によっては .docx のまま展開できます。

unzip sample.docx -d output

ただし、OSや環境によって失敗することがあるため、
確実性を重視するなら .zip にリネームする方法がおすすめです。

.docx → 画像 を自動抽出するシェルスクリプト

毎回コマンドを入力するのが面倒な場合は、
スクリプト化して自動処理すると作業が一気に楽になります。

スクリプトの特徴

  • .docx を渡すだけで画像を抽出
  • ファイル名ごとにフォルダを自動作成
  • 複数ファイルにも対応

スクリプトを作成してみよう

vi docx_extract_img.sh

スクリプト本体(コピペOK)

#!/bin/bash

# ===== .docx から画像を取り出すスクリプト =====
# 使い方:
#   ./docx_extract_img.sh sample.docx
#   ./docx_extract_img.sh doc_files/*.docx   ←複数OK*/
# =====

# 引数がない場合
if [ $# -eq 0 ]; then
    echo "使い方: $0 <docxファイル> ..."
    exit 1
fi

# 1ファイルずつ処理
for file in "$@"; do
    # 存在チェック
    if [ ! -f "$file" ]; then
        echo "⚠ ファイルが見つかりません: $file"
        continue
    fi

    # 拡張子を除いたファイル名を取得
    base=$(basename "$file" .docx)

    # 出力フォルダ
    outdir="${base}_images"

    echo "📦 展開中: $file → $outdir"

    # 出力フォルダ作成
    mkdir -p "$outdir"

    # docx を unzip(word/media を取り出す)
    unzip -q "$file" "word/media/*" -d "$outdir"

    # 画像フォルダが存在するかチェック
    if [ -d "$outdir/word/media" ]; then
        mv "$outdir/word/media"/* "$outdir"/
        rm -rf "$outdir/word"
        echo "✅ 完了!画像を $outdir/ に保存しました"
    else
        echo "⚠ 画像が見つかりませんでした: $file"
    fi
done

スクリプトを保存する

~/docx_extract_img.sh

(例として、ホームディレクトリに保存しています)

実行権限を付ける

chmod +x ~/docx_extract_img.sh

単一ファイルを処理する

./docx_extract_img.sh sample.docx

抽出された画像はsample_images/に入ります。

複数ファイルもOK

./docx_extract_img.sh *.docx
  • report.docx → report_images/
  • notes.docx → notes_images/

など、それぞれ自動でフォルダに入ります。

出力イメージ

sample.docx

sample_images/
├ image1.jpeg
├ image2.png
├ …

ここで少し休憩|よくある質問

.docx を .zip に変換(リネーム)する必要はありますか?

必須ではありませんが、環境によっては unzip がそのままではうまく動かないことがあります。
.zip に名前を変えておくと、より確実に展開できるため安心です。

どうして .zip にリネームすると良いのですか?

.docx は内部的に ZIP 形式ですが、OSのバージョンや環境によっては「そのまま unzip するとうまく展開できない」ことがあります。.zip に変えてから展開すると失敗しにくい、という理由があります。

Word に貼られた画像は、取り出すと形式が変わりますか?

変わりません。Word に挿入されたときの 元の形式(JPEG / PNG / GIF など)のまま取り出されます。

Wordに貼った画像の順番どおりに取り出せますか?

おおむね「挿入した順番」に近い並びになりますが、Word の内部処理によって前後することもあります
完全に一致するわけではない、と考えてください。

Windows でも同じ方法でできますか?

できますが、この記事で紹介している手順は Mac / Linux 向けです。Windows では PowerShell を使うことで、同じように画像を取り出すことができます。

まとめ|Word画像の一括抽出はターミナルが最速

操作コマンド
docx → zipmv sample.docx sample.zip
展開unzip sample.zip -d output
画像場所output/word/media/

Wordを開かず、GUI操作も不要で、画像だけを最短で取り出せる方法です。

ブログ運営、Web制作、資料整理など、「地味に時間を取られる作業」を減らしたい人にとって、
とても実用的なテクニックです。

さらに学びたいあなたへ

📘 用途ごとに選ぶ Linux のおすすめ本

あわせて読みたい
レベル・用途別おすすめ Linux 本リスト|UNIX Cafe UNIX Cafe | 第65回 Linux の世界には、「はじめて触る人」「コマンドを覚えはじめた人」「サーバーに挑戦したい人」と、さまざまな段階があります。そんなときに、自分...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe 編集部

UNIX Cafe は、むずかしい言葉をできるだけ使わず、物語を読むような気持ちで気軽に学べる場所です。
プログラミングは、アイデアをコンピューターに伝えるための「ことば」。
簡単な単語と文法を覚えることで、誰でもターミナルから便利なコマンドを使えるようになります。
コーヒーを片手に立ち寄るような気持ちで、やさしいプログラミングの世界を、
そっとのぞいてみてください。

目次