Office (2007) Open XML ファイル形式の概要

概要: Office オープン XML 形式の利点を説明します。ユーザーは、XML テクノロジと ZIP のテクノロジを用いて、Office アプリケーションとエンタープライズ システムの間でデータを交換することができます。また、ドキュメントに汎用的にアクセスできます。そして、ファイル破損のリスクが低減します。(26 印刷ページ)

Frank Rice、Microsoft Corporation

2006 年 5 月

適用対象: 2007 Microsoft Office Suites、Microsoft Office Excel 2007、Microsoft Office PowerPoint 2007、Microsoft Office Word 2007

目次

  • Office オープン XML ファイル形式の紹介

  • 新しいファイル形式のシナリオ

  • 新しいファイル形式の利点

  • Office オープン XML 形式関連の用語

  • Office XML 形式の構造

  • Office XML 形式を使用したソリューションの開発

  • Office 製品での新しいファイル形式の使用

  • Office XML 形式のファイルの編集によるリボン ユーザー インターフェイスのカスタマイズ

  • まとめ

  • 追加情報

Office オープン XML ファイル形式の紹介

1990 年代に XML が登場した後、コンピューティングの企業顧客は、自分達が依存しているコンピュータ製品やアプリケーションにオープン形式と標準化を採用することのビジネス上の価値を認識し始めました。XML はさまざまなアプリケーション、プラットフォーム、およびインターネット ブラウザで読み取ることができるため、IT プロフェッショナル達は、XML で実現できる共通のデータ形式により多大な恩恵を受けました。

さらに、Microsoft Office 2000 に XML のサポートが採用されて、開発者達は、以前のバージョンの Microsoft Office で使用されていたバイナリ ファイル形式から XML 形式への移行の必要性に目をやり始めました。バイナリ ファイル (.doc, .dot, .xls、および .ppt ファイル) は、データの保存と受け渡しに長年の間活躍してきた形式ですが、さまざまなアプリケーション間でデータを簡単に移動するとか、ユーザーがデータからビジネスに重要な情報をかき集めることを可能にするなどの新しいビジネス シーンでの課題を満たすことはできませんでした。

2007 Microsoft Office システムでは、Microsoft Office Excel 2007、Microsoft Office Word 2007、および Microsoft Office PowerPoint 2007 に XML ベースのファイル形式を導入することにより、この移行に対応していきます。Office オープン XML 形式と呼ばれるこの新しいファイル形式は、Microsoft Office ドキュメントをベースにしたソリューションへのアプローチ方法に影響を与えるような変更によって、ビジネス シーンでのこれらの課題を解決します。

新しい形式は、ファイルとデータの管理、データの回復、および基幹業務システムとの相互運用性を向上させます。この形式により、以前のバージョンのバイナリ ファイルで行えていたことがさらに拡張されます。新しいファイル形式のデータには、XML をサポートするどのアプリケーションからでもアクセスでき、作業できます。アプリケーションが Microsoft Office システムの一部である必要はなく、Microsoft 製品である必要さえもありません。ユーザーは、標準の変換を使用して、データを抽出したり、別の目的に使用したりすることもできます。さらに、情報が XML で保存されていて本質的にプレーン テキストであるため、セキュリティ面の懸念も大幅に低減します。このため、データが企業内ファイアウォールを問題なく通過できるようになります。

注意

Office XML 形式と Windows XML Paper Specification 形式を混同しないようにしてください。Office XML 形式で使用されている 仕様とライセンスのダウンロードXML Paper Specification (XPS) でも使用されていますが、この 2 つの形式は、いくつかの重要な点で異なります。XPS は、ページ区切りのある固定したドキュメント形式で、Microsoft Windows Vista オペレーティング システムで導入されました。Office XML 形式は、Office Word 2007、Office Excel 2007、および Office PowerPoint 2007 用の完全に編集可能なファイル形式です。この 2 つのファイル形式は、XML と ZIP 圧縮を使用するという点は共通していますが、ファイル形式の設計と用途は異なります。

新しいファイル形式のシナリオ

Office XML 形式により、ユーザーがデータで作業する方法が変わります。以下、新しいファイル形式で可能になったシナリオをいくつか紹介します。

  • ZIP アーカイブからすべての項目を抽出しなくても、サーバー側のプロセスでどれか 1 つの項目を読み取ることができます。たとえば、ドキュメントの書式やプロパティ、その他の周辺情報が入っているファイルは開かずにおいて、ドキュメントのデータが入っている XML ファイルだけを抽出したりできます。

  • ほとんどのシナリオでは、新しいファイル コンテナはユーザーにとって透過的です。見た目は、今までのバイナリ ドキュメント ファイルと何も変わりません。しかし、新しい XML 形式のドキュメントは圧縮されていてサイズが小さいため、電子メールやその他のメディアで他のユーザーに送信することが以前の形式より簡単になりました。

  • ウィルス検索プログラムやサーバー アプリケーションでは、簡単にコンテナを抽出して、感染している項目だけを直接表示することができます。コンテナやそこに入っているコンテンツの破損を心配する必要はありません。

  • 新しいファイル形式で保存されたファイルには、実行可能なマクロ コードを含めることができません (この記事で後述するマクロ有効ファイルは例外です)。このため、"安全である" と見なされ、セキュリティ上の懸念なしにファイアウォールを通過でき、電子メール アプリケーションで送信することができるのです。この動作は、Microsoft Office アプリケーションによって強制されます。マクロ パーツが追加されている Office XML 形式のドキュメントは、Office で開くことができません。

    注意

    一部の ZIP アプリケーションでは、暗号化ファイルを作成することができます。新しいファイル形式では、暗号化ファイルは作成されません。暗号化されたファイルを読み取ろうとすると、ファイルの読み取りが中止され、エラーが返されます。

  • コンテナ内のどれかの項目が破損しても、その他の項目まで使用できなくなることはありません。たとえば、ユーザーが損傷したディスクから作成したファイルを開こうとして、ファイルが破損していた場合、Office のファイル回復メカニズムによって中心ディレクトリが再構築され、ファイルのコンテンツが完全に復元されます。

  • Office 開発者は、Microsoft WinFX アプリケーション プログラミング インターフェイス (API) を使用して、有効な XPS ファイルを作成することができます。これらの API は、ソリューションで新しいファイル形式のドキュメントのコンテンツを扱うための手段です。この API を使用することにより、その他の ZIP アプリケーションで作成された ZIP アーカイブを開くこともできます。ただし、Office でサポートされていない ZIP 機能は使用されていないことが前提となります。

    注意

    Microsoft Office は、WinFX API で読み取ることができる Open Packaging Conventions に準拠したファイルを作成します。そして、逆に、WinFX を使用すれば、Microsoft Office アプリケーションで開くことができるパッケージを作成できます。WinFX API は、Microsoft Windows Vista、Microsoft Windows Server 2003、Microsoft Windows XP も含めて、以前のバージョンの Microsoft Windows で動作します。さらに、Microsoft Office 2000、Microsoft Office XP、Microsoft Office 2003 の各エディションについてはコンバータが使用可能です。

新しいファイル形式により、Office ユーザーが日々の業務で使用するアプリケーションでの作業方法まで変わります。以下のシナリオでは、2007 Office リリースを使用して作業を行う方法が新しい形式によってどのように変わるかを示します。

  • 好奇心旺盛なユーザーであるハワードは、2007 Office リリースでの新しいファイル形式のコンテナが ZIP ファイルであることに気付きました。そして、これを調べたくなり、Word 2007 で作成したドキュメントの 1 つを ZIP アプリケーションを使用して開いてみます。XML ドキュメントのコンテンツのように見えるファイルがいくつかと、元のドキュメントに入っていたのと同じ画像がいくつか見つかりました。興味の沸いたハワードは、XML ファイルの 1 つをメモ帳で開いて、Word で生成されたのはどのような XML ファイルなのかを調べます。そして、ドキュメントの中身を簡単に覗けることに満足し、メモ帳と ZIP アプリケーションを閉じて、Word でファイルを開き直し、ドキュメントでの作業を続けました。

  • ジャンは、自分で作成した Word 2007 ドキュメントのドキュメント プロパティを変更する必要が生じました。そこで、新しい形式のファイルを ZIP 製品で開いて、ドキュメント プロパティが格納されている XML ファイルを抽出し、変更を加え、そのファイルをコンテナに戻してから、コンテナを保存して閉じました。この後 Word でドキュメントを開くと、ドキュメントのコンテンツはすべてそのまま残っており、変更を加えたプロパティだけが変わっていることが確認できます。

  • あるコンサルティング会社が、会社の新しい業務内容を反映させるべくロゴを変更しました。IT 部門は、現在サーバーに保存されている何千というドキュメントに入っているロゴを変更する作業を行わなければなりません。以前のバージョンの Microsoft Office だと、各ドキュメントを個別に開いて古いロゴを削除してから新しいロゴを貼り付けるか、またはこの作業を自動化する複雑なカスタム アプリケーションを作成してテストする必要がありました。新しいファイル形式では、IT 部門は、ファイル構造を辿ってメディア フォルダ内のグラフィックを探し出し (これは、どのドキュメントでも同じ)、それを新しいグラフィックに入れ替えるバッチ プロセスを作成するだけで済みます。これで、ドキュメントを開いたときには、自動的に新しいロゴが表示されます。

  • 法律事務所は、依頼主のデータや事務所自体のデータの機密性を保護する必要があります。ある事務所は、Word で作成したドキュメントも含めて、ドキュメントというものにはさまざまなプロパティが保存されており、こういったプロパティには表示されるものもあれば、画面に表示されないものもあるということを、これまでの一般的な作業から認識していました。これらのプロパティには、顧客の機密情報や会社の企業秘密が含まれていることもあります。この事務所は、試行錯誤を通じてこの情報を削除する手順を確立しました。しかし、この作業は時間が掛かるうえ、ユーザーが手順どおりに作業しなければうまくいかないため、ミスが発生する元になっています。新しいファイル形式では、IT 部門が、フォルダ構造内のフォルダを 1 つ 1 つ調べて、対象となる部分をパッケージから削除するシンプルなバッチ プロセスを開発するだけで済みます。これで、この事務所は、すべての機密情報と企業秘密をドキュメントから安全に間違いなく削除できるようになりました。

  • デニスは修士論文の作成中で、最終的な変更作業をしていました。参考文献を書き加え、いよいよ最後の保存を実行します。ところが、恐ろしいことにこの保存処理が途中で止まってしまい、ドキュメントが破損している可能性があるというメッセージが表示されました。しばらくしてショックから立ち直ったデニスは、新しいファイル形式を使用していたことを思い出します。そこで、テキストを新しいドキュメントにインポートし、写真を添付し直し、書式とスタイルの部分を取り込むと、ドキュメントがうまく再構築されました。これで無事、新しいドキュメントを保存できます。

  • エリザベスは Windows 2000 ユーザーで、2007 Office リリースに付属していたコンバータのインストールされた Office 2000 で作業しています。このため、Word XML 形式のドキュメントを開くことができます。さらに、そのドキュメントを編集してから、新しい形式のドキュメントとして保存し直すこともできます。このコンバータでは、ドキュメントを開く機能だけでなく、保存する機能もサポートされているからです。

