Office 2007 および Office 2010 向けの Office Open XML を使用して、ユーザー設定の SmartArt レイアウトを作成する

概要: ここでは、SmartArt グラフィック レイアウトのコンポーネントについて説明するほか、XML で SmartArt レイアウトをカスタマイズする方法、および独自のユーザー設定レイアウト ファイルを作成する方法について説明します。また、SmartArt のスタイルと色のギャラリーをカスタマイズする方法、および完全なユーザー設定レイアウトのマークアップについて説明します。

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

この記事の内容
概要
SmartArt レイアウトの構造
SmartArt レイアウトの書式設定を行う
SmartArt 図のファイルを理解する
Office Open XML を使用して SmartArt グラフィックをカスタマイズする
既存の図から .glox, .gcsx、または .gqsx ファイルを作成する
チュートリアル: layout1.xml
次の手順
その他の技術情報
著者について

公開:   2011 年 2 月

提供元:  Stephanie Krieger

目次

  • 概要

  • SmartArt レイアウトの構造

  • SmartArt レイアウトの書式設定を行う

  • SmartArt 図のファイルを理解する

  • Office Open XML を使用して SmartArt グラフィックをカスタマイズする

  • 既存の図から .glox, .gcsx、または .gqsx ファイルを作成する

  • チュートリアル: layout1.xml

  • 次の手順

  • その他の技術情報

  • 著者について

クリックしてコードを取得 サンプル コードを取得する

クリックしてコードを取得 SmartArt テンプレート ファイルをダウンロードする

概要

Microsoft Office ユーザーは、ほぼすべての種類のドキュメントとプレゼンテーションにおいて、重要な情報を表したり強調したりするのに役立つ図を作成します。ただし、図を適切に作成することは、必ずしも簡単な作業ではありませんでした。Microsoft Office 2007 に SmartArt グラフィックが導入されたことで、ユーザーは実質的に箇条書きを入力するだけで美しく高品質な図を作成できるようになり、ビジネス グラフィックが大幅に前進しました。

Microsoft Office 2010 (および Microsoft Office for Mac 2011) には、100 を超える組み込み SmartArt レイアウトが含まれており、ユーザーはそれらを使用してさまざまな種類の図を作成できます。ただし、提供されるレイアウト オプションとは異なるものを要求するブランド設定の要件が企業にあったり、組み込みレイアウトに存在しない図の種類をユーザーが必要としたりする場合があります。幸いにも、SmartArt グラフィックは拡張することができます。これを使用して、ユーザーが必要なコンテンツを正確に作成するようにユーザーを支援できます。Office Open XML を使用して、任意の組み込み SmartArt レイアウトをカスタマイズするか、ユーザー向けの完全なユーザー設定レイアウトを作成します。

この記事では、SmartArt 図の構成をフロント エンドとバック エンドから確認し、ユーザー設定の SmartArt レイアウトをゼロから作成する方法の基本について説明します。

注意

この記事は、基本的な Office Open XML ドキュメント パッケージの構造、パッケージ内のパーツにアクセスする方法など、Office Open XML Formats での作業の基本を読者が既に習熟していることを前提とします。Office Open XML を初めて使用する開発者は、「Essentials of the Open Packaging Conventions」を参照してください。開発者経験がなく、Office Open XML を始めて使用するユーザーは、無料のオンライン トレーニング コース「Office オープン XML I: Office オープン XML 形式を理解する」を参照してください。この 2 つの資料とこの記事で提供されている他のリンクは、本来、Microsoft Office 2007 向けに記述されていますが、Office 2010 にも等しく適用できます。

SmartArt レイアウトの構造

基本的に、SmartArt 図は、複数レベルの箇条書きのグラフィック表示です。図 1 に示すように、ユーザーは、テキスト ウィンドウで段落の追加およびインデント レベルの変更を行うことで、図形の追加と図の構成を行います。Office 2010 では、100 を超える組み込みレイアウトを使用でき、リスト、プロセス、階層、ドーナツ型図表など、さまざまな図のカテゴリがカバーされています。

図 1: ユーザーはテキスト ウィンドウで箇条書きの追加やレベルの変更を行って、SmartArt 図を構築する。

ユーザーが SmartArt 図を作成

開発者は、ユーザーの視点からの SmartArt に関する重要な点として、ユーザーが入力するときに使用できる図のカテゴリと、図がどのように構築されるかの 2 点に注意する必要があります。

ほとんどの図は、テキストよりも効果的な方法で視覚的に情報を伝えることに役立つ構造またはパターンを実行します。たとえば、図 2 で示されているとおり、組織図では、階層パターンに従って組織内の報告構造が視覚的に示されます。同様に、ドーナツ型図表では、プロセス内の手順間の循環的な関係が視覚的に示されます。これらのパターンまたは構造は、図ロジックの種類です。

図 2: 簡単な SmartArt 組織図と基本的なドーナツ型図表の例。

シンプルな SmartArt 組織図の例

SmartArt では、多くの種類の図ロジックがサポートされます。たとえば、直線、循環型、または階層型の図を作成できます。図では、キャンバスの最後で方向を曲げたり変えたりできます。図の種類に関係なく、すべての SmartArt レイアウトは 1 つ以上の論理パターンに従う必要があります。

図 3: テキスト ウィンドウにユーザーが入力した情報と表示される図との関係を示す例。

リレーションシップの例

レイアウトを設計する場合、第 2 レベルのテキストを 1 次図形の第 1 レベルのテキストの下またはその独自の図形に表示できます。また、第 2 レベルのテキストを許可しないこともできます。さらに、テキストではなくイメージをユーザーが追加できる図形や、コンテンツがなく外観を整えることだけが目的の純粋に装飾的な図形を作成できます。

SmartArt レイアウトの書式設定を行う

SmartArt レイアウトをドキュメントに挿入するときの既定の書式は、通常、適用済みのドキュメント テーマの 1 番目の強調色と、追加のグラフィック書式効果が設定されていない単純な塗りつぶしです。その後、ユーザーは、SmartArt スタイル ギャラリーと SmartArt 色ギャラリーからオプションを選択して、図を簡単に書式設定できます。

SmartArt の書式設定は、アクティブなドキュメント テーマに関連付けられます。したがって、たとえば、特定のブランド ガイドラインをドキュメント内で使用する組織の作業を行う場合は、ブランドの色とグラフィック書式の設定を含むユーザー設定テーマを作成できます (独自のユーザー設定テーマの作成方法に関する開発者向けの概要など、テーマの詳細については、「Creating Document Themes with the Office Open XML Formats」を参照)。

SmartArt スタイル ギャラリーと SmartArt 色ギャラリーは、Office 2010 の SmartArt ツールの [デザイン] タブ (または Office for Mac 2011 の [SmartArt] タブ) にあります。

  • 図 4 に示されている SmartArt スタイル ギャラリーには、グラフィック書式効果の各スタイルが含まれており、その一番上の行では、適用されたドキュメント テーマに指定された効果が使用されています。

  • 図 4 に示された SmartArt 色ギャラリーには、適用されたドキュメント テーマの色を使用するさまざまな色の組み合わせが含まれます。

Microsoft Office は、アクティブなテーマからの設定を使用して、これらのギャラリー内のオプションを自動的に設定します。ここに表示されている組み込みオプションは変更できません。ただし、組み込みオプションによってユーザーの要件が満たされない場合は、独自のユーザー設定エントリをこれらのギャラリーに追加できます。独自のユーザー設定色とクイック スタイル ファイルを作成する方法については、この記事の後半を参照してください。

