次の方法で共有


Microsoft Office 2007 および 2010 のユーザー インターフェイス ソリューションの方法

**概要 :**Microsoft Office 2010 では、2007 リリースの Microsoft Office で導入された機能が拡張されています。この記事では、Microsoft Office の一方のバージョンまたは両方のバージョンを適用対象にしたソリューションを作成する方法について説明します。

適用対象: Excel 2010 | Office 2007 | Office 2010 | Open XML | PowerPoint 2010 | SharePoint Server 2010 | VBA | Word 2010

Microsoft アイコン Mirko Mandic, Microsoft Corporation

2009 年 11 月

適用対象 :   Microsoft Access 2010、Microsoft Excel 2010、Microsoft InfoPath 2010、Microsoft OneNote 2010、Microsoft PowerPoint 2010、Microsoft Project 2010、Microsoft Publisher 2010、Microsoft SharePoint Designer 2010、Microsoft Visio 2010、Microsoft Word 2010

内容

  • 2007 Office system および Microsoft Office 2010 のオーサリング ソリューション

  • ドキュメント ベースのソリューションを作成する

  • COM アドイン ソリューションを作成する

  • まとめ

2007 Office system および Microsoft Office 2010 のオーサリング ソリューション

Microsoft Office 2010 では、Microsoft Office Fluent ユーザー インターフェイス (UI) 拡張モデルが進化しています。具体的には、2007 リリースで導入されたプラットフォームが新しい機能で拡張されています。また、新しい Backstage ビューをカスタマイズするためのサポートが導入されています。

この記事では、2007 リリースの Microsoft Office、Microsoft Office 2010、またはその両方と互換性のある UI 拡張ソリューションを作成する方法について説明します。

新しい UI 拡張機能の詳細については、「Office 2010 の Backstage ビューについて (開発者向け)」を参照してください。

ドキュメント ベースのソリューションを作成する

2007 リリースと同様に、Office 2010 でも特定のドキュメントの UI をカスタマイズすることができます。また、2007 リリースと同様に、UI をカスタマイズするには、カスタム UI が定義された XML ファイルを Office Open XML 形式のファイルに追加します。

  • ソリューションの適用対象が 2007 リリースである場合 (または、適用対象が Office 2010 でも、Office 2010 で導入された新しい UI 拡張機能を使用しない場合) は、2007 リリースで導入された UI 拡張方法を利用できます。この場合、UI のカスタマイズを定義した XML ファイルでは、2007 Office system の名前空間を使用します。また、リレーションシップ (.rels) ファイルには、2007 Office system を適用対象とするリレーションシップを記述する必要があります。

    これは同時に、Office 2007 で作成したソリューションが、Office 2010 でも一切の変更なしに機能することを意味します。

    2007 リリースの名前空間は https://schemas.microsoft.com/office/2006/01/customui です。対応するリレーションシップの名前空間は https://schemas.microsoft.com/office/2006/relationships/ui/extensibility です。

  • ソリューションの適用対象が Office 2010 である場合は、Office Open XML 形式のファイルで適切な名前空間と、対応するリレーションシップを使用する必要があります。Office 2010 の名前空間は https://schemas.microsoft.com/office/2009/07/customui です。対応するリレーションシップの名前空間は https://schemas.microsoft.com/office/2007/relationships/ui/extensibility です。

  • ソリューションの適用対象が 2007 リリースと 2010 リリースの両方で、2007 リリースではサポートされない新しい UI 拡張機能を Office 2010 で使用する場合は、それぞれ対応するバージョンの Office を拡張する 2 種類のカスタム UI XML ファイルを Office Open XML ファイルに追加する必要があります。また、両方のファイルに対応するリレーションシップ エントリをリレーションシップ ファイルに記述する必要もあります。

表 1. 2007 および 2010 リリースの Office でのカスタム UI XML ファイルの使われ方

XML ファイル

2007 Office system

Office 2010

2007 Office system 用の XML ファイル

XML ファイルが使用される

XML ファイルが使用される

Office 2010 用の XML ファイル

XML ファイルは無視される

XML ファイルが使用される

2007 Office system 用と Office 2010 用の 2 種類の XML ファイル

2007 リリース用の XML ファイルが使用され、Office 2010 用の XML ファイルは無視される