新しいファイル形式の利点

新しい Office XML 形式は、開発者と開発者がビルドするソリューションだけでなく、個々のユーザーやあらゆる規模の組織にもさまざまな利点をもたらします。

以下に挙げるのは、Office XML 形式がもたらすその他の全体的な利点の一部です。

  • ビジネス情報を簡単にドキュメントに統合。Office XML 形式により、さまざまなデータ ソースから短時間でドキュメントを作成することが可能になり、ドキュメントの組み立て、データ マイニング、コンテンツの再利用などが促進されます。Office アプリケーションとエンタープライズ ビジネス システムの間でのデータ交換も簡単になります。さらに、Office アプリケーションを使用せずに Office ドキュメント内の情報を変更したり、ドキュメントのコンポーネントからドキュメント内情報を作成したりもできます。XML の読み取りと書き込みをサポートしているアプリケーションであればどのアプリケーションでも選択でき、それを使用して情報をより迅速かつ正確に公開したり、検索したり、再利用したりできるため、従業員の生産性が向上します。

  • オープンでロイヤリティーフリー。Office XML 形式は、XML テクノロジと ZIP テクノロジに基づいているため、広く一般に利用可能です。この形式とスキーマの仕様は、公開され、現在の Microsoft Office 2003 リファレンス スキーマのライセンスと同じように無償のライセンスの下で提供されることになっており、業界で広く使用できるようにオープンに提供されます。

  • 相互運用可能。業界標準の XML を Office XML 形式の中核に据えているため、Microsoft Office アプリケーションとエンタープライズ ビジネス システムの間でのデータ交換が簡単になります。XML を操作できる標準のツールやテクノロジを使用することにより、Office アプリケーションを使用しなくても、Office ドキュメント内の情報を変更したり、ドキュメントを作成したりできます。新しい形式では、Office コードを使用しなくてもドキュメントのアーカイブを構築できます。

  • 堅牢。Office XML 形式は、バイナリ形式よりも堅牢になるように設計されているため、ファイルが破損したことによる情報損失のリスクが低減します。Office アプリケーション自体が、新しい形式を使用すれば高い信頼性でドキュメントを復元できるように設計されているため、Office 外で作成したり変更を加えたりしたドキュメントについても、破損の可能性は低くなります。ドキュメントが電子メールの添付ファイルやリムーバブル ストレージを通じてますます頻繁にユーザー間で手渡されるようになるにつれ、ネットワークやストレージの障害が原因でドキュメントが破損する可能性も高まります。

    新しいファイル形式では、データがセグメント化され、各部が個別にファイル パッケージに保存されるため、データ回復が向上します。これにより、企業は、損失したデータの回復に費やす膨大な費用と時間を節約することができます。ファイルの 1 つのコンポーネントが破損した場合でも、ファイルの残りの部分はアプリケーションで開くことができます。たとえば、1 つのグラフが壊れた場合でも、そのせいでドキュメントの他の部分まで開けなくなるということはありません。そのグラフなしでドキュメントを参照できます。さらに、Office アプリケーションは、これらの欠陥が検出することができます。ユーザーがドキュメントを開いたときには、Office アプリケーションが、ドキュメントの正しいデータ構造を復元してドキュメントを修復することを試みます。

  • 効率的。Office XML 形式では、ドキュメントの保存に ZIP テクノロジと圧縮テクノロジが使用されています。新しい形式の大きな利点は、ファイル サイズが大幅に小さくなることです。同等のバイナリ ドキュメントと比べて、最大で 75% も小さくなります。これは、ファイルの保存に XML テクノロジと ZIP テクノロジを組み合わせて使用することの 1 つの利点です。XML は、非常に圧縮効率がよいテキスト ベースの形式であり、ZIP コンテナではコンテンツの圧縮がサポートされているため、ファイル サイズの大幅な縮小が可能になるのです。ファイルの保存に必要なディスク空間が少なくなったり、電子メール、ネットワーク、および Web を介したファイル転送に必要な帯域幅が減ったりするため、このようなファイル圧縮はコスト削減につながります。

  • 安全。Office XML 形式のオープン性は、ファイルの安全性と透過性を向上させます。ユーザー名、コメント、ファイル パスなどの個人を特定できる情報やビジネス上の機密情報を簡単に見つけ出して削除することができるため、安心してドキュメントを共有できます。同様に、OLE オブジェクトや Microsoft Visual Basic for Applications (VBA) コードなど、特殊な処理のためのコンテンツを含んでいるファイルも見分けることができます。また、このファイル形式は、コードやマクロが埋め込まれたドキュメントのセキュリティ向上にも役立ちます。新しい Word 2007、Excel 2007、および PowerPoint 2007 のファイル形式では、既定では、埋め込まれたコードは実行されません。このため、Word ドキュメントが添付されている電子メール メッセージを受け取った場合には、ドキュメントが有害なコードを実行する心配なしに添付ファイルを開くことができます。Office XML 形式には、コードが埋め込まれたファイル用に、別の拡張子を持つ特殊用途形式があるため、IT 担当者はコードを含むファイルを簡単に見分けることができます。

  • 下位互換性。2007 Microsoft Office システムには、Microsoft Office 2000、Microsoft Office XP、および Microsoft Office 2003 との下位互換性があります。これらのバージョンのユーザーは、ほとんど労力を使わずに新しい形式を採用できるようになり、そのうえで既存ファイルの利点をによる恩恵を最大限に受け続けることができます。特に, .doc, .xls, .ppt などの古いバイナリ形式は、2007 のファイル形式と完全に互換性があり、そのまま使用することができます。以前のバージョンの Office のユーザーは、以前のバージョンで新しい形式のファイルを開いて編集することを可能にする無償の更新をダウンロードできます。2007 Office リリースをインストールしたユーザーは、どちらでも好きな方の形式を既定のファイル形式に設定できます。これにより、ユーザーは以前のバージョンをベースにしたサードパーティ製のソリューションで確実に作業し続けることができ、さらにアップグレードした同僚やサプライヤ、顧客、その他のユーザーとも一緒に作業できます。

Office オープン XML 形式関連の用語

以下、この記事および関連コンテンツで使用される用語の定義を説明します。

  • API   ソフトウェア機能にアクセスするために使用される一連の関数またはメソッド。API は、Application Programming Interface (アプリケーション プログラミング インターフェイス) の略です。

  • コンバータ   Office XML 形式で作成されたファイルを以前のバージョンの Office で開くための無償ツール。

    注意

    コンバータは、ドキュメントの情報権利管理 (IRM) 保護を読み取り、それを尊重して適用します。IRM 保護を含むドキュメントは、受信者が 2007 Office リリースを使用しているのか以前のバージョンを使用しているのかに関係なく、引き続き保護されます。

  • 上位互換性   以前のバージョンのアプリケーションで新しいバージョンのファイルを開けること。以前のバージョンに実装されていなかった機能は無視されます。たとえば、Word 2003 は、コンバータを使用して Word 2007 のファイルを正常に開くことができるため、Word 2007 に対して上位互換性があります。

  • Office オープン XML 形式   ドキュメント中心のコンテンツの作成、パッケージ化、配布、および表示に使用される、文書パーツとリレーションシップの構造。これらの文書パーツは、ソフトウェア アプリケーションが信頼性高く一貫した形でドキュメントを生成、交換、および表示することを可能にするドキュメント形式のプラットフォームに依存しないフレームワークを定義します。

  • パッケージ   ドキュメントを構成するコンポーネント (パーツ) が、仕様とライセンスのダウンロード 仕様に従って格納された ZIP コンテナ。

  • パーツ   パッケージ内の 1 つのファイルに対応します。たとえば、ユーザーが Excel 2007 ファイルを右クリックしてそれを抽出すると、workbook.xml ファイルといくつかの sheetn.xml ファイルが表示されます。これらの各ファイルが、パッケージのパーツです。

  • リレーションシップ   一連のパーツがどのように統合されてドキュメントを形成するのかを指定するための手法。リレーションシップは、ソース パーツとターゲット リソースの間の関係を指定します。リレーションシップは、ドキュメント パッケージ内の XML パーツに格納されます (/_rels/.rels など)。

  • XML   XML (拡張マークアップ言語) は、インターネット上およびその他の場所で電子出版やさまざまなデータ交換のために設計されたシンプルで柔軟性の高いテキスト形式です。

  • ZIP   コンピュータ間での、または電子メールによる、あるいはインターネットを介したファイルの保存と転送に使用される業界標準の圧縮アーカイブ形式です。