図 4: SmartArt のスタイルと色のギャラリー

SmartArt のスタイルと色のギャラリー

SmartArt 図のファイルを理解する

開発者は、主に次の 2 つの方法で、SmartArt 図のファイルを操作できます。

  • SmartArt 図の各パーツは、ユーザーによって図が既に挿入された PowerPoint、Word、または Excel ファイルの ZIP パッケージ内に存在します。ユーザー設定の PowerPoint テンプレート内にあるサンプル スライド上の図のオプションなど、ユーザー ドキュメント内に既に存在する図のオプションをカスタマイズする場合、SmartArt 図のファイルを使用します。

  • SmartArt レイアウト ファイルは, .glox 拡張子を持つ Office Open XML ファイルです。これは、PowerPoint、Word、および Excel 内の SmartArt UI を設定するファイルです。ユーザー設定の SmartArt レイアウトを構築する場合、このファイルの種類を作成する必要があります。

    注意

    (この記事で使用される用語の SmartArt UI は、Office 2010 の SmartArt ダイアログ ボックスと SmartArt レイアウト ギャラリー、および Office for Macintosh 2011 の SmartArt グラフィックの挿入のギャラリーを意味します)。

SmartArt グラフィックス用の Office Open XML を操作するこの 2 つの基本的な方法に加えて、ユーザー設定の色 (.gcsx) とクイック スタイル (.gqsx) のファイルを作成し、SmartArt のスタイルと色のギャラリーにユーザー設定エントリを追加することもできます。

組み込み SmartArt レイアウトとスタイル用の .glox, .gcsx、および .gqsx ファイルは、Microsoft Office をインストールするときに公開されません。ただし、すべての組み込み SmartArt レイアウトの .glox ファイルは、この記事の最後にある「その他の技術情報」からダウンロードできます。また、この記事の後半で、Office 2010 (または Office for Mac 2011) ドキュメント パッケージで、図パーツから独自のファイルを作成する手順について説明します。

図の XML パーツを理解する

図 5 に示されているように、Microsoft Office ドキュメント ファイルの SmartArt 図は、5 個のパーツで構成されます。

図 5: 図パーツを表示するために展開された PowerPoint プレゼンテーション パッケージ。

PowerPoint プレゼンテーション パッケージ

各パーツに何が含まれているか、およびそれによってユーザーのために何をカスタマイズできるかを理解することが重要です。ただし、開発者として、作成するあらゆるユーザー設定 SmartArt レイアウトに最も直接的に対応するパーツは、レイアウト パーツです。

  • data#.xml ファイルには、プレースホルダー データ (新しい図を生成するときにサンプルの図形に表示される既定の [テキスト] など)、およびユーザーが図に追加したコンテンツに関する情報が含まれます。つまり、このファイルには、図に関して、SmartArt テキスト ウィンドウからのすべての情報が格納されます。

  • drawing#.xml ファイルには、図に含まれる図形の数、その各図形のレイアウトなど、図の外観に関するすべての情報が記述されます。

  • layout#.xml ファイルは、ユーザーが図を作成するために SmartArt UI から選択したレイアウトに対応する元の SmartArt .glox ファイルからの情報が含まれるパーツです。このファイルによって、図の種類と図の構築方法が決まります。

  • colors#.xml ファイルには、SmartArt 色ギャラリー内のアクティブな選択に基づいて、図のこのインスタンスで使用する色の定義が含まれます。この情報には、使用可能な各 SmartArt スタイルのラベルごとに色の定義が含まれます。

    スタイルのラベルは、レイアウト内の各ノードに適用して書式設定に関する情報を指定する属性です (SmartArt スタイルのラベルの詳細については、この記事の後半で説明します)。

  • quickStyle#.xml ファイルには、SmartArt スタイル ギャラリー内のアクティブな選択に基づいて、図のこのインスタンスで使用するクイック スタイルの定義が含まれます。色ファイルと同様に、このファイルには、使用可能なスタイルのラベルごとに編集可能な定義が含まれます。

前述の箇条書きでは、番号記号を使用してファイル名の番号 1 が置き換えられます。図 5 のファイル名に示された番号はドキュメント内の最初の図を参照することを示すためです。複数の図がある場合、それらすべてのパーツが図のサブフォルダーに含まれ、各パーツに連続して番号が付けられます。

次のセクションでは、レイアウト、色、および quickStyle ファイルを操作して、ドキュメントまたはテンプレート内のユーザー用の SmartArt コンテンツをカスタマイズする方法を示す例について説明します。その後、独自のユーザー設定レイアウトの開始点としてこの 3 つのファイルを抽出し、編集する方法、およびユーザー設定エントリを色ギャラリーとクイック スタイル ギャラリーに追加する方法について説明します。

.glox ファイルのコンポーネントを理解する

SmartArt layout (.glox) ファイルは、既に知られている可能性のある Office Open XML ドキュメント パッケージの単純化されたバージョンです。図 6 に示されているように、このファイルには、[Content_Types].xml ファイル、_rels フォルダー、主要な図パーツを含む図フォルダーが含まれます。

図 6: .glox ファイルのコンポーネント

.glox ファイルのコンポーネント

Office Open XML ドキュメント パッケージの場合と同様に、[Content_Types].xml ファイルには、主要な各ドキュメント パーツの定義、およびパッケージに含まれる各ファイルの種類の拡張子定義が含まれます。.glox パッケージでは、このファイルには、次に示されているように、layout1.xml ファイル用の 1 つのパーツ名の定義のみと、XML ファイルとリレーションシップ ファイル用の 2 つの拡張子定義が含まれます。

<?xml version="1.0" encoding="utf-8"?>
<Types xmlns="https://schemas.openxmlformats.org/package/2006/content-types">
  <Default Extension="xml" ContentType="application/vnd.openxmlformats-officedocument.drawingml.diagramLayoutHeader+xml" />
  <Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml" />
  <Override PartName="/diagrams/layout1.xml" ContentType="application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml" />
</Types>

また、すべての Office Open XML パッケージで見られるように、必須の _rels (リレーションシップ) フォルダーが含まれます。このフォルダーには、パッケージ内のパーツ間のリレーションシップを記述する .rels ファイルが含まれます。.glox ファイルでは、次のように、レイアウト ファイルとレイアウト ヘッダーのリレーションシップが .rels ファイルに含まれます。

<?xml version="1.0" encoding="utf-8"?><Relationships xmlns="https://schemas.openxmlformats.org/package/2006/relationships">
<Relationship Type="https://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramLayoutHeader" Target="/diagrams/layoutHeader1.xml" Id="rId1" />
<Relationship Type="https://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramLayout" Target="/diagrams/layout1.xml" Id="rId2" />
</Relationships>

layoutheader1.xml ファイルには、次のマークアップのように、一意 ID および SmartArt UI のレイアウトに関する詳細が含まれます。ID は、作成するレイアウトごとに一意である必要があり、そうでない場合、ID は読み込まれません。図 7 に示されているように、タイトルと説明が、Office 2010 の SmartArt ダイアログ ボックスに表示されるプレビューで使用されます。

ヘッダー マークアップには、レイアウトの表示先のカテゴリ用の cat タグが含まれます。複数の cat タグを catLst タグに追加して、レイアウトを複数のカテゴリに表示できます。また、カテゴリ タグには pri (優先順位) 属性が含まれます。これは、ダイアログ ボックスとレイアウト ギャラリー内でグラフィックをどの場所に表示するかを示します。値が低いほど、図はリストの前に近くなります。値を 100 にすると、図 4 のように、この図はリスト カテゴリの前に配置されます。

