ChatGPTのチャット履歴をWordへ一括保存する方法|Pythonでエクスポートデータを自動変換

スポンサーリンク

ChatGPTを仕事やシステム開発に使い続けていると、チャット履歴は単なる会話ではなく、仕様検討やトラブル解決の経緯を残した大切な資料になります。

私も以前、ChatGPTのエクスポートデータを使い、チャットごとにWord文書へ変換するPythonスクリプトを作成しました。

ところが2026年7月、改めてChatGPTのバックアップを取得して実行したところ、出力先のフォルダは作成されるものの、肝心のWord文書が1件も作られませんでした。

原因を調べると、以前は1つだった会話データが、次のような複数ファイルに分割されていたことが分かりました。

conversations-000.json
conversations-001.json
conversations-002.json
conversations-003.json

そこで今回は、複数に分割された会話JSONを自動的に読み込み、ChatGPTのチャット履歴を1チャットずつWord文書へ一括保存できるようにスクリプトを修正しました。

長期間の開発やコンサルティングでは、「最終的にどうなったか」だけでなく、「なぜその判断に至ったか」という過程が重要です。チャット履歴は、その過程を残す開発記録になります。

この記事でできること

今回紹介する方法では、ChatGPTから公式にエクスポートした会話データを、Pythonを使ってWord文書へ変換します。

  • ChatGPTのチャット履歴をまとめてWord化
  • 1チャットにつき1つのWord文書を作成
  • 複数に分割されたJSONファイルを自動で読み込み
  • 以前の単一ファイル「conversations.json」にも対応
  • ファイル名を「YYYYMMDD_チャット名.docx」に統一
  • ユーザーとChatGPTの発言を左右に分けて表示
  • 長いチャットをオフラインで検索・閲覧
  • プロジェクト別フォルダへ整理して保管

出力されるWord文書のファイル名は、次のようになります。

20260712_LinguaWriter Android開発.docx
20260709_生成回数の管理.docx
20260623_App Store申請サポート.docx

なぜChatGPTの履歴をWordで保存するのか

ChatGPTにはチャット履歴が残りますが、会話が長くなるほど、後から必要な情報を探すのが難しくなります。

また、ブラウザの印刷機能を使ってPDF保存しようとしても、長いチャットではページ数だけが増え、本文が白紙になったり、途中までしか保存できなかったりすることがあります。

ChatGPTの画面は、すべての会話を最初から一度に表示するのではなく、必要に応じて読み込む仕組みになっているためです。

Word文書として保存しておけば、次のような使い方ができます。

  • インターネットに接続していない環境でも読める
  • Wordの検索機能で必要なキーワードを探せる
  • 重要な部分に追記やマーカーを付けられる
  • 必要なページだけ印刷できる
  • 開発履歴や議事録として保存できる
  • ChatGPT上でチャットを削除した後も手元に残せる
  • PDFに変換してタブレットで見返し

今回、Word文書が作成されなかった原因

以前作成したスクリプトは、エクスポートフォルダ内にある「conversations.json」を読み込む仕様でした。

しかし、2026年7月にダウンロードしたエクスポートデータでは、会話数が多かったためか、会話データが次のように複数ファイルへ分割されていました。

conversations-000.json
conversations-001.json
conversations-002.json
conversations-003.json

私は最初、これらを連結して「conversations.json」を作成しました。しかし、スクリプトを実行しても「chatgpt_word_exports」フォルダが作成されるだけで、中には何も出力されませんでした。

JSONファイルは単純に連結できない

それぞれのconversationsファイルは、JSONの配列として保存されています。

例えば、次の2つのファイルがあったとします。

[{"title":"チャットA"}]
[{"title":"チャットB"}]

これをテキストエディタでそのまま連結すると、次のようになります。

[{"title":"チャットA"}][{"title":"チャットB"}]

これは正しいJSON形式ではありません。

正しく1つにまとめるには、外側の角括弧を整理し、次のような1つの配列にする必要があります。