Office XML 形式の構造

この新しいファイル形式コンテナは、単純なパーツ ベースの圧縮 ZIP ファイル形式仕様に基づいています。新しい Office XML 形式の中核をなすのは、XML リファレンス スキーマと ZIP コンテナです。各ファイルが、任意の数のパーツで構成され、これらのパーツ全体でドキュメントが定義されます。

ドキュメントの各パーツは、業界標準の ZIP 形式を使用して、コンテナ ファイルまたはパッケージに格納されます。ほとんどのパーツは XML ファイルで、アプリケーション データを表すものもあれば、メタデータやユーザー データを表すものまであり、すべてコンテナ ファイル内に保存されます。画像を表すバイナリ ファイルやドキュメントに埋め込まれた OLE オブジェクトなどの XML ではないパーツも、コンテナ パッケージ内に保存されます。また、パーツ間の関係を指定するリレーションシップ パーツもあり、このデザインによって Office ファイルの構造が形成されます。パーツがファイルのコンテンツを構成し、コンテンツの各部がどのように協調して動作するのかをリレーションシップが表します。

この結果、Office ドキュメントの XML ファイル形式はしっかりと統合されたうえで、モジュール化され、高度な柔軟性を持ちます。以降では、この Office XML 形式の各部について詳しく説明していきます。また、新しいファイル形式を使用する Office アプリケーションについても説明します。

注意

Office XML 形式のファイルの構成を理解するには、まずファイルを抽出することをお勧めします。ファイルを開くには、ZIP アプリケーション (WinZip Computing Corporation 提供の WinZip など) がコンピュータにインストールされていることが必要です。

Word 2007 XML ファイルを開くには

  1. ファイルとそのパーツを保存するための一時フォルダを作成します。

  2. テキスト、図、その他の要素を含む Word 2007 ドキュメントを .docx ファイルとして保存します。

  3. ファイル名の末尾に拡張子 .zip を追加します。

  4. ファイルをダブルクリックします。これにより、ファイルが ZIP アプリケーションで開かれ、ファイルを構成するパーツを見ることができます。

  5. 前の手順で作成したフォルダにパーツを抽出します。

ZIP パッケージ

Microsoft Office ドキュメントの作成には、多くの要素が関与します。その中には、すべての Office アプリケーションに共有される共通の要素もあります。たとえば、ドキュメント プロパティ、スタイル シート、グラフ、ハイパーリンク、図表、画像などがこれに該当します。一方、各アプリケーションに固有の要素もあります。Excel のワークシート、PowerPoint のスライド、Word のヘッダーとフッターなどです。

ユーザーが Office 2003 または以前のバージョンの Microsoft Office でドキュメントを保存すると、単一のファイルがディスクに書き込まれます。このファイルは、簡単に開くことができます。このように見えることは、実務の中でドキュメントを保存し、管理し、共有する上で非常に重要です。2007 Microsoft Office システムのドキュメントは、個々のパーツを ZIP コンテナに入れてパッケージ化することにより、以前と変わらず単一のファイルとして扱えるようになっています。単一のパッケージ ファイルを使用して単一のドキュメントの実体を表すため、ユーザーは、Office (2007) のドキュメントを保存したり開いたりするときに、以前のバージョンの Office でしていたのと同じように操作できます。引き続き、単一のファイルだけを扱えばよいのです。

図 1. 2007 リリースのファイル形式のコンテナ

2007 リリースのファイル形式コンテナ

以前のバージョンの Office では、Office ドキュメントのコンテンツを操作する必要のある開発者は、バイナリ ファイルで定義された構造化ストレージに従ってデータを読み取ったり書き込んだりする方法を理解しなければなりませんでした。Office のバイナリ ファイル形式は主に Office アプリケーションからアクセスされるものとして設計されていたため、このプロセスは複雑で難しいものでした。この形式は、アプリケーションのメモリ内での構造を反映しており、低速ハードディスクを持つメモリの少ないコンピュータでも処理できました。さらに、Office アプリケーションを使用せずにプログラミングによって Office のバイナリ ファイルを変更することは、ファイルを破損する主な原因とされていました。このため、ファイルの変更を試みることさえ思いとどまる開発者もいました。

ZIP が Office XML 形式のためのパッケージ形式として採用されたのは、これが業界内で非常によく理解されている標準形式であるためです。現在、ZIP 形式を扱えるツールは多数あります。ZIP を使用することにより、将来の機能拡張を可能にする柔軟なモジュール式の構造が得られます。このため、業界標準の ZIP ファイルを扱う膨大なツールとテクノロジのどれを使用しても、2007 Microsoft Office システムのドキュメントのコンテンツのあらゆる部分にアクセスできます。いったんコンテナ ファイルを開いたら、ドキュメントを定義するパッケージ内に見つかるあらゆる文書パーツを操作できるのです。たとえば、Office XML 形式を使用した Word 2007 ドキュメントを開いて、その Word ドキュメントの本文を表す XML パーツを探し出し、XML を編集できる任意のテクノロジを使用してそのパーツに変更を加え、その XML パーツをコンテナ パッケージに戻せば、改訂された Office ドキュメントが得られます。

パーツ

Office XML 形式のパッケージ内には、そのファイルの多数の論理パーツが個々のファイル (パーツ) として保存されています。このモジュール性は、このファイル形式の重要な特性の 1 つです。モジュール性により、特定のパーツを短時間で突き止め、そのパーツだけに直接作業することが可能になります。業務上の具体的なニーズを満たすために、文書パーツを編集したり、交換したり、削除することもできるのです。

サムネール、メタデータ、メディア、リレーションシップなどのパーツは、すべての Office アプリケーションで共有されます。また、ドキュメント プロパティなどの特定のパーツは、一貫してすべてのファイルに存在します。一方、それが表すアプリケーション ドキュメントの種類に固有のパーツも多数あります。たとえば、ワークシート パーツは Excel ドキュメントにしか含まれないし、スライド マスタ パーツは PowerPoint ドキュメントにしか含まれません。

Open Packaging Conventions で規定されているいくつかの例外を除いて、実際のファイル ディレクトリ構造は不定です。ファイルの有効性は、ファイル構造ではなくパッケージ内のファイルのリレーションシップによって決まります。ZIP コンテナに入っている Office (2007) XML 形式のファイルのパーツは、リレーションシップを正しく修正して文書パーツが設計どおりの相互関係を保てるようにしさえすれば、自由に編成し直したり、名前変更したりできます。リレーションシップが正しければ、ファイルはエラーなしに開けます。Office XML 形式のファイルの最初のファイル構造は、生成された既定の構造です。この既定の構造は、ユーザーが Office XML 形式のファイルの構成を簡単に指定できるようになっています。リレーションシップを最新の状態に維持しさえすれば、この既定のファイル構造は自由に変更できます。この詳細については、「チュートリアル: Word 2007 オープン XML ファイル形式」を参照してください。

パーツには、さまざまなコンテンツ タイプがあります。Microsoft Office のアプリケーション データを表すために使用されるパーツは、XML として保存されます。これらのパーツは、関連する Office 機能や Office オブジェクトを定義する XML 参照スキーマに従っています。たとえば、Excel 2007 ファイルでは、ワークシートを表すデータは Excel ワークシート用の Office スキーマに従った XML パーツに格納されます。さらに、ブック内に複数のワークシートがある場合、パッケージ ファイルには各ワークシートに対応する XML パーツが格納されます。既定の Office 文書パーツを表すすべてのスキーマが、完全に文書化され、無償ライセンスで Microsoft から提供される予定です。そうなれば、XML ベースの標準的な任意のテクノロジを使用し、Office スキーマに関する知識を適用して、2007 Microsoft Office システムのドキュメントを簡単に解析したり作成したりできるようになります。