<?xml version="1.0" encoding="utf-8"?>
<layoutDefHdr uniqueId="Simple Snip Corner List_10_2010" xmlns="https://schemas.openxmlformats.org/drawingml/2006/diagram">
    <title val="Snip Corner List" />
    <desc val="Simple custom list layout with a single node and no connectors. This linear layout adds shapes from left to right, reducing the size of all shapes as more are added." />
    <catLst>
        <cat type="list" pri="100" />
    </catLst>
</layoutDefHdr>

図 7: SmartArt ダイアログ ボックス内の図のプレビュー。

図のプレビュー

layout1.xml ファイルは、レイアウトに対するすべての指示が含まれるパーツです。図 7 に示されている簡単なユーザー設定リストの layout1.xml ファイルについては、この記事の後半で説明します。

注意

メモ: Visual Studio 2010 用の Open XML Package Editor Power Tool を使用する場合、図 8 のように、Visual Studio で .glox ファイルをより明確に表示して、パッケージのリレーションシップを管理できます。このツールを使用すると、Office Open XML 形式のパッケージを作成および編集するときに、多くの作業を省略できます。詳細とツールのダウンロードについてはここをクリックしてください。

図 8: Visual Studio 2010 の OPC エディターに表示された .glox ファイルのコンポーネント

OPC エディターに表示されるコンポーネント

Office Open XML を使用して SmartArt グラフィックをカスタマイズする

SmartArt 図の背後にあるマークアップに習熟すると、スタイルや書式設定から図形の種類や動作にいたるまで、Microsoft Office ドキュメント内に存在する図のほぼすべての要素をカスタマイズできます。

このセクションで選択されたカスタマイズ作業の例は、既存の図をカスタマイズする場合と独自の .glox, .gcsx、および .gqsx ファイルを作成する場合の両方に適用される概念を示すことを目的とします。

図形を変更する

SmartArt 図に対する変更のうち最も簡単で最も頻繁に要求された変更の 1 つは、使用する図形の種類です。たとえば、ユーザーが特に役立つ組織図を見つけても、すべてのグラフィックに対して直角のへり (標準的な四角形など) を認めないブランド設定要件が企業にある場合があります。

ユーザーは、既存のグラフィック内のすべての図形を選択し、その後、SmartArt ツールの [書式] タブの [図形の変更] コマンドを使用してそれらの図形を必要に応じて変更できます。ただし、その後、新しい図形が図に追加された場合、その図形は、レイアウトに示された図形に戻ります。したがって、図内の現在と今後のすべての図形を変更するには、layout#.xml ファイルを変更します。

注意

ほとんどの組み込みの組織図レイアウトでは、通常の四角形が 1 次図形として使用されます。図 9 に示された階層カテゴリ内のほとんどの組み込みレイアウトは、組織図のように見えますが、多くはそうではありません。名前に hierarchy という単語が含まれるレイアウトは、組織図と動作が似ていますが、アシスタントの図形を追加するオプション、分岐のレイアウトを変更するオプションなど、特定の組織図機能がありません。したがって、必須の図形が既に組み込みの階層レイアウトで使用されている場合でも、組織図レイアウトの図形をカスタマイズすることはユーザーにとって役立つことがあります。

図 9: 組み込み SmartArt レイアウトの階層カテゴリ

組み込み SmartArt レイアウトの階層カテゴリ

  1. 新しい図形で使用する図形の種類の名前がわからない場合は、ファイル形式に関するドキュメント (ecma-international.org の ECMA 376 標準のサイト) で調べるか、必要な種類の図形を PowerPoint プレゼンテーションの白紙のスライドに挿入した後にそのスライドのマークアップを調べて図形の種類を確認します。

    スライドに図形を挿入して drawingML の図形の種類名を確認する場合は、該当のスライド ドキュメント パーツ内を検索し、a:prstGeom タグを探して種類名を確認します。

  2. カスタマイズする図の layout#.xml ファイルで、置き換える図形の種類名を確認するには、shape タグを検索し、type 属性を含むタグを確認します。たとえば、次のマークアップでは "roundRect" が図形の種類です。これは、角丸四角形を意味します。

    <dgm:shape type="roundRect" xmlns:r="https://schemas.openxmlformats.org/officeDocument/2006/relationships" r:blip="">
                <dgm:adjLst>
                  <dgm:adj idx="1" val="0.1667"/>
                </dgm:adjLst>
              </dgm:shape>
    
  3. エディターの [置換] コマンドを使用して、既存の図形の名前を、必要な新しい図形の名前で置き換えます。図形の種類名のインスタンス数は、図の種類によって変わる可能性があります。

    図の種類に複数の図形ノード (レベル 1 のコンテンツの図形、レベル 2 のコンテンツの別の図形など) が含まれている場合に、特定のノードの図形のみを置き換えるときは、type 属性を含む shape タグが layoutNode タグ内でネストされていることを確認します。この layoutNode タグには、ノードの名前属性とスタイルのラベル属性が含まれており、これにより、編集するノードを確認できます。

    たとえば、次のサンプル マークアップで、マークアップの最初の行の layoutNode と styleLbl を確認してください。この場合、名前は非常に明示的です。ただし、名前からノードに関する十分な情報を得られない場合は、スタイルのラベルからこれは何のノードかを推測することもできます。スタイルのラベルについては、次のセクションで説明します。

    <dgm:layoutNode name="firstChild" styleLbl="bgAccFollowNode1">
                <dgm:alg type="sp"/>
                <dgm:shape type="rect" xmlns:r="https://schemas.openxmlformats.org/officeDocument/2006/relationships" r:blip="">
                  <dgm:adjLst/>
                </dgm:shape>
                <dgm:presOf axis="ch desOrSelf" ptType="node node" cnt="1 0"/>
                <dgm:constrLst/>
                <dgm:ruleLst/>
              </dgm:layoutNode>
    

色を変更する

当然のことながら、ユーザーは図内の図形を選択してその色を変更できます。ただし、ユーザーが新しい図形を図に追加すると、新しい図形の色には、適用済みの SmartArt の色スタイル (つまり、SmartArt 色ギャラリーで選択されたもの) が使用されます。レイアウト内の図形を変更する場合と同様に、図の既定の色を、SmartArt 色ギャラリーで使用できる色とは異なるものに設定する場合、XML で色を変更します。

前述のとおり、SmartArt 色ギャラリー内の各オプションには、各スタイルのラベルを持つ図形の表示方法に関する一連の定義が含まれます。たとえば、組み込みの基本ベン図のレイアウトを使用してベン図を作成する場合、図形の塗りつぶしは半透明になります。その透明の塗りつぶしは、vennNode1 スタイルのラベルで提供されます。したがって、透明の塗りつぶしを使用しないベン図のレイアウトを作成する必要がある場合は、単に、該当する layoutNode タグ内のスタイルのラベル名の値を置き換えることができます。

注意

独自のユーザー設定レイアウトを作成するときにスタイルのラベルを適用しない場合、色とクイック スタイルの外観を決定するのに既定のラベルが使用されます。既定のスタイルのラベルは図形の種類によって異なります。たとえば、カード型リストのレイアウト (既定では、SmartArt ダイアログ ボックスのリスト カテゴリの前面に表示される) のような、単一レベルのリスト図では、既定のスタイルのラベルは node1 になります。このスタイルでは、さまざまな塗りつぶしを使用する、SmartArt 色ギャラリーのオプションが選択されている場合、新しい図形の色を変更できます。

