Microsoft 365を使用するとPowerPointのファイルサイズが急速に増加する
問題
もっとも直接的に観察される症状は、PowerPointプレゼンテーションのファイルサイズが異常に大きくなり、予想される数倍のサイズにさえなることです。場合によりこの問題は、ファイルを開いたり、編集、保存する作業が非常に遅くなったり、潜在的にはまったく開けなくなってしまうという問題につながります。
この問題は以下の条件で発生します。
- ファイルがSharePointの場所に保存されている(されていた)
- ファイルがたとえば以下により暗号化されている(されていた)
- Azure Information Protection
- Microsoft Information Protection
- Microsoft Purview Information Protection
- アクセス制限
- スライドまたはスライド上のコンテンツがタグまたはCustomerDataオブジェクトを含んでいる。(think-cellおよびその他多くのアドインは、Microsoftが規定したタグオブジェクトを使用します。)
影響を受けたスライドやオブジェクトを、他のプレゼンテーションにコピーすると、たとえ上記の条件にあてはまらなくてもコピー先のファイルでも問題が生じます。
解決策
Microsoftはこの問題に関するフィックスをリリースし、現在、Microsoft 365用について公表された最新の更新として入手できます。月次エンタープライズチャンネルと半期エンタープライズチャンネルで利用可能となる旧バージョンも当面、影響を受ける場合があります。
影響を受けたバージョンとそのフィックスは以下を参照してください。
バージョン |
影響を受けた最初のビルド |
フィックスを入手できる場所 |
---|---|---|
2208 |
15601.20578 |
** |
2301 |
16026.20002 |
** |
2302 |
* |
16130.20714 |
2303 |
* |
** |
2304 |
* |
** |
2305 |
* |
** |
2306 |
* |
16529.20182 |
2307 |
* |
16626.20000 |
* - 最初のリリースで問題が存在する
** - フィックスが期待できない
注:Microsoftのフィックスは問題が生じることを防ぎますが、すでに影響を受けたファイルを修復はしません。しかし影響を受けたファイルをクリーンにするオプションはいくつかあるため、Microsoftのフィックスと組み合わせれば、問題は異形決します。
PowerPoint内蔵のDocument Inspectorを使用すると、影響を受けたファイルからcustomXMLデータを削除することができます。このツールを使用する際は、必ずCustom XMLデータオプションのみを使用するように注意してください。他のコンテンツタイプまで削除してしまうと、不測の結果を招く場合があり、文書からthink-cell機能が失われる場合もあります。
think-cell 12を使用している場合は、この同じ機能にアクセスするには、クリーンアップツールがより便利です。
PowerPointのパッチがあたっていないバージョンを使用している場合、この2つの方法のどちらかでcustomXMLデータを削除する方法では、customXMLデータが再度蓄積することが防止されませんが、少なくとも一時的に問題を「リセット」できます。
ファイルが重大な損傷を受けており、PowerPointを使って信頼できる形で開くことができない場合、そしてそのために、Document Inspectorもthink-cellのクリーンアップツールも使用できない場合、あるいは、影響を受けた文書数が自動的解決を必要とする場合は、弊社サポートチームまでご連絡ください。彼らが力になれるはずです。
分析
当社の開発者がこの問題を詳細に分析しました。上記に述べた条件にあてはまる場合、SharePointに保存された、または暗号化されたファイルを開くと、PowerPointはこのコードでこの関数を呼び出す場合があります。
PPT::FileIO::CustomerDataXmlReader::DeSerializeCustomerDataFromEncryptedStorage
この関数は、PowerPointのリストしたバージョン以降で新たに追加されています。SharePointに保存されたファイルは、SharePointのファイル管理で使用する一定のcustomXMLデータファイルを含みます。このコード関数が呼び出されると、文書全体の中で、含まれているすべてのcustomXMLファイルにおいて、タグまたはCustomerDataを含むすべてのスライドやオブジェクトが複製されます。影響を受けたファイルで作業を続けると、通常の編集アクションの過程でもこのジャンクデータが蓄積を続けます。
この問題はthink-cellがなくても再現できます。 think-cell詳細な再現手順については、次をクリックしてください。
think-cellを使用せずに再現:
- think-cell がアクティブではないまたは一時的に削除されている状態で、プレースホルダーもテキストボックスも含まない新しい空のPowerPointプレゼンテーションを開きます。
- [挿入]> [イラスト]>[図形]でPowerPointの四角形を1つ挿入します。
- (Alt+F11を押して)VBAウィンドウを開きます。
-
イミディエイト ウィンドウ内で(アクティブではない場合はCtrl+Gを押してアクティブ化可能)、以下を入力しEnterを押します。
ActivePresentation.Slides(1).Shapes(1).Tags.Add "Test", "Tag"
- VBAウィンドウを閉じる
- PowerPoint内で、この四角形を選択しCtrl+Dを30回行って複製し、31個の四角形が存在するようにします。(再現は図形の数がこれより少なくても実行可能ですが、その場合、それによりファイルサイズは異なります。)
-
プレゼンテーションをSharePointの場所に保存します。
この文書のサイズはSharePointと完全に同期した場合に約54KBとなります。
- ここでPowerPointリボンの[ファイル]タブから[情報] → [プレゼンテーションを保護] → [アクセスを制限] → [制限されたアクセス]を選択します。
- 表示された[許可]ダイアログボックスで、[このプレゼンテーションへの許可を制限]のボックスにチェックを入れ[OK]をクリックします。
- 文書を保存(Ctrl+Sを押すなど)し、それから完全に閉じます。
- 文書を再度開きます。
- ここで再度、[ファイル] → [情報] → [プレゼンテーションを保護] → [アクセスを制限]を選択し[制限されていないアクセス]を選択します。
-
再度、文書を保存し、それから閉じます。
この文書は54KBのはずですが、約195KBへとサイズが大きくなっています。
-
文書を開き、ステップ8から13をリピートします。
この文書は54KBのはずですが、約5MBへとサイズが大きくなっています。
ファイル構造を調べます。(たとえば.pptxファイルをコピーし、コピーしたファイルの拡張子を.zipへ変更し、その後アーカイブを展開します。) customXmlサブフォルダに含まれるitem*.xmlとitemProps*.xmlファイルの数は、SharePointと同期した後は各ファイルタイプあたり3から、1回繰り返した後では各96に、2回繰り返した後では各2979に増加しています。
customXMLデータの複製につながるステップやワークフローは他にもありますが、これがもっとも再現する上でストレートで、顕著な効果を示します。
なぜthink-cellが影響を受けるか
think-cellはcustomXMLデータを使用しませんが、think-cell内で作成された各図形またはオブジェクト内でタグを使用します。このためthink-cellを使用して作成したスライドは、特に多い数のタグの付いた図形を含み、この問題によりcustomXMLデータの非常に速い複製を招きます。