パーツをネイティブ コンテンツ タイプで保存する方が多くの利点が得られるシナリオも多くあります。これらのパーツは、XML としては保存されません。たとえば、2007 リリースの Office ドキュメントのイメージは、バイナリ ファイル (.png, .jpg、およびその他のファイル タイプ) として保存されます。したがって、ZIP アプリケーションを使用してパッケージ コンテナを開いたら、すぐにイメージをそのネイティブ形式で表示したり、編集したり、入れ替えたりできます。この保存アプローチは、アクセスしやすいだけでなく、必要な内部処理やディスク空間も、イメージをエンコードされた XML として保存するよりも少なくなります。その他にバイナリ パーツとして保存される注目すべきパーツとしては、VBA プロジェクトと埋め込み OLE オブジェクトがあります (埋め込み OLE オブジェクトがバイナリになるのは、関連付けられている OLE サーバーがバイナリでの表現しか提供していない場合だけです。たとえば、2007 Microsoft Office システムの埋め込み文書は、そのコンテンツを他のパッケージとして埋め込みます)。開発者にとっては、アクセスしやすさによって多くのシナリオがより魅力的になります。たとえば、2007 Microsoft Office システムのドキュメントのコレクションに反復処理を実行して、既存の OLE オブジェクトを新しいバージョンに更新するようなソリューションを構築できます。このようなソリューションやその他の膨大なシナリオが、Office アプリケーションを使用したり、そのドキュメント固有の XML に変更を加えたりすることなく実現できるのです。次のセクションでは、Office XML 形式をサポートするすべての Office 製品に共通のパーツをいくつか取り上げ、それらについて簡単に説明します。パーツの種類と数は、その ZIP コンテナ ファイルを生成したアプリケーションにより異なります。たとえば、Word 2007 ではドキュメント関連のパーツが生成されますが、PowerPoint 2007 ではスライド プレゼンテーション関連のパーツが生成されます。

_rels フォルダ

このフォルダには、パッケージ内のルート リレーションシップを定義する .rels ファイルが格納されます。これが、パッケージ全体を解析する場合に最初に見なければならない場所です。

.rels ファイル

開始パーツ (仮想開始パーツ) を基にしたリレーションシップが格納されます。リレーションシップは、次の形式で定義されます。

<Relationship Id="someID" Type="relationshipType" Target="targetPart"/> 

Id 任意の文字列。ただし, .rels ファイル内で一意でなければなりません。

Type リレーションシップの種類。これにより、他のリレーションシップと区別したり、そのリレーションシップの目的に関してヒントを得たりできます。これは、Office XML 形式の種類を定義するスキーマを指します。

Target リレーションシップのターゲット (他のパーツ) が入っているフォルダとファイルを指定します。

表 1. リレーションシップの種類

組み込みリレーションシップの種類

https://schemas.microsoft.com/office/2006/relationships/officeDocument

https://schemas.microsoft.com/office/2006/relationships/vbaProject

https://schemas.microsoft.com/office/2006/relationships/userXmlData

https://schemas.microsoft.com/office/2006/relationships/hyperlink

https://schemas.microsoft.com/office/2006/relationships/styleSheet

https://schemas.microsoft.com/office/2006/relationships/comments

https://schemas.microsoft.com/office/2006/relationships/oleObject

https://schemas.microsoft.com/office/2006/relationships/e2Object

https://schemas.microsoft.com/office/2006/relationships/e1Object

https://schemas.microsoft.com/office/2006/relationships/image

https://schemas.microsoft.com/office/2006/relationships/sound

https://schemas.microsoft.com/office/2006/relationships/movie

https://schemas.microsoft.com/office/2006/relationships/slide

https://schemas.microsoft.com/office/2006/relationships/layout

https://schemas.microsoft.com/office/2006/relationships/notesslide

https://schemas.microsoft.com/office/2006/relationships/slidemaster

https://schemas.microsoft.com/office/2006/relationships/glossaryDoc

https://schemas.microsoft.com/office/2006/relationships/cfChunk

https://schemas.microsoft.com/office/2006/relationships/dataStoreItem

https://schemas.microsoft.com/office/2006/relationships/embeddedFont

https://schemas.microsoft.com/office/2006/relationships/embeddedMetroObject

https://schemas.microsoft.com/office/2006/relationships/chart

https://schemas.microsoft.com/office/2006/relationships/activeXControl

https://schemas.microsoft.com/office/2005/relationships/diagram

https://schemas.microsoft.com/office/2005/relationships/diagramData

https://schemas.microsoft.com/office/2005/relationships/diagramStyle

https://schemas.microsoft.com/office/2005/relationships/diagramColorTrans

https://schemas.microsoft.com/office/2005/relationships/diagramDefinition

https://schemas.microsoft.com/package/2005/02/md/core-properties

https://schemas.microsoft.com/office/2006/relationships/docPropsApp

https://schemas.microsoft.com/office/2006/relationships/docPropsCustom

https://schemas.microsoft.com/ office/2006/relationships/documentThumbnail

https://schemas.microsoft.com/office/2006/relationships/glossaryDoc

メインの文書パーツ

https://schemas.microsoft.com/office/2006/relationships/officeDocument リレーションシップのターゲットは、ドキュメントを定義するメイン パーツです (PowerPoint の場合はプレゼンテーション パーツ、Excel の場合はブック パーツ、Word の場合は文書パーツ)。その他のリレーションシップはすべて、メインの文書パーツが基になります。

アプリケーション フォルダ (Word など)

次のような、アプリケーション固有のドキュメント構成ファイルが格納されます (Word の場合)。

  • wordDocument.xml   ドキュメントのデータ (テキスト) が格納され、さらにスタイルとフォントの設定も格納されます。

  • footer.xml   ドキュメントのフッターに関する情報が格納されます (対象となるページ、スタイル情報など)。

  • header.xml   ヘッダーに関する、footer.xml ファイルとよく似た情報が格納されます。

  • wordDocument.doc   元のドキュメントのコピーです。

  • styles.xml   ドキュメント内のスタイルに関する情報が格納されます (フォント サイズ、テーブルのスタイル、箇条書きなど)。

オーディオ ファイル

.mid ファイル, .mp3 ファイル, .wav ファイルなどのオーディオ タイプのファイルが格納されます。

Content_Types.xml ファイル

パッケージに含まれるその他のパーツのコンテンツ タイプの一覧を提供します。コンテンツ タイプは、パッケージに格納できるパーツの種類として、次のように定義されています。

表 2. ZIP コンテナ内のコンテンツ タイプ

組み込みコンテンツ タイプ

application/vnd.ms.powerpoint.template.macroEnabled.12application/x-font

application/vnd.ms-excel.12application/x-font

application/vnd.ms-excel.addin.12application/xml

application/vnd.ms-excel.binary.12audio/aiff

application/vnd.ms-excel.macroEnabled.12audio/basic

application/vnd.ms-excel.macroEnabledTemplate.12audio/midi

application/vnd.ms-excel.template.12audio/mp3

application/vnd.ms-metro.core-properties+xmlaudio/mpegurl

application/vnd.ms-metro.relationships+xmlaudio/wav

application/vnd.ms-office.activeX+xmlaudio/x-ms-wax

application/vnd.ms-office.chartaudio/x-ms-wma

application/vnd.ms-office.vbaProjectimage/bmp

application/vnd.ms-powerpoint.image/gif

application/vnd.ms-powerpoint.macroEnabled.12image/jpeg

application/vnd.ms-powerpoint.main.12+xmlimage/png

application/vnd.ms-powerpoint.presentation.12image/tiff

application/vnd.ms-powerpoint.show.12image/xbm

application/vnd.ms-powerpoint.show.macroEnabled.12image/x-icon

application/vnd.ms-powerpoint.template.12video/avi

application/vnd.ms-word.document.12video/mpeg

application/vnd.ms-word.document.macroEnabled.12video/mpg

application/vnd.ms-word.document.macroEnabled.main+xmlvideo/x-ivf

application/vnd.ms-word.document.main+xmlvideo/x-ms-asf

application/vnd.ms-word.fontTable+xmlvideo/x-ms-asf-plugin

application/vnd.ms-word.listDefs+xmlvideo/x-ms-wm

application/vnd.ms-word.settings+xmlvideo/x-ms-wmv

application/vnd.ms-word.styles+xmlvideo/x-ms-wmx

application/vnd.ms-word.subDoc+xmlvideo/x-ms-wvx

application/vnd.ms-word.template.12

application/vnd.ms-word.template.macroEnabled.12

application/vnd.ms-word.template.macroEnabled.main+xml

application/vnd.ms-word.template.main+xml

ドキュメント プロパティ パーツ

XPS 形式に従ったすべてのファイルに定義されるコア ドキュメント プロパティが格納されます。以下のようなプロパティがあります。

  • 作成者

  • タイトル

  • サブタイトル

  • コメント

  • 最終保存日

  • 作成日

リレーションシップ

パーツは、2007 リリースの Office ドキュメントを構成する個々の要素です。リレーションシップは、一連のパーツがどのように相互に関連して実際のドキュメントを形成するかを指定するために使用される手段です。リレーションシップの定義には、XML を使用します。リレーションシップは、ソース パーツとターゲット リソースの間の関係を指定します。たとえば、スライドとそのスライドに表示されるイメージの間の関係をリレーションシップにより指定できます。リレーションシップは、ドキュメント コンテナ内の "リレーションシップ パーツ" と呼ばれる XML パーツ内に格納されます。ソース パーツに複数のリレーションシップがある場合、2 つ目以降のリレーションシップもすべて同じ XML リレーションシップ パーツに記述されます。

リレーションシップは、Office XML 形式の中で重要な役割を果たします。すべての文書パーツが、少なくとも 1 つのリレーションシップから参照されます。リレーションシップを使用すれば、パーツのコンテンツを見なくても、パーツ間の相互関係を知ることができます。パーツ内では、リレーションシップへの参照がすべてリレーションシップ ID を使用して表されます。これにより、パーツ間の関係はすべて、コンテンツ固有のスキーマからは独立して維持することが可能になります。

図 2. Excel 2007 ブックのリレーションシップを概念的に表した図