スタイルのラベルの一覧については、SmartArt の開発者向けリファレンスにある「Style Labels」の表を参照してください。この表には、説明、視覚的な例、および使用目的が含まれます。たとえば、前述のマークアップ サンプルで参照されるスタイルのラベルの "bgAccFollowNode1" は 2 次図形 (子テキストを表示するために使用する図形など) を示すことが表に示されています。

最も一般的なユーザー要求の 1 つとして聞かれるのは、さまざまなテーマ アクセント色を使用する図の最初の図形として、アクセント 1 のテーマ色を自動的に表示する機能です。通常、企業のブランド設定を使用するテーマの最初のアクセント色は、企業の第 1 ブランド色です。

SmartArt 色ギャラリーでカラフル オプションが選択された場合、既定では、多くのレイアウトでアクセント 1 の色が表示されません。これは、組織図の 1 番上の図形、放射型図表の中央の図形など、アクセント 1 の色が常に 1 番目の色として使用される必要のある特定の目的で予約されているためです。node0 は、このような場合に通常使用されるスタイルのラベルです。このスタイルのラベルによって色が変わることはありません。ただし、colors#.xml パーツを編集し、アクセント図形の循環をアクセント 1 から自動的に開始するように図を簡単に変更できます。

図 10: SmartArt 色ギャラリーの 1 番目のカラフル オプションを使用するカード型リストの図はアクセント 2 から開始される。

カード型リスト図

この例の目的のために、図 10 のように、カード型リストの図をスライドに挿入し、SmartArt 色ギャラリーの 1 番目のカラフル オプションを適用します。次に、ファイルを閉じ、ドキュメントの ZIP パッケージを開いて XML を編集します。

注意

既定のカード型リストの図と、この記事の例として参照されているその他の組み込みレイアウトを含むプレゼンテーションが、便宜上、サンプルのダウンロードに含まれます。

  1. 作成したカード型リストの図に関連付けられる colors#.xml ファイルを開きます。

  2. node1 スタイル (ファイルに含まれる 2 番目のスタイル) の styleLbl タブまで下にスクロールするか、検索します。その styleLbl タグの内容には、ここに示されているように、塗りつぶしと線の色に関する情報のほか、追加色の情報に関する使用可能なタグ (テキストの塗りつぶしの色など) が含まれます。

    <dgm:styleLbl name="node1">
        <dgm:fillClrLst meth="repeat">
          <a:schemeClr val="accent2"/>
          <a:schemeClr val="accent3"/>
          <a:schemeClr val="accent4"/>
          <a:schemeClr val="accent5"/>
          <a:schemeClr val="accent6"/>
        </dgm:fillClrLst>
        <dgm:linClrLst meth="repeat">
          <a:schemeClr val="lt1"/>
        </dgm:linClrLst>
        <dgm:effectClrLst/>
        <dgm:txLinClrLst/>
        <dgm:txFillClrLst/>
        <dgm:txEffectClrLst/>
    </dgm:styleLbl>
    

    値 repeat を持つ、fillClrLst の meth (メソッド) 属性に注意してください。これは、以降の図形ごとにリスト内の次のアクセント色が採用され、最後まで到達するとリストの最上部から再度開始されることを意味します。また、メソッド span を使用するスタイルのラベルの定義も確認できます。このメソッドでは、リスト内のアクセント色の網掛けを使用してさまざまな色が作成されます (カラー ホイールと同じ)。

  3. 前述のマークアップの塗りつぶしの色リスト タグ (dgm:fillClrLst) がアクセント 2 のテーマ色から開始されていることに注意してください。アクセント 2 の配色のタグの上にアクセント 1 用の新しい行を作成します。

    <a:schemeClr val="accent1"/>
    

    これを行った後、塗りつぶしの色リスト タグ内に 6 個の schemeClr タグがネストされます。つまり、図内の 1 番目の図形でアクセント 1 の塗りつぶしが使用され、図形が追加されるたびに、図の図形で、6 個すべてのテーマ アクセント カラーの範囲が繰り返されます。

  4. node1 は、この図で使用される既定のスタイルのラベルなので、行う必要がある作業は、PowerPoint でプレゼンテーションを再度開き、図の変更を確認することのみです。同様に、別の図の色を編集する場合、layout#.xml ファイルを表示して、使用されているスタイルのラベルを確認し、そのスタイルの色を変更することができます。

    ただし、ユーザーがアクティブな図のレイアウトを、別のスタイルのラベルを使用する別の SmartArt レイアウトに変更した可能性がある場合、色のリストが繰り替えされるすべての場所で、色ファイル内ですべてのスタイルのラベルのリストを順番に処理し、アクセント 1 を全体に追加することが必要になる場合があります。

    これを行う場合、一部のスタイルのラベルの schemeClr タグが、属性を含むネストされたタグになっていることに注意してください。たとえば、vennNode1 スタイルには、指定された色ごとに透明度属性が含まれます。これは、ここに示されている alpha タグで指定されます。アクセント 1 の色のタグを追加する場合、一貫性を確保するために必要なすべての属性も必ず追加してください。

          <a:schemeClr val="accent2">
            <a:alpha val="50000"/>
          </a:schemeClr>
    

PowerPoint でプレゼンテーションを再度開くと、既存の図に変更された色が表示されます。ただし、SmartArt 色ギャラリーは変更されません。任意のドキュメントの任意の SmartArt 図にユーザーが適用できるギャラリー自体にオプションを追加するには、この記事の後半で示されているように、ユーザー設定の .gcsx ファイルを作成します。

動作を変更する

layout#.xml ファイルには、余白、図形の間隔、最小と最大のフォント サイズ、図形の高さ、図形の幅など、レイアウト内の図形とリレーションシップのパラメーターを統括するルールと制約が含まれます。

たとえば、新しいグラフィックを、変動幅リストのレイアウト (既定において、Office 2010 では、このレイアウトは、SmartArt ダイアログ ボックス内のリストカテゴリの 8 番目のエントリです) を使用してプレゼンテーションに挿入します。この簡単な縦一覧では、各図形の幅を独立して増加できます。

変動幅リストの図の layout#.xml パーツを調べると、制約とルールが指定されているいくつかのセクションがマークアップ内にあります。レイアウト内では、関連するノードに対する制約とルールが表示されます。

表示される 1 番目の制約セットでは、図全体 (ルート レイアウト ノード) に関するいくつかのパラメーターが定義されます。リスト内の 3 番目の制約に注意してください。これは、ここに示されているように、図内で許可される最大フォント サイズ (ポイント単位) を示します。既定では、SmartArt 図内のフォント サイズは、ユーザーが追加するコンテンツの量に基づいて動的に変化します。この例の値では、ユーザーがテキストを編集するときに、フォント サイズが 65 ポイントを自動的に超えることが回避されます。

(この値が指定されていても、ユーザーは、それよりも大きい値を手動で適用できます。ユーザーがフォント サイズを手動で適用すると、図のそのインスタンスでサイズの自動変更動作は実行されなくなります)。

    <dgm:constr type="primFontSz" for="ch" forName="text" op="equ" val="65"/>

ファイル内を少し下に移動すると、図内の 1 次図形に影響する制約とルールがあります。特に、ここに示されている、余白の制約とルールに注意してください。

<dgm:constrLst>
    <dgm:constr type="tMarg" refType="primFontSz" fact="0.2"/>
    <dgm:constr type="bMarg" refType="primFontSz" fact="0.2"/>
    <dgm:constr type="lMarg" refType="primFontSz" fact="0.2"/>
    <dgm:constr type="rMarg" refType="primFontSz" fact="0.2"/>
