参照されていないスライド マスターを消去するために、スライド マスターの保持属性を使用しようとしています。
私の目的は、プレゼンテーション内のすべてのスライド (スライドが 1 つだけ) をベース プレゼンテーション (スライドが 1 つだけ) に複製し、複製されたスライドのレイアウトをベース プレゼンテーションのレイアウトに変更することです。
私が取ったアプローチは、
(ベース プレゼンテーションは B、クローン プレゼンテーションは C で示されます)
Cのスライドのスライド部分をBにコピーします。
C のマスターを B にコピーします。
新しくコピーしたマスターで SlideMaster.Preserve 属性を false に設定します。
B で新しく追加されたスライド パーツの既存のレイアウト パーツを削除します (C から複製されたスライド)。
新しく追加したスライド パーツに、必要なレイアウト パーツを B から追加します。
LayoutId をトラバースし、一意の値が含まれるように並べ替えます。
しかし、結果のファイルを開くと、C からコピーされた MasterSlide への参照はありませんが、まだ存在しています。
注: 同じコード スニペットでレイアウト スライドを変更しますが、実際には別の実行パスで実行されるため、C の MasterSlides に対処しないという選択肢はありません。
ベースプレゼンテーション (B)
ベースのマスタースライド
クローンプレゼンテーション (C)
クローン プレゼンテーションのマスター スライド
結果出力
出力のマスタースライド
2 番目のマスター スライドへの参照はありませんが、preserve 属性を false に設定した後でも優先されます。
コード サンプルは Post2.zip からダウンロードできます。
Post2 のファイル:
BaseSlide.pptx (ベースプレゼンテーション)
ToBeCloned.pptx (クローン プレゼンテーション)
Out2.pptx (結果のプレゼンテーション)
どんな助けでも大歓迎です。ありがとう。