Excel 2007 ブックの依存関係ダイアグラム

例として、2 つのワークシートを持つ Excel 2007 ブックのリレーションシップ パーツを次に示します。

<Relationships xmlns="https://schemas.microsoft.com/package/2005/06/relationships"> 
<Relationship ID="rId3" 
   Type="https://schemas.microsoft.com/office/2005/8/relationships/xlStyles"
      Target="styles.xml"/> 
   <Relationship ID="rId2" 
Type="https://schemas.microsoft.com/office/2005/8/relationships/xlWorksheet" 
         Target="worksheets/Sheet2.xml"/> 
   <Relationship ID="rId1" 
      Type="https://schemas.microsoft.com/office/2005/8/relationships/xlWorksheet" 
         Target="worksheets/Sheet1.xml"/> 
   <Relationship ID="rId5" 
Type="https://schemas.microsoft.com/office/2005/8/relationships/xlMetadata" 
         Target="metadata.xml"/> 
   <Relationship ID="rId4" 
Type="https://schemas.microsoft.com/office/2005/8/relationships/xlSharedStrings" 
         Target="strings.xml"/> 
</Relationships>

リレーションシップは、ドキュメント内部での参照のみでなく、外部リソースも表します。たとえば、ドキュメントにリンクされた図やオブジェクトがある場合、これらもリレーションシップを使用して表されます。これにより、ドキュメント内にある外部ソースへのリンクの確認、検証、および変更が簡単になります。また、リンク切れした外部リンクの修復や、見慣れないソースの検証、有害である可能性のあるリンクの削除もやりやすくなります。

開発者には、Office XML 形式のリレーションシップを使用するとさまざまな形で利点が得られます。パーツを見つけるためにドキュメント固有の XML を解析する必要もなければ、ドキュメントの内部リソースや外部リソースを見つけるためにドキュメント固有の XML を解析する必要もないため、リレーションシップにより、ドキュメント内のコンテンツが置かれている場所を突き止めるプロセスが簡単になります。リレーションシップにより、ドキュメント内のすべてのコンテンツの一覧が簡単に入手できるようになるのです。たとえば、Excel ブック内のワークシートの数を知りたい場合、リレーションシップにあるシート パーツの数を調べるだけで済みます。また、ドキュメントのコンテンツの種類を調べるのにもリレーションシップを使用できます。これは、ドキュメント内に有害である可能性のある特定の種類のコンテンツ (疑わしい OLE オブジェクトなど) が含まれていないどうかかを調べる必要がある場合や、役立つコンテンツを探している場合 (別の場所での再利用のためにドキュメントからすべての JPEG イメージを抽出したい場合など) に便利です。

リレーションシップは、アプリケーション固有の構文やコンテンツ マークアップを学習せずにドキュメントを操作することも可能にします。たとえば、開発者は PowerPoint のプログラミング方法などを一切知らなくても、ドキュメントのリレーションシップを編集するだけで、プレゼンテーションから無関係なスライドを簡単に削除することができます。

マクロ有効ファイルとマクロなしのファイル

Office XML 形式で保存された 2007 Microsoft Office システム ドキュメントは、既定ではマクロなしのファイルになるものと想定されており、コードを含むことができません。このため、既定のドキュメント内に存在する悪意のあるコードが予想外に実行されることは決してありません。2007 Microsoft Office システムのドキュメントにもマクロを挿入して使用することは可能ですが、そうするには、ユーザーまたは開発者がそのドキュメントをマクロ有効文書という種類で保存する必要があります。この安全措置によって、開発者のソリューション構築には影響を与えることなく、組織が安心してドキュメントを使用できるようになります。

マクロ有効ファイルは、マクロなしのファイルとまったく同じファイル形式を持ちますが、それに加えてマクロなしのファイルにはない追加のパーツも含みます。追加パーツは、ドキュメントに入れられた自動化の種類によって異なります。VBA を使用するマクロ有効ファイルには、VBA プロジェクトを格納するバイナリ パーツが含まれます。Excel 4.0 スタイルのマクロ (XLM マクロ) を使用している Excel ブックや、コマンド ボタンを含む PowerPoint プレゼンテーションも、すべてマクロ有効ファイルとして保存されます。マクロなしファイル内にコード固有のパーツが見つかった場合、それが誤って配置されたのか悪意を持って配置されたのかに関係なく、Office アプリケーションは決してコードの実行を許可しません。これに例外はありません。

Microsoft Office 2007 システムのドキュメントは、ドキュメントを開く前にドキュメント内にコードが存在するかどうかを調べることができます。以前は、この "事前の確認" を Office 外で行うことは簡単には実現できませんでした。パッケージ ファイルを検査すれば、Office を実行しなくても、コードベースのパーツまたはリレーションシップが存在するかどうかを調べることができます。危険なコードを実行してしまう可能性もありません。ファイルが疑わしい場合は、コードを実行する可能性のあるパーツはすべてファイルから削除して、コードによる害の発生を確実に防ぐことができます。

ファイル名拡張子

Office XML 形式を使用して保存した 2007 Microsoft Office システム ドキュメントには、以前のバージョンの Office で使用されていたバイナリ ドキュメントと区別がつくように、新しいファイル名拡張子が与えられます。新しい拡張子は、以前のバイナリ ファイルのファイル名拡張子を流用し、その末尾に 1 文字追加したものになっています。Word 2007、Excel 2007、PowerPoint 2007 で新しいファイル形式を使用して作成したドキュメントの既定の拡張子は、"x" という文字が最後に追加されて、それぞれ .docx, .xlsx, .pptx になります。新しいファイル形式を使用したその他の種類の Office ドキュメント (テンプレート、アドイン、PowerPoint ショーなど) にも新しい拡張子が付けられます。

2007 Office リリースで導入されたその他の新しい変更点として、マクロ有効ファイルにはマクロのないファイルとは異なる拡張子が与えられることが挙げられます。マクロ有効ドキュメントのファイル名拡張子は、"x" ではなく "m" で終わります。たとえば、Word 2007 のマクロ有効ドキュメントの拡張子は .docm になります。これにより、どのユーザーもソフトウェア アプリケーションも、ドキュメントを開く前にそのドキュメントにコードが含まれていることを認識できます。

表 3. Word 2007 ドキュメントのファイル名拡張子

Word 2007 でのファイルの種類

拡張子

Word 2007 XML ドキュメント

.docx

Word 2007 XML マクロ有効ドキュメント

.docm

Word 2007 XML テンプレート

.dotx

Word 2007 XML マクロ有効テンプレート

.dotm

表 4. Excel 2007 ドキュメントのファイル名拡張子

Excel 2007 でのファイルの種類

拡張子

Excel 2007 XML ブック

.xlsx

Excel 2007 XML マクロ有効ブック

.xlsm

Excel 2007 XML テンプレート

.xltx

Excel 2007 XML マクロ有効テンプレート

.xltm

Excel 2007 バイナリ ブック

.xlsb

Excel 2007 XML マクロ有効アドイン

.xlam

表 5. PowerPoint 2007 ドキュメントのファイル名拡張子

PowerPoint 2007 でのファイルの種類

拡張子

PowerPoint 2007 XML プレゼンテーション

.pptx

PowerPoint 2007 マクロ有効 XML プレゼンテーション

.pptm

PowerPoint 2007 XML テンプレート

.potx

PowerPoint 2007 マクロ有効 XML テンプレート

.potm

PowerPoint 2007 マクロ有効 XML アドイン

.ppam

PowerPoint 2007 XML スライド ショー

.ppsx

PowerPoint 2007 マクロ有効 XML スライド ショー

.ppsm

Office XML 形式を使用したソリューションの開発

Office XML 形式は、ドキュメント関連で構築できるさまざまなタイプのソリューションに導入され、ソリューションを向上されます。新しいファイル形式の Office ドキュメントのコンテンツには、ZIP アーカイブを扱うことができる任意のツールまたはテクノロジを使用してアクセスできます。アクセス後は、標準的な任意の XML 処理テクニックを使用してドキュメントのコンテンツを操作でき、ネイティブ形式で埋め込まれているパーツ (イメージなど) については、その種類のオブジェクトを扱うことができる任意のツールを使用して処理できます。

さらに、2007 Microsoft Office システムのドキュメントのコンテナ ファイルを ZIP アーカイブとして手作業で開けるということには、開発者にとって興味深い利点もいくつかあります。たとえば、Office ベースのソリューションを開発する際に、コードを一切記述しなくても、ドキュメントのコンテンツと構造を検証することができます。この便利さは、ソリューション設計やプロトタイプのビルドの際に威力を発揮します。

いったん 2007 Microsoft Office システムのドキュメントの内部を見ると、その構造のおかげで、情報を見つけるにしても、コンテンツを変更するにしても、ドキュメントから要素を削除するにしても、非常に簡単にドキュメントのパーツやリレーションシップの場所を探すことができます。公開された Office 参照スキーマと一緒に XML を使用すれば、その他のドキュメントの作成、既存ドキュメントへのデータの追加、ドキュメント本文での特定のコンテンツの検索なども簡単に行えます。

この記事の以降の部分では、Office XML 形式により可能になるドキュメント ベースのソリューションのシナリオをいくつか紹介していきます。以下で紹介するのは、無限に存在する可能性のごく一部に過ぎません。

  • データの相互運用性

  • コンテンツ操作

  • コンテンツの共有と再利用

  • ドキュメントの組み立て

  • ドキュメントのセキュリティ

  • 機密情報の管理

  • ドキュメントのスタイル設定

  • ドキュメントのプロファイル作成