</dgm:constrLst>
<dgm:ruleLst>
    <dgm:rule type="w" val="INF" fact="NaN" max="NaN"/>
    <dgm:rule type="primFontSz" val="5" fact="NaN" max="NaN"/>
</dgm:ruleLst>

このセクションで、XML で図をカスタマイズする作業を試みると、読者は図の XML コンポーネントに対して良い感触を得ることができるでしょう。残りのセクションを参照するときに覚えておく必要のあることは、図の既存のインスタンスに対して編集する図パーツ内の内容は、独自のレイアウトを作成する場合や SmartArt のスタイルと色のギャラリーを変更する場合に操作する図パーツの内容と基本的に同じであることです。つまり、次の手順で開始する必要のあることの多くは既に習得しています。

既存の図から .glox, .gcsx、または .gqsx ファイルを作成する

既存のレイアウトに似ているユーザー設定レイアウトを作成する必要があり, .glox ファイルへのアクセス権がない場合、コピーする図の既存のインスタンスの layout#.xml パーツを使用する .glox ファイルを作成することで時間を節約できます。同様に、既存の図内にある色とクイック スタイルのパーツを使用して、独自の .gcsx ファイルと .gqsx ファイルの作成にかかる時間を節約できます。

.glox ファイルを作成する

次の 2 つの手順の 1 番目では, .glox パッケージを作成する方法について説明します。ただし、新しい .glox ファイルをレイアウトとして使用できるようにするには、2 番目の手順に従って layout1.xml ファイルを編集する必要があります。

2 番目の手順の例では、カード型リストのレイアウト用の layout#.xml ファイルが使用されます。

.glox ファイルのコンポーネントに関するセクションを再度参照して、作成する必要のあるファイルとフォルダーを確認します。また、そのセクションで、次の手順の [Content_Types].xml ファイル, .rels ファイル、および layoutHeader1.xml ファイルで必要なマークアップを確認します。

.glox パッケージを作成するには

  1. 以前に提供されたマークアップを使用して [Content_Types].xml ファイルを作成します。

  2. _rels および diagrams という名前のフォルダーを作成します。

    • 以前に提供されたマークアップを使用して、_rels フォルダーに .rels ファイルを追加します。

    • 以前に提供されたマークアップを使用して、diagrams フォルダーに layoutHeader1.xml ファイルを追加します。

  3. layoutHeader1.xml ファイルで、マークアップを編集して、一意 ID を指定したことを確認し、新しいレイアウトにタイトルと説明を指定します。また、作成する図の種類用のカテゴリ リストと優先順位を必要に応じて編集することが必要になる場合もあります。

  4. 図のインスタンスを挿入した Microsoft Office ドキュメントから、コピーするレイアウト用の layout#.xml パーツを抽出します。図が、パーツの抽出元のドキュメントの最初の図でなかった場合、ファイル layout1.xml の名前を変更します。

  5. layout1.xml ファイルを、手順 2. で作成した diagrams フォルダーに追加します。このセクションの次の手順で、新しい .glox パッケージを SmartArt レイアウトとして機能するためにこのファイルに加える必要のある編集内容を示します。

  6. コンテンツ タイプ ファイルおよび作成した 2 つのフォルダーを選択して、ZIP フォルダーに圧縮します。次に、zip パッケージのファイル拡張子を .glox に変更します。

.glox ファイル用に layout1.xml ファイルを編集するには

  1. layout1.xml ファイルを編集用に開き、プレフィックス dgm: を探して、そのプレフィックスを全体的に削除します。したがって、たとえば、<dgm:layoutDef… タグは、<layoutDef… になります。

  2. 図の名前空間定義のみを含めるようにレイアウト定義タグ (ファイルの最上部の XML バージョン参照の下にある 1 番目の行) を編集し、:dgm 部分の参照がない状態にします。編集後の行は、次のようなマークアップになります。

    <layoutDef xmlns ="https://schemas.openxmlformats.org/drawingml/2006/diagram">
    

    注意

    前述の手順は、単に, .glox ファイルを技術的に使用可能にするために実行する必要のある手順です。ただし、レイアウトをカスタマイズするときのベスト プラクティスとして、また、編集を容易にしたり適切な動作を行ったりするために残りの手順をお勧めします。

  3. レイアウト定義タグの直後にタイトル、説明、およびカテゴリ タグがある場合、それらのタグを削除します。それらのタグを残しても、ファイルの機能の妨げにはなりませんが、この情報が .glox パッケージの layoutHeader1.xml 部分に表示されます。

  4. サンプル データ (sampData)、スタイル データ (styleData)、および色データ (clrData) の各タグを独自のコンテンツで置き換えることができますが、この時点で行う必要はありません。

  5. これらのタグは、技術的にはオプションですが (つまり, .glox ファイルはこれらのタグがなくても読み込まれます)、これらのそれぞれのタグによって SmartArt ダイアログ ボックス、SmartArt スタイル ギャラリー、SmartArt 色ギャラリーにプレビューを表示できるため、これらのタグは必要です。また、サンプル データによって、ユーザーが図を最初に挿入するときに表示される開始図形が有効になります。したがって、これらのタグによって有効にされたプレビューとプレース ホルダーに表示されたものが、レイアウトのカスタマイズ後に、求められるものではなくなった場合、後でこれらのタグを編集することが必要になる場合があります。このサンプル データ、スタイル、および色の各タグの詳細については、チュートリアル セクションで説明します。

  6. ほとんどの場合、この時点で .glox ファイルは正常に機能しますが、レイアウト ファイルをクリーンアップしたり、編集を容易にしたりするための推奨変更がいくつかあります。特に、次の点に注意してください。

    • shape タグには、ドキュメント内の図のインスタンス (レイアウトではない) に適用されるリレーションシップ情報が含まれます。ベスト プラクティスとして、ここでマークアップ全体をスキャンし、この不必要な情報を削除することでレイアウト ファイルをクリーンアップします。たとえば、名前空間と blip 属性が含まれるここに示されたタグは、タグの最後にスラッシュが含まれないため、ペアのタグへの入り口になります。

      <shape xmlns:r="https://schemas.openxmlformats.org/officeDocument/2006/relationships" r:blip="">
      

      ここに示されたタグを、レイアウト ファイル内で <shape> となるように編集します。ただし、元の shape タグがペアになっていない場合 (つまり、このタグの最後にスラッシュがあり、ファイルに終了タグがない場合)、このタグから不必要な属性を削除するときにスラッシュを必ず残してください。shape タグ内でネストされたタグは、空であっても削除しないでください。その一部が必要になることがあります。

    • 図形の種類を含む shape タグにスタイルのラベルが含まれない場合、スタイルのラベルを追加することをお勧めします。前述のとおり、スタイルのラベルが指定されていない場合、図形では適切なスタイルのラベルが使用されます。ただし、スタイルのラベルを指定すると、図の外観をさらに詳細に制御できます。これを行うには、図形ノードの layoutNode タグを探し、そのタグに styleLbl 属性を追加します。

      たとえば、ここでの例として、カード型リストのレイアウト ファイル使用する場合、スタイルのラベルを含める必要のあるタグは、<layoutNode name="node"> です。スタイルのラベルの node1 をこのノード内の図形に割り当てるには、タグを次のように編集します。

      <layoutNode name="node" styleLbl="node1">
      