[
  {"title":"チャットA"},
  {"title":"チャットB"}
]

ただし、会話データが大量にある場合、手作業で修正するのは現実的ではありません。

今回の修正版では、JSONファイルを手作業で連結する必要はありません。

「conversations-000.json」「conversations-001.json」のようなファイルを自動的に探し、ファイル名順に読み込んで処理します。

手順1:ChatGPTのデータをエクスポートする

まず、ChatGPTの公式機能を使ってデータをエクスポートします。

  1. ChatGPTにサインインする
  2. プロフィールメニューを開く
  3. 「設定」を選択する
  4. 「データ管理」を選択する
  5. 「データのエクスポート」からエクスポートを実行する
  6. 確認画面でエクスポートを確定する

エクスポートの準備が完了すると、登録しているメールアドレスまたはSMSへダウンロード案内が届きます。

OpenAIの公式案内では、エクスポートの準備には最大7日かかる場合があり、ダウンロードリンクは受信から24時間で期限切れになります。

ChatGPTの履歴とデータをエクスポートする方法(OpenAI公式)

エクスポートデータの取り扱いには注意してください。

ZIPファイルにはチャット履歴だけでなく、アカウントに関連する情報が含まれる場合があります。第三者へ不用意に渡さず、安全な場所へ保存してください。

手順2:ダウンロードしたZIPファイルを展開する

ダウンロードしたZIPファイルを、任意のフォルダへ展開します。

エクスポートデータの内容は時期や利用状況によって異なりますが、会話履歴は次のいずれかの形式で含まれます。

以前の形式

conversations.json

複数に分割された形式

conversations-000.json
conversations-001.json
conversations-002.json
conversations-003.json

今回のスクリプトは、どちらの形式にも対応しています。

手順3:Pythonをインストールする

この変換ツールはPythonで動作します。

Pythonがインストールされていない場合は、Python 3をインストールしてください。Windows版のインストール時には、可能であれば「Add Python to PATH」にチェックを入れておくと、その後の操作が簡単です。

手順4:python-docxをインストールする

Word文書を作成するため、Python用ライブラリ「python-docx」を使用します。

コマンドプロンプトまたはPowerShellを開き、次のコマンドを実行します。

py -m pip install python-docx

環境によっては、次のコマンドでもインストールできます。

pip install python-docx

手順5:必要なファイルを同じフォルダへ置く

Pythonスクリプトと会話JSONファイルを、同じフォルダへ保存します。

ChatGPTExporter
├─ export_chatgpt_to_word.py
├─ conversations-000.json
├─ conversations-001.json
├─ conversations-002.json
└─ conversations-003.json

保存場所はCドライブでなくても構いません。

デスクトップ、ドキュメント、外付けSSDなど、PythonスクリプトとJSONファイルが同じフォルダにあれば実行できます。

以前の形式で「conversations.json」が1つだけ存在する場合も、そのまま同じフォルダへ置いてください。

手順6:Pythonスクリプトを実行する

コマンドプロンプトを開き、スクリプトを保存したフォルダへ移動します。

例えば、Cドライブ直下の「ChatGPTExporter」フォルダに保存した場合は、次のように実行します。

cd C:\ChatGPTExporter
py export_chatgpt_to_word.py

スクリプトをデスクトップなど別の場所へ保存した場合は、そのフォルダのパスに読み替えてください。

処理が完了すると、同じフォルダ内に次の出力フォルダが作成されます。

chatgpt_word_exports

この中へ、チャットごとのWord文書が保存されます。

作成されるWord文書の表示

Word文書では、会話の流れが分かりやすいように、ユーザーとChatGPTの発言を分けて表示します。

  • ユーザーの発言:右寄せ、灰色の背景
  • ChatGPTの発言:左寄せ、薄い緑色の背景
  • コードブロック:Consolasなどの等幅フォント
  • 画像:取得できない画像プレースホルダは除外
  • 添付ファイル:情報を取得できた場合はファイル名を記録

