Officeドキュメントを自動化計画 #3 PPT「データコンバート処理」

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

OfficeアプリケーションはMicrosoft製品なので、もともとはWindows製品であることは誰でも知っていますが、MacでもOfficeアプリが販売されています。
 

そして、Mac版Officeを毎日のように使っている僕が、PowerPointを使っている時に、Windows版にあってMac版にない機能があることに気が付きました。
 


 

上記のような表機能で、とある外部ツールと連携する際に、この表に名前をつける必要があったのですが、Mac版には名前をつける機能は存在しないようです。
 

windows版(web版)には、「代替テキスト」という機能があり、表オブジェクトに対してラベリングをすることができるのですが、Mac版にはこの機能が見つけられませんでした・・・(もしかしたらどこかにあるのかもしれませんが、どうしても見つけられません・・・)
 


 

そんな使い勝手の違うOfficeですが、最近では、Googleスライドを使ったほうがいいというビジネスマンが増えているようですね。
 

確かにpptxへの書き出しやpdf書き出し、他人とのデータを共有できるしセキュリティもしっかりしているということを考えると、もはやOffice製品を使うメリットは限りなく少なく感じます。
 

ただし、それでもOffice製品を手放すことができないのは「他の人がOfficeドキュメントを使っているので、その資料を見るため」という意見がこれまで聞いた中で圧倒的に多かったのですが、なんだかOpenOffice革命が失敗した時と同じように感じてしまうのは、まだまだMicrosoft信者が多いという証拠なのでしょうか?

PowerPointの内容置換処理

PowerPointデータに書かれている文字列を置換してみたいと思います。
 

この時の手順としては以下の通り、
 

 

1番と3番は大した作業ではないので、今回は2番の解説をやってみます。
 

sample
 

pptxのサンプルデータを解凍すると、以下のリスト群になるのは以前に説明済みです。
 


 

 

今回はこのサンプルデータの中に書かれている文字列を入れ替えてみたいと思います。
 

対象になるファイルは”ppt/slides/**.xml”です。
 

文字列書き換え

1ページ目にあたる”ppt/slides/slide1.xml”をテキストエディタで開いてみます。
 

 

中断にある、以下の文字列を入れ替えるといいようです。
 

 

このまま、データ群を圧縮してみます。
階層のrootディレクトリに移動して、以下のコマンドを実行。
 

 

PowerPointで開いてみます。
 


 

見事に文字列が入れ替わってくれています。
文字列入れ替えは非常に簡単ですね。
しかも、2バイト文字でも問題なさそうです。
 

sub-title箇所は困難

タイトル部分はうまくいきましたが、サブタイトル部分は以下のような構成になっています。
 

 

改行を入れてわかりやすくしていますが、{…}をタグで分割されています。
 

デフォルトファイルのまま直接使ったんのでオブジェクトが特殊だったのかもしれませんが、スペル変換など、内部におけるタグ防止だと考えられますが、PowerPoint内部では、こうした変換が行われるという事実が判明しました。
 

とりあえず、上記タイトルのように、1つのタグにまとめて文字置換してみます。
 

 


 

どうやら問題なく置換されているようですね。
 

ただ、こうした場合に、自動判別プログラムで、置き換え文字を検索するのが結構大変になりそうで少し不安ですね。
 

タグ分割解決法

今回タグ分割されてしまう事象があった場合にどう対処すればいいかを調査してみました。
 

どうやらこれは、「スペルチェック」機能が、error箇所をタグで分割して、表示で赤い下線を引くという仕様になっている機能にあたったようです。
 

スペルチェック単語と類似で、スペルミスと判断されてしまっていたようです。
 

これは、任意の置き換え文字を許容した場合に起こり得る事象ですね。
 

この解決方法は、ツール内にあるスペルチェックを起動させて、赤線が惹かれているワードを許容する操作をして上げる必要があります。
 

または、アプリの設定画面でスペルチェック機能をoffにしておくといいようです。
 

もう一つツール側で対応できる要素として、スペルチェック要素を全て除外するという処理を事前に行うと、こうしたユーザー作業負担が無くなるかもしれませんね。
 

以後のコンバータ精度向上で対応してみたいと思います。
 

次回はPPTフィアルに、別ファイルのイメージファイルを差し込んでみたいと思います。

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です