新しい .glox ファイルのカスタマイズを開始する前に、そのファイルを既定のユーザーの SmartArt フォルダーに保存し、Office 2010 プログラムで SmartArt ダイアログ ボックスを開き、そのファイルがダイアログ ボックスに適切に読み込まれて、ドキュメントに挿入できるかどうかを確認します。

  • Microsoft Windows 7 または Windows Vista で動作する Office 2010 の既定の SmartArt フォルダーの場所は、C:\Users\[user name]\AppData\Roaming\Microsoft\Templates\SmartArt Graphics です。

  • 新しいファイルを Office for Mac 2011 でも使用する場合 (すべての SmartArt レイアウトはプラットフォーム間で互換性があります)、Mac OS 上のユーザー設定 SmartArt コンテンツのパスは /Users/[user name]/Library/Application Support/Microsoft/Office/SmartArt Graphics です。

.gcsx および .gqsx ファイルを作成する

.gcsx および .gqsx ファイルを作成する手順は .glox ファイルを作成する手順に似ています。以下の 2 つの手順において, .gcsx パッケージ用の手順を示し、該当する場合は .gqsx の相違点を説明します。

手順と、パッケージのファイル/フォルダー構造は, .glox ファイルを作成する場合とほとんど同じですが、ここではそれらの手順が繰り返されています。各手順で一部のファイル名とマークアップに相違点があるためです。

.gcsx および .gqsx パッケージを作成するには

  1. [Content_Types].xml ファイルを作成します。マークアップは, .glox ファイルと似ていますが、XML 拡張とパーツ名の両方の情報内で、パーツ名用の正しいファイル、および色または効果用の正しいコンテンツ タイプを参照します。ここに示されたマークアップは色ファイル用です。これは、diagramColorsHeader および diagramColors への参照で確認できます。

    <?xml version="1.0" encoding="utf-8"?>
    <Types xmlns="https://schemas.openxmlformats.org/package/2006/content-types">
      <Default Extension="xml" ContentType="application/vnd.openxmlformats-officedocument.drawingml.diagramColorsHeader+xml" />
      <Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml" />
      <Override PartName="/diagrams/colors1.xml" ContentType="application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml" />
    </Types>
    

    .gqsx ファイルを作成する場合、diagramColors を diagramStyles で (および diagramColorsHeader を diagramStylesHeader で) 置き換えます。さらに、パーツ名の定義パス内のファイル名 colors1.xmlquickstyle1.xml で置き換えます。ファイル名の colors は複数形ですが、quickstyle はそうでないことに注意してください。

  2. _rels および diagrams という名前のフォルダーを作成します。

    • ここで示されたマークアップを使用して、_rels フォルダーに .rels ファイルを追加します。色ファイルではなくクイック スタイル ファイルを作成する場合、コンテンツ タイプ ファイルで必要とされた同じ変更を加えます。

      <?xml version="1.0" encoding="utf-8"?>
      <Relationships xmlns="https://schemas.openxmlformats.org/package/2006/relationships">
        <Relationship Type="https://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramColorsHeader" Target="/diagrams/colorsHeader1.xml" Id="rId1" />
        <Relationship Type="https://schemas.openxmlformats.org/officeDocument/2006/relationships/diagramColors" Target="/diagrams/colors1.xml" Id="rId2" />
      </Relationships>
      
    • 次のマークアップを使用して、diagrams フォルダーに colorsHeader1.xml ファイルを追加します。

      <?xml version="1.0" encoding="utf-8"?>
      <colorsDefHdr xmlns="https://schemas.openxmlformats.org/drawingml/2006/diagram" uniqueId="new unique ID">
          <title val="Colorful - Start with Accent 1" />
          <desc val="" />
          <catLst>
              <cat type="colorful" pri="100" />
          </catLst>
      </colorsDefHdr>
      

      ヘッダー ファイルで、マークアップを編集して、作成する .gcsx または .gqsx ファイルごとに一意 ID を指定したことを確認し、色あるいはスタイルに名前を付けます。また、必要に応じて、カテゴリと優先順位を編集します。

      クイック スタイル ファイルを作成する場合、このサンプル マークアップ内の colorsDefHdr タグの名前は styleDefHdr になります (開始タグと終了タグの両方を変更してください)。

      色ファイルとスタイル ヘッダー ファイルの両方において、ヘッダー ファイルに追加するカテゴリ名は、UI 上の表示と正確に一致しないことに注意することが重要です。ヘッダー ファイルで使用するカテゴリ名のリストを表 1 に示します。すべての XML マークアップの場合と同様に、用語は大文字/小文字の区別を含め正確である必要があります。

    表 1. .gcsx および .gqsx ファイルにおける色とスタイルのカテゴリ名

    色ギャラリーのカテゴリ

    スタイル ギャラリーのカテゴリ

    mainScheme

    カラフル

    アクセント 1

    アクセント 2

    アクセント 3

    アクセント 4

    アクセント 5

    アクセント 6

    シンプル

    3D

  3. SmartArt グラフィックを含む新しい PowerPoint プレゼンテーションを作成し、必要なユーザー設定色に最も近い色スタイルを適用します (クイック スタイル ファイルを作成する場合、必要なユーザー設定クイック スタイルに最も近い SmartArt スタイルを適用します)。

  4. 作成したファイルの ZIP パッケージから、適用可能な図の colors#.xml パーツ (または quickStyle#.xml パーツ) を抽出します。図が、パーツの抽出元のドキュメントにおいて最初の図でなかった場合、ファイル名を colors1.xml (または quickStyle1.xml) となるように変更します。

  5. 手順 2. で作成した diagrams フォルダーに、抽出したファイルを追加します。このセクションの次の手順では、新しいパッケージを SmartArt の色ファイルまたはクイック スタイル ファイルとして機能するために、このファイルに加える必要のある編集内容を示します。

  6. コンテンツ タイプ ファイルおよび作成した 2 つのフォルダーを選択して、ZIP フォルダーに圧縮します。次に、zip パッケージのファイル名拡張子を .gcsx (クイック スタイル ファイルの場合は .gqsx) に変更します。

.gcsx または .gqsx ファイル用に colors1.xml (quickstyle1.xml) ファイルを編集するには

  1. colors1.xml (quickstyle1.xml) ファイルを編集用に開き、プレフィックス dgm: を探して、そのプレフィックスを全体的に削除します。したがって、たとえば、<dgm:colorsDef… タグは、<colorsDef… になります。

  2. 既定で表示されますが一意 ID ではない (パッケージのヘッダー ファイル内にあるため) 2 つの名前空間定義を含めるように、色 (またはスタイル) 定義タグ (ファイルの最上部の XML バージョン参照の下にある 1 番目の行) を編集し、図の名前空間プレフィックスから :dgm 部分の参照を削除します (したがって、単に xmlns= のようになります)。編集後の行は、次のようなマークアップになります。クイック スタイル ファイルでは、マークアップのこの行は同じように見えますが、タグ名は styleDef です。

    <colorsDef xmlns="https://schemas.openxmlformats.org/drawingml/2006/diagram" xmlns:a="https://schemas.openxmlformats.org/drawingml/2006/main">
    

これで、新しいパッケージの colors1.xml または quickStyle1.xml ファイル内のスタイルのラベル定義に対してどのような書式設定の変更も自由に加えることができます。この処理は、以前に示した、既存の図のスタイルのラベル定義の色を変更する場合と同じように正確に行います。

新しい色またはスタイルのファイルを読み込むには、それらのファイルを、前のセクションで提供されたユーザー設定 .glox ファイルの適用可能なパスに保存します。.gcsx ファイルと .gqsx ファイルもプラットフォーム間の互換性があり、Office 2010 および Office for Mac 2011 の SmartArt のスタイルと色のギャラリーに読み込むことができます。