ブラウザ画面をそのまま完全再現するものではありませんが、文章、コード、検討の流れを後から確認する用途には十分です。

プロジェクト別に整理する方法

ChatGPTでは、複数のプロジェクトを分けて管理できます。

しかし、エクスポートされた会話データからプロジェクト名を常に正確に取得できるとは限りません。仕様変更によって項目が変わる可能性もあります。

そのため、このスクリプトでは無理にプロジェクトごとのフォルダを自動作成せず、ファイル名を次の形式に統一しています。

YYYYMMDD_チャット名.docx

出力後に、エクスプローラー上でプロジェクト別のフォルダへ移動する方法が確実です。

ChatGPT履歴
├─ LinguaWriter
├─ LinguaNote
├─ tecci.net
├─ サッカー大会
└─ その他

この方法なら、後からプロジェクトが増えた場合も、Pythonスクリプトを修正する必要がありません。

同じ日付・同じタイトルのチャットがある場合

同じ日付に同名のチャットが存在する場合、そのまま保存するとファイル名が重複します。

今回のスクリプトでは、既存のWord文書を上書きせず、次のように連番を付けて保存します。

20260714_引継ぎメモ.docx
20260714_引継ぎメモ_2.docx
20260714_引継ぎメモ_3.docx

Word文書が作成されない場合の確認ポイント

出力フォルダだけが作られ、Word文書が作成されない場合は、次の点を確認してください。

  • JSONファイルとPythonスクリプトが同じフォルダにあるか
  • JSONファイル名が「conversations.json」または「conversations-数字.json」になっているか
  • JSONファイルを手作業で単純連結していないか
  • python-docxがインストールされているか
  • コマンドプロンプトで正しいフォルダへ移動しているか
  • スクリプト実行時にエラーメッセージが表示されていないか
  • エクスポートZIPを展開せず、ZIP内のまま実行していないか

特に注意したいのが、複数のJSONファイルをテキストエディタで単純に結合してしまうケースです。

今回の修正版は複数ファイルを直接読み込めるため、連結作業そのものが不要です。

配布ファイル

配布用ZIPファイルには、次のファイルを収録しています。

  • ChatGPTExporter.py
  • README.txt

Word文書を生成するには、別途Python 3とpython-docxが必要です。

利用上の注意

  • 本スクリプトは個人で作成した非公式ツールです。
  • OpenAIおよびChatGPTの公式ツールではありません。
  • ChatGPTのエクスポート形式が変更された場合は、修正が必要になる可能性があります。
  • 元のZIPファイルとJSONファイルは、処理前に必ずバックアップしてください。
  • 業務上の機密情報や個人情報を含むデータは、適切に管理してください。
  • 生成されたWord文書を第三者へ共有する場合は、内容を事前に確認してください。

まとめ

ChatGPTとの会話は、質問と回答を並べただけのものではありません。

システム開発で試行錯誤した内容、エラーの原因、採用しなかった方法、企画を練り上げるまでの過程など、時間をかけて積み上げた知識が含まれています。

私自身、LinguaWriterをはじめとするアプリ開発や、Webシステム、WordPress、ITコンサルティングの検討をChatGPTと進めてきました。チャットが長くなるほど、その履歴は開発ドキュメントに近い存在になります。

今回のように、ChatGPTのエクスポート形式が変わると、以前使えていたスクリプトがそのままでは動かなくなることがあります。

しかし、複数に分割されたJSONファイルを自動で読み込めるようにしておけば、手作業で連結する必要はありません。

Word文書として手元に保存しておけば、ChatGPTを開かなくても履歴を検索でき、プロジェクトごとの技術資料や引継ぎ資料として活用できます。

理想を言えば、ChatGPTの画面上でプロジェクトやチャットを選択し、そのままWordやPDFへ保存できる機能があると便利です。

今後は、現在開いているチャットを直接Wordへ保存できるブラウザ拡張機能についても検討していきたいと思います。

コメント