データの相互運用性

データ交換手段の一般的な標準として XML が出現した今、新しい Office XML 形式を導入することは、ドキュメント ベースのデータにさまざまな異種システムからアクセスしやすくなるということを意味します。XML が Microsoft Office ドキュメントの既定のファイル形式になったということは、ドキュメント データを部署内全体で共有しているのか、それとも 2 つの組織間でビジネス データを交換しているのかなどに関係なく、Office アプリケーションが、以前のバイナリ形式で強いられていたような制限なしにビジネス プロセスに参加できるようになるということを意味するのです。

新しいファイル形式のオープン性は、データのロックを解除し、デスクトップを超えた幅広い、新しいレベルの統合を持ち込みます。たとえば、新しいファイル形式の公開された仕様を参照すれば、Office アプリケーションを使用しなくても、豊富なデータを持つドキュメントを作成できます。サーバー側のアプリケーションでは、ドキュメントをまとめて処理して、企業データを従業員が使い慣れた柔軟な Office アプリケーションで操作できる形にすることができます。また、XPath (一般的な XML クエリ言語) や拡張スタイルシート言語変換 (XSLT) などの標準の XML プロトコルを使用して、データをドキュメントから取り出したり、ドキュメント内のコンテンツを外部データから更新したりすることもできます。

このようなシナリオの 1 つとして、何千というドキュメントをパーソナライズして顧客に配信するシナリオが考えられます。エンタープライズ データベースまたはカスタマ リレーションシップ マネジメント (CRM) アプリケーションから取り出した XML を使用するサーバー アプリケーションを使用することにより、標準のドキュメント テンプレートにプログラミングで情報を挿入するのです。Office アプリケーションを実行する必要がなく、それでも高品質の豊かな Office ドキュメントを再生することができるため、このようなドキュメントの作成は非常に効率的です。

Office でのカスタム スキーマの使用は、ドキュメントをデータの共有に使用するためのもう 1 つの方法です。かつてはバイナリ形式に縛られていた情報に簡単にアクセスできるようになったため、ドキュメントをオープンに交換できるデータ ソースとして提供できるようになったのです。カスタム スキーマは、データの挿入や抽出を簡単にするだけでなく、ドキュメントに構造も追加し、データの有効性を検証することもできます。

コンテンツ操作

Office XML 形式によってプロセスを向上させることができるもう 1 つの貴重な例として、既存の Office ドキュメントのコンテンツ編集が挙げられます。編集には、少量のデータの更新、パーツ全体の入れ替え、パーツの削除、新しいパーツの全体的な追加などがあります。新しいファイル形式では、リレーションシップとパーツを使用することにより、コンテンツが見つけやすく、操作しやすくなります。XML と XML スキーマを使用すれば、XPath、XSLT などの一般的な XML テクノロジを使用して、事実上無制限の方法でドキュメント パーツ内のデータを編集できるのです。

Word ドキュメントのヘッダー内のテキストを編集する必要があるというシナリオも考えられます。もちろん、1 つのドキュメントに行う作業を自動化するというのは実際的ではありません。しかし、たとえば会社が合併し、何百という文書のヘッダーに入っている会社名を新しい社名に更新する必要が生じたとしたらどうでしょう。このような場合は、すべてのドキュメントをループ処理し、Word ファイルの構造内のヘッダー パーツを探し出し、古いテキストを検索する XPath クエリを実行するコードを開発者が記述すればよいのです。このコードでは、さらに新しいテキストを挿入し、ヘッダー パーツを置き換え、すべてのドキュメントを更新し終えるまでこの処理を繰り返します。自動化により、膨大な時間を節約することができ、コードを使わなければできなかったようなプロセスが可能になり、手作業のプロセスで発生する可能性のある間違いも防ぐことができます。

その他には、全体に使用される 1 つのパーツだけを変更することにより、既存の Office ドキュメントを更新しなければならないようなシナリオが考えられます。Excel 2007 のブックでは、パーツを上書きすることにより、古いデータまたは使われなくなった計算モデルの入っているワークシート全体を新しいワークシートに置き換えることができます。このような更新は、バイナリ パーツにも適用されます。必要に応じて、既存のイメージや、OLE オブジェクトでさえも、新しいものと入れ替えることが可能です。OLE オブジェクトとして Office ドキュメントに埋め込まれた Microsoft Office Visio の図面を、そのバイナリ パーツを上書きすることにより更新したりできるのです。ハイパーリンクに入っている URL を新しい場所を指すように更新することもできます。

以下、各アプリケーション固有のシナリオを紹介します。

Word 2007 でのコンテンツ操作

Word ドキュメントに "定型文" を入れるのは、ビジネスの現場でよくあることです。たとえば、会社で作成した公式ドキュメントには、必ず正式な免責事項や契約条件の開示を入れなければならない会社もあります。その他に考えられる定型文の一般的な例は、営業の提案作成や会社から正式に発行するお知らせに使用する "会社概要" です。Word には書式設定されたテキストを挿入できる定型句などの機能が備わっていますが、この機能は、Word による自動化かユーザーの直接操作が必要であるため適用できる規模が限られています。

Word 2007 には、ドキュメントにコンテンツを挿入するための非常に柔軟性に優れた別の方法があります。Word XML 形式では、Word を開いたときにドキュメント全体から参照される文書パーツを追加することができます。つまり、文書パーツのライブラリを構築できるのです。文書パーツは、Word で表示できるドキュメント形式から取り出すことができ、Word ドキュメント ソリューションの中で必要に応じてプログラミングにより再利用できます。

Word コンテンツを操作するためのこの幅広い機能により、サーバー側でのドキュメントの組み立てなどの興味深いシナリオが実現します。前述の例に話を戻すと、サーバー上で作成されたドキュメントに自動的に免責事項を挿入することができます。社内で作成されたすべてのドキュメントに現地の言語での免責事項を入れることになっている多国籍企業について考えてみてください。このような会社では、適切な言語での免責事項を .html ファイルとして作成し、それをサーバーに保存しておきます。そして、ドキュメントを構築するアプリケーションで、必要な言語に対応するドキュメント部分をパーツとしてドキュメント コンテナに挿入すればよいのです。こうして挿入した部分は、Word ドキュメントの一部としてシームレスに表示されます。

Excel 2007 でのコンテンツ操作

負荷を最適化し、パフォーマンスを向上させて、ファイル サイズを小さくするために、Excel 2007 では、Excel ファイル内に繰り返し出現するテキストは 1 つのコピーしか保存されないようになっています。これを行うために、Excel では、https://schemas.microsoft.com/office/2005/8/relationships/xlSharedStrings リレーションシップのターゲットで指定される文書パーツ内に共有文字列テーブルが格納されます。このパーツには、ブック内で見つかった一意のテキスト値がそれぞれ 1 度ずつ追加されます。個々のワークシート セルは、この文字列テーブルを参照してその値を取得します。

このプロセスは、Excel XML 形式を最適化すると同時に、その他のコンテンツ操作ソリューションに利用できる興味深い可能性も与えてくれます。多国籍企業の開発者は、共有文字列テーブルを使用して多言語サポートを提供することができます。サポートする必要のある各言語に 1 つずつブックを作成しなくても、単一のブックで必要な言語に対応する文字列テーブルを使用すればよいのです。その他には、文字列テーブルを使用して、一連のブック内にあるキーワードを検索することもできます。文字列が入った単一のテキストのみの XML ドキュメントの処理は、多数のワークシートや多数のブックに渡って Excel のオブジェクト モデルを操作するより高速かつ簡単になります。

PowerPoint 2007 でのコンテンツ操作

PowerPoint 2007 のプレゼンテーションを PowerPoint XML 形式で保存すると、コンテンツが非常にアクセスしやすい状態になります。PowerPoint では、今回の PowerPoint が XML 形式を提供する初めてのバージョンとなるので、これにより以前のバージョンでは不可能だった数多くのシナリオへの可能性が開かれます。テキスト形式のスライドとスライド メモに完全にアクセスできるようになったのです。検索やインデックス処理、プレゼンテーション コンテンツの作成を必要とするソリューションが実現可能になりました。XML を使用して、簡単にデータ駆動型のプレゼンテーションを作成できます。そして、スライド マスタやスライド レイアウトにも XML パーツを通じてアクセスすることができ、既存の PowerPoint プレゼンテーションや新しい PowerPoint プレゼンテーションの書式をプログラミングで設定できます。

既存のプレゼンテーションからは独立して保存されているスライドのカタログを使用するアプリケーションを作成することにより、PowerPoint プレゼンテーションのコンテンツを組み立てたり再利用したりするのに別のアプローチを取ることができます。スライドは個別の XML パーツとして表されるため、社内の PowerPoint 2007 スライドをデータとして保存し、管理する方法を最適化したソリューションが可能です。ユーザーが PowerPoint 外からスライドを探して選択することによりプレゼンテーションを作成できる "スライド ビューア" を記述することもできます。さらに、アプリケーションを Web ベースにして、一元管理を実現することも可能です。

コンテンツの共有と再利用