チュートリアル: layout1.xml

既に説明したとおり、layout1.xml ファイルには、SmartArt 図のレイアウトの完全な定義が格納されます。このセクションでは、前述の簡単なユーザー設定直線リストの layout1.xml ファイルについて説明します。

独自の完全なユーザー設定レイアウトをゼロから作成するには、前のセクションで説明したように .glox パッケージを作成し、既存の図から layout1.xml ファイルをコピーするのではなく、単に新しい layout1.xml ファイルを作成します。

レイアウト ファイルには以下の情報が含まれます。

  • SmartArt UI のほかに SmartArt のスタイルと色のギャラリー内でプレビューを作成するためのサンプル\プレースホルダー データ。

  • 図内の図形 (ポイント)、図形内のテキストとイメージ、図形とテキスト要素間のリレーションシップを含む、ルート レイアウト ノード (図全体) およびルート レイアウト ノード内のすべてのノードの定義。定義には、外観に関するパラメーターと制約、および図のレイアウトとそのコンテンツの動作に関するルールが含まれます。

ここに示されている簡単な図であっても、図内では複数のアルゴリズムが動作していることがわかります。たとえば、図 (この場合は直線フローと複合)、テキスト (マークアップでは tx として参照される)、図形の間隔 (マークアップ内では sp として参照される) の動作に関連するアルゴリズムがあります。また、図形と図形の間隔の伝達を管理する For Each ステートメントがこのサンプル マークアップ内にあります。

より複雑な一部のレイアウトには、ここに示されていない要素が含まれます。たとえば、アルゴリズムの種類内 (階層図内など) でユーザーが使用できるオプションを処理したり、図形間 (図 1 に示された図のイメージ内など) のコネクタの使用法を処理したりする条件付きステートメントがあります。ただし、このレイアウトでは、独自のレイアウトを開始するための基本セットが提供されます。独自のレイアウトは、後で提供されるその他の技術情報を使用して構築できます。

以下のサンプルに示されている layout1.xml ファイルの完全なマークアップについては、この記事のサンプル ダウンロードのファイル Simple Snip Corner List.glox を参照してください。

サンプル データ、色、およびスタイル

レイアウト定義タグの直後に続くのは、サンプル データ、色データ、およびスタイル データの各タグです。これらを使用して、プレースホルダーのコンテンツ、色ギャラリーのサムネイル、およびスタイル ギャラリーのサムネイルがそれぞれ作成されます。サンプル データのマークアップから作成されるプレース ホルダーのコンテンツによって、ユーザーが新しい図を挿入するときに表示される既定の図形がレイアウトに基づいて決まるほか、SmartArt UI に表示されるプレビューが決まります。

このマークアップで示されているように、通常、3 つの最上位レベルの図形が表示されますが、このデータをカスタマイズして、プレビューに表示する図形の数を変更したり、ユーザーが新しい図を挿入するときにレイアウトに基づいて作成される既定のコンテンツに表示する図形の数を変更できたりします。

このサンプルにはサンプル データが示されます。マークアップ内でサンプル データの直後に続くのは、styleData タグと clrData タグです。これらのタグには、同じデータ モデル、ポイント一覧、および接続リストの各タグが含まれ、これらのタグは内部でネストされています。ここで使用されているレイアウト例では、通常のことですが、styleData モデルと clrData モデルはサンプル データ モデルと同一です。ただし、これらをサンプル データ モデルと同一にする必要はありません。

<sampData>
<dataModel>
    <ptLst>
        <pt modelId="0" type="doc" />
        <pt modelId="10" type="node">
            <prSet phldr="1" />
        </pt>
        <pt modelId="20" type="node">
            <prSet phldr="1" />
        </pt>
        <pt modelId="30" type="node">
            <prSet phldr="1" />
        </pt>
    </ptLst>
    <cxnLst>
        <cxn modelId="40" type="parOf" srcId="0" destId="10" srcOrd="0" destOrd="0" presId="" />
        <cxn modelId="50" type="parOf" srcId="0" destId="20" srcOrd="1" destOrd="0" presId="" />
        <cxn modelId="60" type="parOf" srcId="0" destId="30" srcOrd="2" destOrd="0" presId="" />
    </cxnLst>
</dataModel>
</sampData>
  • このマークアップには、プレースホルダーとして設定された 3 つの図形のためのポイント一覧が提供されています。必要な場合は、ポイント タグをレプリケートして追加のプレースホルダー図形を作成できます (またはポイント タグを削除して、含める図形の数を少なくできます)。ただし、これを行う場合、すべての ID が一意になるように ID を更新してください。

  • ID を変更する場合、ポイントの ID 番号は、対応する接続リスト内の destID (宛先 ID) 属性で参照されます。また、接続用の ID は、ポイントで使用される ID から連続して続きます。

図がさらに複雑な場合、以下のように、ポイントをネストして、対応するプレースホルダー データを作成できます。

<sampData>
<dataModel>
    <ptLst>
        <pt modelId="0" type="doc" />
        <pt modelId="10" type="node">
            <prSet phldr="1" />
        </pt>
        <pt modelId="11" type="node">
            <prSet phldr="1" />
        </pt>
        <pt modelId="20" type="node">
            <prSet phldr="1" />
        </pt>
        <pt modelId="21" type="node">
            <prSet phldr="1" />
        </pt>
        <pt modelId="30" type="node">
            <prSet phldr="1" />
        </pt>
        <pt modelId="31" type="node">
            <prSet phldr="1" />
        </pt>
    </ptLst>
    <cxnLst>
        <cxn modelId="40" type="parOf" srcId="0" destId="10" srcOrd="0" destOrd="0" presId="" />
        <cxn modelId="12" type="parOf" srcId="10" destId="11" srcOrd="0" destOrd="0" presId="" />
        <cxn modelId="50" type="parOf" srcId="0" destId="20" srcOrd="1" destOrd="0" presId="" />
        <cxn modelId="22" type="parOf" srcId="20" destId="21" srcOrd="0" destOrd="0" presId="" />
        <cxn modelId="60" type="parOf" srcId="0" destId="30" srcOrd="2" destOrd="0" presId="" />
        <cxn modelId="32" type="parOf" srcId="30" destId="31" srcOrd="0" destOrd="0" presId="" />
    </cxnLst>
</dataModel>
</sampData>

前のサンプルのデータでは、2 次図形が認識されます。2 次図形は接続リスト (srcID 属性) 内の 1 次図形に関連するためです。

プレビューの構造や既定のコンテンツを気にせずに、何かを表示する場合、たとえば、次のサンプルのような、より簡単な既定のデータを使用できます。

<sampData useDef="1">
    <dataModel>
        <ptLst/>
        <bg/>
        <whole/>
    </dataModel>
</sampData>

useDef (既定を使用) 属性はブール値です。この例のように、この属性が true の場合、clrData タグと styleData タグは無視され、代わりに既定が使用されます (既定では、3 つの図形が表示されます)。したがって、色およびスタイル データのタグを省略しても、プレビューはれらのギャラリーに依然として表示されます。useDef 属性を省略した場合 (既定では、この属性は false)、サンプル データを表示するには、情報をポイント一覧と接続リストに指定する必要があります。

ルート レイアウト ノード

サンプル データの直後に続くのは、ルート レイアウト ノードの定義です。これは、図全体の定義 (アルゴリズム、パラメーター、制約、ルールを含む) を提供します。

