gavangavanの日記

書きたいことを書いております。

Powerpointファイルでリンクのきれたムービーを探しだす方法。

パワポは以前動画ファイルは絶対ファイルパスへのリンクだけが格納される形式で、パワポと同じフォルダにあるか、リンク指定されたパスにファイルがあるか、どちらでもない場合にはリンクがきれて動画が再生できなかった。なぜ相対パスにしなかったのかまったく理解に苦しむのだが(そのくせUNCは通る)、このせいでファイルは整理しずらいわ、別のマシンにコピーすると絶対パスが変わってしまってリンクはきれるわ、最悪であった。

Office2007あたりから埋め込みができるようになったのか、今使っているOffice2010 for Macとかでは、ムービーの挿入をするとデフォルトで埋め込みになる(従来通りリンクにすることもできる)。埋め込みとはムービーがパワポファイルのなかにコピーされる、と言う意味で、この状態ならリンクが切れるとかの心配はない。パワポ1ファイルだけコピーすれば完全にプレゼンができる。

新たに作成するプレゼンについてはこれでもうムービーのコピーの心配ないのだが、問題はすでにつくってある過去のスライド資産である。いろいろしらべたが、どうもリンク形式の古いパワポファイルを読んで埋め込みに変換する方法はなさそうなのである。このあたりがいかにもMSクオリティなのだが、手動でよければ一度貼りこまれているムービーを削除し、おなじムービーを再度挿入すればこんどは埋め込みで貼り込まれるので、そういう解決法もある。のだが。

貼りこまれているムービーはいったいファイルパスのどこに存在しているのか?これがわからなくなったムービーがやたら多いのである!。むかしのOffice2003くらいまでであればムービーオブジェクトを右クリックしたら動画のプロパティからファイルパスを確認することができた。しかしいまはできない!!!。
なんでできないようにすんねん!!!

妙な機能はやたら増やすくせにいらんことばっかしよってから…。かくしてどこにリンクされたかわからないムービーをコピーしたとき、いったいどうすればよいのか。Win版であればリンクしてるムービーファイルを一箇所に集めるという機能があるらしいのだが、なんとMac版にはないのである。これまたこういう非対称をなぜやらかすのか……。

困った。もう正規の方法がないようだ。しかたない、ハックするか。

ということで。

  1. まず古いpptを2010で標準になっているpptx形式のファイルに保存しなおす。
  2. pptxはzip形式で展開できるので、Macの場合unzipコマンドでほぐしてしまう。
  3. 展開するとpptというフォルダができているのでその中のslides/_relsフォルダを覗くと、slide01.xml.relsのようなファイルが見つかる。ファイル名の数字はスライドの番号である。このファイルはテキスト形式なので中をみるとリンクされているさまざまなオブジェクトのIDやファイルパスがみえるが、そのスライドでリンクされているムービーがあれば、そのファイルパスがそこに記述されているはずである。

これでファイルパスが発見できるので、あとはパワポで一度そのムービーを削除し、あらためてムービーを埋め込む。

しかし、この作業一発でやれるようにコンバーターつくるべきでしょ>MS。ほんまにないの?この機能。