Office 2010 用の XML ファイルが使用され、2007 リリース用の XML ファイルは無視される

Office Fluent UI をドキュメント レベルでカスタマイズするプロセスでは、次の手順を実行します。

  1. マクロ有効ファイル名の拡張子 (.docm, .xlsm など) を .zip 拡張子に置き換えます。

  2. Zip パッケージを開き、カスタム UI を定義した XML ファイルをパッケージに追加します。

    マークアップで対象バージョンの Office に対応するタグを使用することに加えて、前に説明したように、適切な名前空間を使用する必要があります。

  3. パッケージのリレーションシップ パーツ (.rels) を変更して適切な XML ファイルをリンクし、リレーションシップの種類が対象バージョンの Microsoft Office に対応するようにします。たとえば、Office 2010 を適用対象とするソリューションを作成する場合で、Zip パッケージ内の customUI フォルダーに customUI2010.xml ファイルを追加した場合、新しく追加するリレーションシップ行は次の例のようになります。

    <Relationship Id="rId4" Type="https://schemas.microsoft.com/office/2007/relationships/ui/extensibility" Target="/customUI/customUI2010.xml" />
    

    リレーションシップの Id には, .rels ファイル内で一意な任意の値を割り当てることができます。

  4. Zip パッケージを閉じ, .zip 拡張子をマクロ有効ファイルの適切な拡張子に置き換えます。

  5. ドキュメントを開き、XML ファイルで定義したカスタマイズが反映されていることを確認します。

注意

Office Open XML Formats 構造内で行われている処理を知ることは役に立ちますが、これらの手順は省略してもかまいません。Custom UI Editor ツール (英語)を利用できるからです。このツールを使用すると、ドキュメントを開き、カスタム UI を (2007 リリースまたは 2010 リリースの Microsoft Office を適用対象にしたファイルを使用して) 挿入し、XML マークアップが適切に指定されたドキュメントを保存できます。また、カスタム アイコンを追加し、それらのアイコンを簡単に参照することもできます。

COM アドイン ソリューションを作成する

一般的なシナリオでは、カスタム UI を定義した XML を Microsoft Office に返すコードが COM アドインに含まれています。この XML は、外部ファイルに記述することも、単純な場合にはコード自体に記述することもできます。アプリケーションが実行されると、コードが Office に XML マークアップを返します。必要に応じて、この XML を XSD スキーマ ファイルと照合することもできます。XML はメモリに読み込まれ、Office Fluent UI に適用されます。

  • アドインの適用対象が 2007 リリースまたは 2010 リリースのどちらか一方の Microsoft Office である場合は、コードによって返されるマークアップに (前に説明した) 適切な名前空間が含まれている必要があります。また、対象バージョンで有効なマークアップを使用する必要もあります。

  • アドインの適用対象が 2007 リリースと 2010 リリースの両方の Microsoft Office である場合は、実行中の Microsoft Office のバージョンをコードで識別し、その結果に基づいて適切なマークアップを返す必要があります。これを行うには、2 種類のマークアップ ファイルを作成し、コードからアクセスできるようにする必要があります。実行中の Microsoft Office のバージョンは、アプリケーションのオブジェクト モデル (Application.Version) を利用して確認できます。

    また、リフレクションを使用して確認することもできます。次に示すのは Microsoft Visual C# を使用した場合の例です。

    string version = applicationObject.GetType().InvokeMember(
       "Version", BindingFlags.GetProperty,
        System.Type.DefaultBinder,
        applicationObject,
       new Object[0]) as string;
    

まとめ

各バージョンの Microsoft Office を適用対象にする方法は、ドキュメント固有のソリューションを作成するか、COM ベースのソリューションを作成するかによって異なります。ドキュメント ベースのソリューションを作成するときは、対象バージョンの Microsoft Office に対応するカスタマイズ UI の構造が定義された XML ファイルを Microsoft Office で検出して読み込む必要があります。COM ベースのソリューションを作成するときは、対象のバージョンの Microsoft Office に対応するカスタマイズ UI の構造が定義された XML ファイルをコードで返す必要があります。

その他のリソース

Office 2010 の拡張機能の詳細については、次のリソースを参照してください。