今すぐ修復
- ファイルをドロップ
- 修復はローカルで実行
- 結果をダウンロード
PowerPoint が "PowerPoint found a problem with content in [name].pptx"([name].pptx のコンテンツに問題が見つかりました)と表示し、修復を試みるよう提案するとき、それはファイルを開き、内部のパーツを読み始めて、解析できないものに遭遇したことを意味します — 壊れた ZIP インデックス、不正な形式の XML の断片、あるいはパーツ間の壊れたリンクです。正常なスライドを見せる代わりに、プレゼンテーション全体を拒否するのです。しかし .pptx は 1 つの不透明な塊ではありません。独立した XML ファイルとメディアファイルからなる標準的な ZIP パッケージ(OOXML / Open Packaging Conventions 形式)で、関係ファイルによって縫い合わされています。上にドロップすると、ツールはそのパッケージをブラウザ内で再構築し、生き残ったパーツを復元し、それらの間のリンクを張り直します — 何もアップロードしません。
.pptx とは実際には何なのか
.pptx の拡張子を .zip に変えれば開けます。その下は、Microsoft の Office Open XML (OOXML) レイアウトに従うごく普通の ZIP アーカイブです。中には [Content_Types].xml(各パーツの種類を宣言するもの)、パーツどうしを結びつける関係ファイルが入った _rels/ フォルダ、そして ppt/ 以下にプレゼンテーション本体があります: ppt/presentation.xml(ドキュメントの背骨とスライドの順序)、スライドごとの ppt/slides/slide1.xml、slide2.xml… に加えて、slideLayouts/、slideMasters/、theme/、そして埋め込まれた画像・音声・動画を普通のファイルとして保持する ppt/media/ フォルダです。
この構造こそ、このエラーがたいてい乗り越えられる理由です。テキストはスライドパーツ内の読める XML として存在し、画像は ppt/media/ にある完全なファイルです。ZIP の中央ディレクトリ(ファイル末尾にある目次)が切り詰められたダウンロードで壊れたり、ある XML パーツが不正な形式だったりすると、PowerPoint は停止します — しかし大多数のパーツは依然として無傷で、取り出すことができます。
スライドはどう結び付いているのか — そして、なぜ 1 つの不良パーツがすべてを壊すのか
1 つの不具合がプレゼンテーション全体を落としかねない理由は、PowerPoint のパーツが互いをファイル名で参照していないからです — パーツは関係 ID で参照し合っており、その連鎖は端から端まで保たれていなければなりません。ppt/presentation.xml はプレゼンテーションを <p:sldId id="256" r:id="rId2"/> というエントリからなる <p:sldIdLst> として列挙します。その r:id はファイルパスではありません。ppt/_rels/presentation.xml.rels の中で引かれるキーであり、そこで rId2 → slides/slide2.xml が対応づけられています。つまりスライドの順序とスライドの存在は 2 つの異なる場所に保存されており、それぞれ独立して壊れることがあります:
- その
r:idまたは<p:sldId>エントリが失われた無傷のslide2.xmlは孤立します — 物理的には存在するのに、PowerPoint からは見えません。 - 対象が失われている関係を指す
<p:sldId>は宙ぶらりんの参照であり、それに遭遇することは「found a problem with content」の典型的な引き金です。
スライドは継承するため、さらに脆くなります。各 slideN.xml は独自の _rels を持ち、それが slideLayout を指し、それが slideMaster を指し、それが theme を指します。これは共有された依存関係です: slideMaster や slideLayout を 1 つ壊すと、その上に構築されたすべてのスライドが一度に失敗します — だからこそ、見かけ上たった 1 つの壊れたパーツのせいでプレゼンテーションが開くのを拒むことがあるのです。したがって修復とは単に「スライドを復元する」ことではありません。生き残ったパーツが再び互いを見つけられるよう、関係グラフを再構築することです。
ブラウザ内の修復がスライドをどう復元するのか
ツールは .pptx をそのままのもの — ZIP/OOXML パッケージ — として扱い、3 つのレベルで作業します。第一にコンテナ: ZIP インデックスが壊れているか欠けている場合、ファイルを走査して格納された各パーツのローカルヘッダを探し、生き残ったエントリからアーカイブを再構築します。第二にパーツ: 主要な XML の部品([Content_Types].xml、presentation.xml、スライドパーツ)を検査し、XML が正しい形式であるものをすべて残します。第三に関係: _rels グラフを修復し — 孤立したスライドを sldIdLst の中へ参照し直し、宙ぶらりんのリンクを取り除いて — PowerPoint が壊れたポインタで詰まる代わりにパッケージを開けるようにします。
これは PowerPoint 自身の「Open and Repair」(開いて修復)よりも外科的です。この機能は、成功したときでも、読めないものを黙って破棄し、「Repaired Records」(修復されたレコード)という回復ログを表示します — これはしばしばスライドがひっそり消えたことを意味します。代わりにパッケージを再構築すれば、本当に無傷である各パーツが保たれます。
正直な限界もあります。最も脆いパーツは埋め込みオブジェクトです: グラフは自身のデータを ppt/embeddings/ 内の .xlsx ブックとして持ち(プレゼンテーションに入れ子になったスプレッドシート)、OLE オブジェクトはそこに .bin ブロブとして置かれています — それら埋め込みファイルのどれかが不正な形式のパーツだと、そのスライドが復元されても、グラフやオブジェクトは失われることがあります。特定の slideN.xml がそれ自体、解析できないほど壊れている場合、そのスライドの編集可能なコンテンツは失われることがありますが、その画像は ppt/media/ にしばしば残ります。そして切り詰められたダウンロードがそもそも届けなかったバイトは、再生成できません — 可能なら元ファイルを再ダウンロードしてください。ここでのすべてはブラウザ内で実行されるため、機密のプレゼンテーションが修復のためだけにサーバーへコピーされることは決してありません。
修復できるものとできないもの
修復できる
- ZIP の中央ディレクトリが破損したり切り詰められたりした .pptx — 完全に書き込まれたパーツは再構築されます
- 孤立したスライド(r:id または sldIdLst エントリが失われた無傷の slideN.xml)をプレゼンテーションに参照し直します
- 多くのスライドが共有する 1 つの破損した slideMaster/slideLayout によって落ちたプレゼンテーション — 関係グラフが修復されます
- XML がまだ正しい形式であるスライドパーツから、スライドのテキストとレイアウトを復元する
- ppt/media/ に生き残った埋め込み画像やメディアを復元する
修復できない
- 自身の XML が解析できないほど壊れている特定のスライド(その編集可能なコンテンツは復元できないことがあります)
- 解析できないほど壊れた、埋め込みグラフのブック(ppt/embeddings/*.xlsx)または OLE オブジェクト
- 切り詰められたダウンロードがそもそも届けなかったファイルの一部(可能なら元ファイルを再ダウンロードしてください)
- パスワードが提供されていない、パスワードで暗号化された .pptx ファイル
- 0 バイト、またはほとんどがゼロとして読み取られるファイル
修復が失敗した場合、その理由(データの欠落か構造の破損か)をお伝えします。失敗した修復に料金が請求されることはありません。