2011-07-18 6 views
0

私はPowerpointプレゼンテーションを持っています。それはイメージXで参照される多数のイメージを含んでいます(同じイメージですが、複数のページにあります)。異なるページ/スライド上の同じイメージには、それらに関連付けられた幅/高さの属性が異なります。したがって、同じ画像であっても、同じサイズではない可能性があります。Powerpoint 2011 VBA Image Replacement

したがって、多くのスライドに画像が存在するというシナリオがあります。私は、各スライドを一度に1つずつ新しい画像に置き換えなくても、同時にすべての画像を同時に(素早く)置き換えることができます。

  • これは可能ですか? (はい/いいえ)
  • これはどのように達成されますか? (要約 - 高レベルの説明のみが必要です)

答えて

1

Open XMLでも可能ですが、探しているものが分かっていればわかります。すべてのスライド(およびすべてのスライドレイアウト)はXMLファイルです。これらのXMLファイルは、Open Packaging Convention形式で、.relsエクステンションを持つリレーションシップファイルを保持します。したがって、最初のスライドがslide1.xmlの場合、その関係ファイルはslide1.xml.relsです。これは、各スライドの画像の参照が保持される場所です。

.relsファイルには、次のようになります。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"> 
    <Relationship 
    Id="rId3" 
    Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout" 
    Target="../slideLayouts/slideLayout3.xml"/> 
    <Relationship 
    Id="rId7" 
    Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" 
    Target="../media/image3.png"/> 
    <Relationship 
    Id="rId6" 
    Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" 
    Target="../media/image2.wmf"/> 
    <Relationship 
    Id="rId4" T 
    ype="http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesSlide" 
    Target="../notesSlides/notesSlide1.xml"/> 
</Relationships> 

あなたがアイテム2及び3参照画像そのTypeことであることに気づくでしょう。

イメージをPowerPointに挿入すると、もはや元の名前とは関係なく、名前が変更されます。それがMy_Climb_Up_Denali.jpgだったら、image1.jpgのような名前に変更されます。

ここで問題は、あなたが探している画像を知っていることです。 <p:pic>要素には、通常は興味のあるファイルパスを保持する属性... @ nameがあります(ただし、クリップアートから挿入したときとは異なる場合があります)。それにかかわらず、それはあなたが探しているものを覚えて半信頼性の高い方法です。

名前が変更された写真の名前を見つけるには、パッケージの内部コンテンツを表示する必要があります。

この件に関しては、Office Open XML Formats: Replacing PowerPoint 2007 Slide Imagesのハウツーがありますが、参考になるかもしれません。

1

可能であること。イメージを挿入して、1つのプレゼンテーション内のあるスライドから別のスライドにコピーすると、PPTは元のイメージを1つだけ保持します。他のインスタンスは、最初のイメージの内部ポインタです。場合によっては、ユーザーが同じピクチャを複数回挿入したことも検出されます。その場合、同じことが実行されます。イメージの新しいインスタンスを挿入するのではなく、オリジナルへのポインタを作成します。

私はこれでやってからしばらくしていましたが、コピーした画像をスライドからスライドに追跡して元のXMLに戻す方法をたどることができました。

画像が正常に挿入され(オブジェクトとしてコピー/ペーストまたは挿入されるのではなく)、挿入された元の画像から他のスライドに貼り付けられた場合、元の画像を置き換えることで、 XMLで。

ファイルが作成されたら、これが起こる可能性は他にありません。

将来のプレゼンテーションで画像を挿入する方法を制御できる場合は、これを簡単に行うことができるように設定することができます。

関連する問題