1

パワーポイントプレゼンテーション(2010)でスライドの背景画像を保存する方法を知っている人はいますか。これは私のコードの一部で、背景画像を取得するためにスライドをクリアしようとしていますが、望ましい結果ではありません

PowerPoint.Presentation p = app.Presentations.Open(slidesContainerPath, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse);

        string imagename;
        foreach (PowerPoint.Slide s in p.Slides) {
            imagename = s.SlideIndex.ToString() + ".jpg";
            s.BackgroundStyle = Microsoft.Office.Core.MsoBackgroundStyleIndex.msoBackgroundStyleNotAPreset;
            foreach(Microsoft.Office.Interop.PowerPoint.Shape shape in s.Shapes)
            {
                shape.Delete();
            }                
            s.Export(imagesContainerPath + "\\" + imagename, "JPG");
        }
        if (p != null) {
            p.Close();
        }
4

1 に答える 1

1

問題を STATE にすると、問題の解決が容易になります。あなたは「それはまったく望ましい結果ではない」と言います。それは、「何も起こらない」から「私のコンピューターが爆発する」まで、多くのことを意味する可能性があります。;-)

推測する必要がある場合 (実際に推測します)、すべての図形ではなく、他のすべての図形がスライドから削除されている可能性があります。foreach ループの代わりに、次のようなものを使用します (VB/VBA、必要に応じて変換)。

For x = s.Shapes.Count to 1 Step -1
  sShapes(x).Delete
Next

これにより、スライド上のすべての図形が削除されます。

または、ループの代わりにこれだけ:

s.Shapes.ShapeRange.Delete

于 2012-07-16T18:33:14.170 に答える