ポイント ノード (ユーザーがコンテンツを追加する図内の通常の図形要素を記述するノード) およびサポート ノード (図形の間隔を定義するノードなど) はすべて、ルート レイアウト ノードのタグ内でネストされます。これらは、ここでは、読みやすくするために、いくつかの見出しの下で分割されています。

<layoutNode>
    <alg type="lin" />
    <shape />
    <constrLst>
        <!--Font size constraint-->
        <constr op="equ" type="primFontSz" for="des" ptType="node" val="40" />
        <!--Constraints for composite-->
        <constr type="w" for="ch" forName="composite" refType="w" />
        <constr type="h" for="ch" forName="composite" refType="h" />
        <!--Space between rows/columns-->
        <constr op="equ" type="sp" refType="w" refFor="ch" refForName="composite" fact="0.1" />
        <!--Constraints for sibTrans-->
        <constr op="equ" type="w" for="ch" forName="sibTrans" refType="w" refFor="ch" refForName="composite" fact="0.1" />
        <constr op="equ" type="h" for="ch" forName="sibTrans" refType="w" refFor="ch" refForName="sibTrans" />
    </constrLst>
    <forEach name="nodesForEach" axis="ch" ptType="node">
        <!--composite-->
        <layoutNode name="composite">
        <alg type="composite">
            <param type="ar" val="1.6667" />
        </alg>
        <shape />
  • この図の主なアルゴリズムの種類は直線フローです。この場合は、水平の直線リストになります。図形はこのリストの中で左から右に 1 つの線に沿って追加されます。新しい図形が追加されると、サイズと間隔が均等になるように図形のサイズが自動的に小さくなります。

  • この場合、フォント サイズの制約によって、図の最大フォント サイズは 40 ポイントに設定されます。

  • 複合の制約は、複合アルゴリズムを参照します。複合アルゴリズムは、このサンプルの最下部にある独自のノード内に存在します。このアルゴリズムでは、子ノードのサイズと位置が指定されますが、ここで見られるように、図全体のパラメーターも設定されます。このマークアップの最下部にある複合アルゴリズムのタグ内でネストされた param タグに注意してください。これは、レイアウトの縦横比を設定します。この縦横比を変更すると、図形の大きさが変わります。たとえば、縦横比を 1 にすると、この図内の切り取られた四角形が、切り取られた正方形として表示されます。

  • ユーザーが図を作成すると、この例の forEach ステートメントによって、以降のポイント (図形) が伝達されます。このステートメントがないと、切り取られた四角形の 1 つのインスタンスのみが図に表示され、新しい最上位レベルの各アイテムは図形内で箇条書きの段落になります。

  • sibTrans (兄弟の遷移) の制約は、このレイアウト ファイルの最後 (ルート レイアウト ノード内で依然としてネストされている) に含まれる以下のマークアップを参照します。このコンテンツは、兄弟要素の間隔を定義します。

    <forEach name="sibTransForEach" axis="followSib" ptType="sibTrans" cnt="1">
        <!--sibTrans-->
        <layoutNode name="sibTrans">
            <alg type="sp" />
            <shape />
        </layoutNode>
    </forEach>
    
  • ここで、もう 1 つの forEach ステートメントに注意してください。これは、このレイアウト内の図形の新しいインスタンスごとにスペースの別のインスタンスを伝達します。

  • この sibTrans ノードでは、別のアルゴリズムが使用されていることにも注意してください。そのアルゴリズムは、sp (スペース) アルゴリズムです。

    ヒント

    スペース アルゴリズムの図形の幅の制約を負の値に設定して、レイアウト内で重複する図形を作成できます。

プライマリ要素ノード

この例のレイアウトには、1 つの 1 次図形/ポイント要素 (切り取られた四角形) が含まれます。その定義を次に示します。

<!--Main-->
<layoutNode name="Main" styleLbl="node1">
    <alg type="tx">
<param type="parTxLTRAlign" val="l" />
    </alg>
    <shape type="snipRoundRect">
<adjLst>
    <adj idx="1" val="0.1667" />
    <adj idx="2" val="0.1667" />
</adjLst>
    </shape>
    <presOf axis="desOrSelf" ptType="node" st="1" cnt="0" />
    <constrLst>
<constr type="lMarg" refType="primFontSz" fact="0.15" />
<constr type="rMarg" refType="primFontSz" fact="0.15" />
<constr type="tMarg" refType="primFontSz" fact="0.15" />
<constr type="bMarg" refType="primFontSz" fact="0.15" />
    </constrLst>
    <ruleLst>
<rule type="primFontSz" val="10" />
    </ruleLst>
</layoutNode>

このノードは図内で唯一の図形要素のため、Main と名付けられています。Name 属性の値には、基本的に、直感的に理解できると考えられる任意の名前を設定します。以下の点に注意してください。

  • この記事の前半で説明したとおり、このノード内の図形の書式を定義するスタイルのラベルが layoutNode タグに含まれます。

  • tx (テキスト) アルゴリズムは、これらの図形内のテキストに対する追加パラメーターを定義します。この場合は、段落テキストの水平方向 (左から右) の配置が左揃えとして指定されています。このパラメーターが省略された場合の既定は、中央揃えです。

  • 切り取られた四角形図形のタグ内でネストされた adjLst タグは、調整ハンドルの値を指定します。この値を使用して、Office Art のほとんどの図形で見られる黄色いひし形の調整ハンドルの位置を設定できます。正確な図形が必要な場合に、その図形を最も簡単に設定できる方法は、スライドに図形を挿入し、図形の望まれる表示方法に合わせて調整ハンドルを設定し、そのスライド上の図形のマークアップから調整値を抽出することです。

  • presOf (プレゼンテーション) タグは、ノード内の子テキストを参照します。この行がない場合、レベル 1 の下でテキストは許可されません。軸の値 desOrSelf は、アクティブ レベルまたはすべての子孫を参照します。表示されている ch (子) への参照は、1 つ下のレベルを参照します。des (子孫) への参照は、従属するすべてのレベルを参照します。

  • この記事の前半で説明したように、このマークアップ例で示されている追加の制約によってアクティブな第 1 フォント サイズの要因として余白が設定されます。また、ここで提供されるルールによって、このノード内のテキストの最小フォント サイズが設定されます。

より複雑なレイアウトには、もちろん、追加の要素が含まれますが、この例には、正常に動作する SmartArt レイアウトをゼロから作成するのに必要なすべての基本要素が含まれます。

次の手順

この記事で説明されているユーザー設定レイアウトなど、基本のユーザー設定レイアウトの作成に関して良い感触が得られた場合、より複雑なレイアウト構造を探索する方法として、あらゆる組み込みレイアウトをコピーしてカスタマイズできることを覚えておいてください。

「その他の技術情報」に提供されている SmartArt Developer Reference へのリンクをクリックしてください。ここでは、レイアウトにアニメーション設定を追加する方法など、すべての使用可能な SmartArt アルゴリズムと技法を学習できます。「その他の技術情報」に含まれる導入者メモは、検索可能なすばらしい資料です。これによってファイル形式内の図の定義に関する完全なドキュメントにアクセスできます。

その他の技術情報

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

著者について

Stephanie Krieger 氏は、『Advanced Microsoft Office Documents 2007 Edition Inside Out』と『Microsoft Office Document Designer』の 2 冊の本の著者です。プロのドキュメント コンサルタントとして、両方のプラットフォームで Microsoft Office 用のエンタープライズ ソリューションを開発できるように数々のグローバル企業を支援しています。同氏の Office 2010 と Office for Mac 2011 向けの新刊が、2011 年春に出版される予定です。