Office XML 形式のモジュール性は、いったんコンテンツを生成した後、それを他のいくつものドキュメントの中で別の用途に利用するという可能性を開きます。開発者の方なら、いくつもの基本テンプレートを作成し、各部を他のドキュメントの構築ブロックとして再利用するようすが想像できることでしょう。たとえば、ある Word ドキュメントで作成した表を他の Word ドキュメントで使用したりできるのです。いったん作成したグラフは、さまざまな種類のドキュメント内で何度でも再利用できます (グラフは、すべての 2007 Microsoft Office システム アプリケーション間で共通のスキーマを持ちます)。この形式へのアクセスのしやすさゆえ、コンテンツ共有のあらゆる可能性につながります。

考えられるシナリオの 1 つとして、ドキュメントで使用するイメージのリポジトリを作成する必要がある場合が考えられます。これには、一連の Office ドキュメントからイメージを抽出し、ユーザーがそれを単一のアクセス先から再利用できるようにするソリューションを作成できます。2007 リリースの Office ドキュメントでは、イメージが一切変更されないままバイナリ パーツとして保存されるので、このようなソリューションを作成し、イメージのライブラリを簡単に維持することができるのです。以前に使用されたことのあるイメージを組み込みたいユーザーは、イメージを探すときに、一連のドキュメントを 1 つずついちいち開いてから閉じて調べていく必要はありません。カスタム アプリケーションを使用してリポジトリ内でイメージを探し、見つかったイメージをすぐに作業中のドキュメントに挿入できるのです。

よく似たアプリケーションとして、ドキュメントから抽出したドキュメントの "サムネール" イメージを再利用し、ドキュメントの管理プロセスに視覚的な情報を追加するアプリケーションを作成することもできます。

ドキュメントの組み立て

開発者からの最も一般的な要求の 1 つに、サーバー上で Microsoft Office アプリケーションを自動化することなく Microsoft Office ドキュメントを作成できるようにするというものがあります。豊富なデータを含む複雑なドキュメントを作成する必要がある企業や、大量のドキュメントを組み立てる必要のある企業は、高度な目的のための処理を効率化することを望んでいます。技術的には、Office アプリケーションはサーバーから実行するようには記述されていないし、サーバーからの実行をサポートしてもいません。

Microsoft Office 2003 Editions では、Office 2003 XML 参照スキーマに従って生成された XML ドキュメント形式の導入が、この制限の克服に役立っていました。Office スキーマに従っている限り、XML を組み立てることができる任意のテクノロジで Word または Excel のドキュメントを作成できたのです。その時点ではこれは非常に大きな進歩でしたが、残念ながら Excel と Word にしか適用されなかったうえ、XML ファイルで完全に忠実なドキュメントがサポートされたのは Word だけでした。2007 Office リリースでは、これを基盤として、PowerPoint XML ファイルが追加され、PowerPoint XML ファイルと Excel XML ファイルも完全に忠実なドキュメントをサポートするようになりました。

このテクノロジの進歩により、2007 Office リリースでは、Office を一切開かずに Excel、Word、および PowerPoint のドキュメントを生成する Office ソリューションを作成できるようになりました。このソリューションでは、2007 リリースのスキーマに従って XML を作成し、Office XML 形式で定義されているようにパッケージ コンテンツを作成する必要があります。Microsoft Office アプリケーションが提供する豊富な一連の機能を完全に表すために、Office スキーマは非常に広範になっていますが、1 つのドキュメントを生成するためにこの形式で定義されているすべての構造が必要になるわけではありません。各 Office アプリケーションが定義済みの最小限の項目を持つファイルを開くことができ、したがって、多数のドキュメントを作成することも簡単です。

ドキュメントの組み立ては、新しいドキュメントに関してのみ行われるわけではありません。もちろん、Office XML 形式のルールに従うことにより、Office を使用しなくてもプログラミングでドキュメントを作成できます。しかし、多くの場合、ドキュメントの組み立てとは、既存のドキュメントやデータ、その他のコンテンツの一部分を使用してのドキュメント作成を意味します。新しい Office XML 形式は、モジュール式のアーキテクチャを持っており、そのコンテンツが XML ベースであるため、このようなシナリオにうまく適合します。

ドキュメントの組み立ての例は、PowerPoint プレゼンテーションにも適用されます。多くの企業が、再利用の価値のある膨大な PowerPoint ファイルを保有しています。ユーザーは、しばしば、以前からある複数のプレゼンテーションからスライドを流用して別のプレゼンテーションや関連プレゼンテーションを作成します。スライドの検索、調整、および統合 (コピーと貼り付け) は、一般に、時間がかかるうえ繰り返しの多い作業で、多くの企業が顧客向けのプレゼンテーションについてこの作業の自動化を望んでいます。2007 Office リリースでは、PowerPoint プレゼンテーション ファイル内の個々のスライドが、プレゼンテーション コンテナ パッケージに入れられたスライド用の XML パーツ内で完結した形で存在するため、個別にアクセスできる状態になっています。カスタム ソリューションでは、このアーキテクチャを使用して、プレゼンテーションの組み立てプロセスを完全に自動化することができます。個々のスライドに関するメタデータの格納にカスタム XML を使用すれば、ユーザーは、定義済みのキーワードを使用して簡単にスライドを検索できるようになります。ユーザーがスライドを選択した後は、そのソリューションで、組み立てているプレゼンテーションにスライドの XML パーツを挿入し、参照リレーションシップを作成します。

ドキュメントのセキュリティ

セキュリティは、今日の情報テクノロジでは非常に重要です。Office XML 形式により、Office ドキュメントでの作業やドキュメントのセキュリティを考慮したソリューションの提供を以前より安心して行えるようになります。新しいファイル形式では、認識されている潜在的なあらゆる脆弱性を、それらが問題を発生させる前に検索して削除するソリューションを構築できます。

たとえば、アーカイブ ライブラリに保存するためのドキュメントを準備するソリューションが必要な場合、そこでカスタム コードを実行する必要が生じることは決してないし、顧客に送信するにはマクロのないドキュメントを用意するソリューションが必要になります。一連のドキュメントに反復処理を実行し、https://schemas.microsoft.com/office/2006/relationships/vbaProject リレーションシップのターゲットで指定されているパーツを削除することにより、Office ドキュメントの本文からすべての VBA コードを削除するアプリケーションを記述できます。これにより、より品質の高い一連のドキュメントが得られます。

さらに、Office XML 形式では、マクロ コードを実行できるファイルの種類が 2007 リリースの各製品に対して 1 つずつ提供されます (.docm は Word 用, .xlsm は Excel 用, .pptm は PowerPoint 用)。拡張子の末尾が "m" で終わらないファイルの種類では、たとえマクロ コードが含まれていたとしても、そのコードは決して実行されません。このため、これらのファイルの種類で作業していれば、ユーザーは悪意のあるソフトウェアから確実に保護されます。

残念ながら、Office ユーザーにとっての潜在的なセキュリティ脅威はマクロ コードだけではありません。最近では、バイナリの .jpg ファイルにセキュリティ上の脆弱性が見つかりました。OLE オブジェクトやイメージなどのバイナリ ファイルからの潜在的なリスクは、Office ドキュメントを調べて、検出された脆弱性をすべて削除することにより回避できます。たとえば、特定の OLE オブジェクトが既知のセキュリティ脅威として認識された場合は、そのオブジェクトを含むすべてのドキュメントを探し出して駆除または検疫するようなアプリケーションを作成できます。同様に、リレーションシップ パーツを調べることにより、2007 Microsoft Office システムのドキュメントから参照される外部参照も簡単に識別できます。ソリューション開発者は、この識別によって、ドキュメントから参照されている外部リソースが信頼できるものなのか、それとも修正措置が必要なのかを判断することができます。

パーツは、コンテンツ タイプとリレーションシップによりブロックできます。たとえば、IT 管理者は, .gif イメージにセキュリティ脅威が含まれている可能性があることに気づいた場合、グループ ポリシーの設定を使用して image/gif コンテンツの 2007 Microsoft Office システム ドキュメントへの読み込みを禁止することができます。適正なセキュリティ パッチを適用した後は、この設定を無効にできます。IT 管理者は、こうして確実かつ迅速にユーザーを保護することができます。

パーツのブロックは、形式ポリシーを通じて行うこともできます。たとえば、IT 管理者が、正しくない形式のコメントにより PowerPoint にバッファ オーバーフローのエラーが発生するという脆弱性を見つけた場合、Office ファイルの形式ポリシーの導入によってユーザーとそのコンピュータを保護できます。この場合、コンテンツ タイプ (この例の場合はテキストの入っている XML) でブロックするよりも、schemas.microsoft.com/office/2006/relationships/comments リレーションシップ タイプをブロックすることによってコメントのみを特異的にブロックする方が適切です。これを行うには、管理者が Microsoft Office ポリシー テンプレート (.adm ファイル) を使用して該当オプションを設定します。Office ポリシー テンプレートの使用方法の詳細については、マイクロソフト サポート技術情報の記事「管理者が Office ポリシー テンプレートを Windows のグループ ポリシー設定で使用する方法」を参照してください。

機密情報の管理

悪意のあるコンテンツからユーザーを保護することを模索する中で、ユーザーが誤って不適切にデータを共有するのを防ぐこともできます。共有が不適切なデータとは、ドキュメントに個人識別情報 (PII) の形で保存されているデータのこともあれば、部外秘または社外秘として指定された変更履歴やコメント、注釈のこともあります。どちらのタイプの情報も、ドキュメント全体を隅々まで調べることなく、プログラミングによって直接削除することができます。たとえば、ドキュメントのコメントを削除するには、コメント パーツのリレーションシップがないかどうかを調べ、見つかった場合は、関連付けられているコメント パーツを削除します。

