こんにちは、こだかです。先日Visual Studio 2008 Ready Dayが行われました。私は、Office開発のセッションとLINQの話を少々させていただきましたが、セッションの中でうまく説明ができず、個人的には不完全燃焼感が残っています。参加された方申し訳ありません。悔しくて駅からダッシュで帰りました。そしてここ数日、気持ちに整理をつけていたところです。
さて、そんな愚痴はともかく、セッションで行ったデモのフォローを行います。今回紹介するのは、OpenXMLの中にCustomXMLを作成するデモで使用した、Word 2007 Content Control Toolkitです。ここからダウンロードできます。(http://www.codeplex.com/dbe/)このツールは、従来プログラムを書く必要のあった、OpenXMLのカスタマイズをツールで可能にするもので、Office でシステムを構築するさい、簡単なドキュメントの改編を行うには適したものです。
使用してみましょう。まず、Wordで新規文書ファイルを作成します。ここに、開発タブからテキストコントロールを一つ追加し保存します。今回は「文書1.docx」とします。
開発タブがない場合は、Wordオプションより、開発タブをリボンに表示するを選択してください。
このファイルを、Word 2007 Content Control Toolkitで開きます。左のContent Controlsに、先ほど追加したテキストコントロールが確認できると思います。
右のCustom XML PartsよりBind Viewの「Click here to cretate a new one.」をクリックします。EditViewが開きますので、以下のXMLを貼り付けて保存して下さい。その際、先頭行の前に空白などを入れないように注意して下さい。
<?xml version="1.0" encoding="utf-8"?><Products xmlns="http://schemas.microsoft.com/vsto/demo"> <Product> <name>USBメモリ (256MB)</name> <maker>hogehoge</maker> <number>2</number> <price>1500</price> <date>2008/1/25</date> </Product></Products>
Bind Viewから、Productを展開して、nameを左のContent Controlsにドラッグして下さい。
保存したのち、Word 2007 Content Control Toolkitを終了します。
文書1.docxを開くと、CustomXMLの内容が、Wordのコントロールにバインドされて値が表示されているのが確認できます。
このファイルがいったい何の役に立つの?とお考えの方もいらっしゃるかもしれません。このように、データとその表示を分離しておくことによって、特定のドキュメントに行う必要のあった、Office開発の概念を変えることができるようになるのです。つまり、バインドの定義と、CustomXMLがあれば、ファイルの見てくれを問わないプログラムを作成することができるということです。これが、アプリケーションレベルのアドインを開発することにつながります。と、言うわけで、次回はこのファイルを使用したデモをご紹介します。
こだかたろう