Office XML 形式では、PII とコメントのセキュリティを確保できるだけでなく、これらの情報にアクセスすることもでき、それが他の方法で役立つ場合もあります。たとえば、PII データを使用して、特定の個人により作成されたか、または特定の企業からのドキュメントの一覧を取得するようなソリューションを作成できます。新しいファイル形式では、Office を開いたり、そのオブジェクト モデルを使用したりしなくても、この一覧を生成することができるのです。同様に、Office ドキュメントの入っているフォルダ内またはボリューム内をループ処理して、一連のドキュメント内のコメントをすべて集約するようなアプリケーションも作成できます。また、その他の条件を適用してコメントを限定したり、ユーザーがドキュメントを作成する際にグループ作業をより管理しやすくしたりできます。

ドキュメントのスタイル設定

Office XML 形式を使用した Office ドキュメントのその他の多数の面と同様に、ドキュメントのスタイル、書式、およびフォントも、コンテナ パッケージ内の独立した XML パーツに入れて管理されます。このため、ここでもやはり、この分離による利点を生かしたソリューションを作成できます。企業によっては、非常に特異なドキュメント標準を持っており、これらの管理に非常に時間がかかる場合があります。しかし、たとえば、ドキュメント内のフォントの変更や置き換えなどは、Office を開かなくても行えます。

また、内容は同じものの、部署ごと、場所ごと、子会社ごと、またはターゲットとなる顧客ごとに異なる書式を持つコンテンツのドキュメントがあるというのもよくあることです。このようなコンテンツは単一のドキュメントに入れて保守し、必要に応じて新しいスタイルを適用できます。これを行うには、https://schemas.microsoft.com/office/2006/relationships/styleSheet リレーションシップのターゲットで指定されているパーツを別のパーツに入れ替えます。この入れ替えできるという機能により、膨大なドキュメント内のコンテンツを管理する必要がなくなり、ドキュメントの表示を制御するプロセスが簡単になります。

ドキュメントのプロファイル作成

効率的なドキュメントの管理は、情報テクノロジの世界で長年に渡る課題でした。Microsoft Office 2003 では、作成者、タイトル、サブタイトルなどの以前からある Office ドキュメント プロパティに OLE を使用してアクセスできます。新しい Office XML 形式では、ドキュメント プロパティがドキュメント内の独立したパーツになったため、ドキュメント プロパティにも簡単にアクセスできます。次に示すのは、Word .docx ファイルでのドキュメント プロパティ パーツの一例です。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<CoreProperties xmlns="https://schemas.microsoft.com/package/2005/06/md/core-properties"> 
   <Title>Word Document Sample</Title> 
   <Subject>Microsoft Office Word 2007</Subject> 
   <Creator>2007 Microsoft Office System User</Creator> 
   <Keywords/> 
   <Description>2007 Microsoft Office system .docx file</Description> 
   <LastModifiedBy>2007 Microsoft Office System User</LastModifiedBy> 
   <Revision>2</Revision> 
   <DateCreated>2005-05-05T20:01:00Z</DateCreated> 
   <DateModified>2005-05-05T20:02:00Z</DateModified> 
</CoreProperties> 

新しいファイル形式を使用した Office ドキュメントでは、Office ベースのプロパティで提供される内容を超えてさらに独自のデータやコンテンツを追加することができ、高度なドキュメント プロパティ管理に活用できます。独自にカスタム定義の XML を作成し、それを別のパーツとしてファイルに入れるのです。この XML は、Office XML 形式にアクセスできる任意のツールまたはアプリケーションで使用できます。

Office 製品での新しいファイル形式の使用

多くのパーツは新しいファイル形式が実装されたすべての Office 製品で共通ですが、各製品に固有のコンポーネントもあります。

Excel 2007 のファイル形式構造

各 Office 製品が共通に持つパーツ (XML データ パーツ、リレーションシップ パーツ、メディア パーツなど) に加えて、Excel には、ブック、ワークシート、およびグラフやピボット テーブルのダイナミック ビューのようなエンティティのための独立したパーツもあります。

PowerPoint 2007 のファイル形式構造

PowerPoint のファイル形式には、他の製品と同じ多数のパーツに加えて、個々のスライドのパーツ、マスタ スライド パーツ、プレゼンテーション データなどのスライド プレゼンテーション固有のオブジェクトがあります。

Word 2007 のファイル形式構造

同様に、Word ドキュメントには、ドキュメント プロパティ、スタイルと書式設定、フッター、ヘッダー、文末脚注などに関連した追加パーツがあります。

Office XML 形式のファイルの編集によるリボン ユーザー インターフェイスのカスタマイズ

以下の手順は、Excel 2007 でマクロ有効ブック ファイルを編集することによって、カスタム マクロを呼び出すコンポーネントを含むカスタム リボン ユーザー インターフェイス (UI) を作成する方法を示します。このサンプルでは、以下のことを行います。

  • マクロを 1 つ持つ Excel ブックを作成し、Office XML 形式のマクロ有効ファイル (.xlsm) として保存します。

  • リボンを拡張するためのカスタマイズ ファイルを作成し、タブを 1 つ、グループを 1 つ、ボタンを 1 つ持たせます。

  • ドキュメント内に作成したマクロを呼び出すボタンに、コールバック イベントを指定します。

  • マクロ有効ドキュメントのコンテナ ファイルのコンテンツを編集して、リボン拡張のためのカスタマイズ ファイルを指すようにします。

  • マクロ有効ファイルを保存し、Excel でそれを開きます。

Excel でマクロ有効 Office XML 形式のファイルを作成するには

  1. Excel 2007 を起動します。

  2. [開発] タブをクリックし、[Visual Basic] をクリックします。

    注意

    [開発] タブが表示されていない場合は、自分を開発者として指定する必要があります。これを行うには、アプリケーション内で Microsoft Office ボタン をクリックし、[Excel のオプション]、[基本設定] の順にクリックし、[[開発] タブをリボンに表示する] チェック ボックスをオンにします。これはグローバルな設定です。このように設定すると、リボン UI が実装されている他のすべての Office アプリケーションでも自分が開発者として識別されるようになります。

  3. Visual Basic Editor で、[ThisWorkbook] をダブルクリックして、コード ウィンドウを開きます。

  4. 次の VBA サブルーチンを入力してから、Visual Basic Editor を閉じます。

    Sub MyButtonMacro(ByVal ControlID As IRibbonControl)
       Msgbox("Hello world")
    End Sub
    
  5. ブックを Office XML 形式のマクロ有効ファイル (.xlsm) として保存します。

UI を変更するためのマークアップを含む XML ファイルを作成するには

  1. デスクトップ上に「customUI」というフォルダを作成します。

  2. テキスト エディタで新規ファイルを作成し、それを「customUI.xml」という名前で [customUI] フォルダに保存します。

  3. 次のコードをファイルに追加します。

    <customUI xmlns="https://schemas.microsoft.com/office/2006/01/customui"> 
       <ribbon startFromScratch="true"> 
          <tabs> 
             <tab id=":CustomTab" label="My Tab"> 
                <group id="SimpleControls" label="Sample Group"> 
                   <button id="Button1" size="large" label="Large Button" 
                      onAction="ThisWorkbook.MyButtonMacro" /> 
                </group> 
             </tab> 
          </tabs> 
       </ribbon> 
    </customUI> 
    

次に、前の手順で作成したマクロ有効ファイルのコンテナに含まれているいくつかのファイルを以下のように編集します。

  1. ブック ファイルの名前に .zip という拡張子を追加し、ファイルをダブルクリックして開きます。

  2. customUI フォルダをデスクトップから ZIP ファイルにドラッグして、カスタマイズ ファイルをコンテナに追加します。

  3. .rels ファイルをデスクトップに抽出します。.rels ファイルの入った _rels フォルダがデスクトップにコピーされます。

  4. .rels ファイルを開いて、最後の Relationship タグと Relationships タグの間に次の行を追加します。これにより、ブック ファイルとカスタマイズ ファイルの間のリレーションシップが作成されます。

    <Relationship Id="someID" Type="https://schemas.microsoft.com/office/2006/relationships/ui
    /extensibility" Target="customUI/customUI.xml" /> 
    
  5. ファイルを保存して、閉じます。

  6. _rels フォルダをデスクトップからコンテナ ファイルにドラッグして戻します。既存ファイルは上書きします。

  7. .zip 拡張子を削除して、ブック ファイルの名前を元に戻します。

  8. ブックを開いて、リボン UI に [My Tab] が表示されるようになったことを確認します。

  9. ボタンをクリックします。メッセージ ボックスが表示されます。

まとめ

Microsoft Office システムの 2007 リリースでの Office XML 形式は、ユーザー、企業、および開発者に恩恵を与えます。XML をベースとしたオープンな既定のファイル形式である新しいファイル形式は、ユーザーが構築できるさまざまな新しいソリューションやシナリオへの可能性を解き放ちます。ドキュメントにデータのソースとしてアクセスしたり、Office アプリケーションを使用せずにドキュメントを操作したり、企業内ソリューションの中でドキュメントを処理したりできます。既存のビジネス システムへの投資を Microsoft Office システム プラットフォーム、2007 Office リリース、および新しい XML ベースのファイル形式と統合した組織に、まさに利益がもたらされます。

追加情報

詳細については、以下のリソースを参照してください。