Excel における XML の概要

XML 図

Microsoft Excel を使うと、その他のデータベースやアプリケーションで作成された拡張マークアップ言語 (XML) データをインポートしたり、XML スキーマから XML 要素をワークシートのセルに XML 要素をマッピングしたり、変更された XML データを他のデータベースやアプリケーションとやりとりするためにエクスポートしたりしやすくなります。これらの XML 機能は、使い慣れたユーザー インターフェイスを持つ XML データ ファイル ジェネレーターと考えることができます。

この記事の内容

Excel で XML を使用する理由

XML データとスキーマ ファイル

主な XML と Excel のシナリオ

Excel で XML データを使う基本的なプロセス

XML マップを操作する

[XML ソース] 作業ウィンドウを使う

要素のタイプとそのアイコン

単一マップ セルを操作する

XML テーブルの反復セルを操作する

XML マップのセキュリティに関する考慮事項

XML データをインポートする

推測されたスキーマを操作する

XML データをエクスポートする

Excel マクロ有効 Office Open XML 形式のファイルを使う

Excel で XML を使用する理由

XML とは人間が読めるテキスト ファイルによって構造化データを管理し、共有するように設計された技術です。 XML は業界標準のガイドラインに準拠しており、さまざまなデータベースやアプリケーションで処理することができます。 アプリケーションの設計者は、XML を使ってカスタマイズされたタグ、データ構造、スキーマを独自に作成できます。 つまり、XML を使うことで、データベース、アプリケーション、さらには組織間におけるデータの定義、送信、検証、解釈が容易になります。

XML データとスキーマ ファイル

Excel では、主に次の 2 種類の XML ファイルを使います。

  • XML データ ファイル (.xml)。カスタム タグと構造化されたデータが含まれます。

  • スキーマ ファイル (.xsd)。データ型や検証などのルールを強制する スキーマ タグが含まれます。

XML 標準には Extensible Stylesheet Language Transformation (XSLT) (.xslt) ファイルも定義されています。このファイルは、スタイルを適用して異なるプレゼンテーション形式に XML データを変換するのに使われます。こうした変換は、Excel に XML ファイルをインポートする前や、Excel から XML ファイルをエクスポートした後に適用できます。Excel にインポートする XML データ ファイルに XSLT ファイルがリンクされている場合は、データをワークシートに追加する前に書式設定を適用するかどうかを選択できますが、これを選択できるのは、Excel から [開く] を使って XML ファイルを開いた場合のみです。フォルダー内の XML ファイルを参照するには、[開く] をクリックする前にファイルの種類として [XML ファイル (*.xml)] を選びます。

主な XML と Excel のシナリオ

XML と Excel を使うことで、以前は不可能または非常に困難だった方法でブックやデータを管理することができます。 XML マップを使うことで、Excel ドキュメント内でビジネス データの特定の部分を簡単に追加、識別、抽出することができます。 たとえば、顧客の名前と住所を含む請求書や、前の四半期の業績を含むレポートは、単なる静的なレポートではなくなります。 そのような情報をデータベースやアプリケーションから簡単にインポートして修正し、元のまたは別のデータベースやアプリケーションにエクスポートすることができます。

XML 機能は、次のような主なシナリオに対応するように設計されています。

  • 既存のセルに XML 要素をマッピングすることで、既存の Excel テンプレートの機能を拡張します。 これにより、XML データを再設計することなくテンプレートに出し入れしやすくなります。

  • 既存のワークシートに XML 要素をマッピングすることにより、既存の計算モデルに対する入力として XML データを使います。

  • 新しいブックに XML データ ファイルをインポートします。

  • Web サービスから Excel ワークシートに XML データをインポートします。

  • ブック内の他のデータとは別に、マップされたセル内のデータを XML データ ファイルにエクスポートします。

ページの先頭へ

Excel で XML データを使う基本的なプロセス

次の図は、Excel で XML を使う際、さまざまなファイルと操作がどのように連携するかを示しています。 原則として、プロセスには次の 5 つのフェーズがあります。

Excel と XML データの連動の概要

吹き出し 1 ブックに XML スキーマ ファイル (.xsd) を追加する

吹き出し 2 個々のセルまたは XML テーブルに XML スキーマ要素をマップする

吹き出し 3 XML データ ファイル (.xml) をインポートし、XML 要素をマップされたセルにバインドする

吹き出し 4 XML の構造と定義を保持しながら、データを入力し、マップされたセルを移動し、Excel の機能を活用する

吹き出し 5 マップされたセルから XML データ ファイルに変更されたデータをエクスポートする

XML マップを操作する

Excel では、ブックを作成したり開いたり、XML スキーマ ファイル (.xsd) をブックに添付したり、[XML ソース] 作業ウィンドウを使ってスキーマの XML 要素を個々のセルまたはテーブルにマップしたりすることができます。 ワークシートに XML 要素をマップしたら、マップされたセルに XML データをインポートしたり、セルからそれらをエクスポートしたりできます。

XML スキーマ ファイル (.xsd) をブックに追加する際、XML マップを作成します。 一般的に XML マップは、マップされたセルを作成し、マップされたセルと XML スキーマ内の個々の要素間の関係を管理するのに使われます。 さらに、これらの XML マップは、XML データ ファイル (.xml) をインポートまたはエクスポートする際に、スキーマの要素にマップされたセルの内容をバインドするのに使われます。

マップされたセルは、単一マップ セルと反復セル (XML テーブルとして表示される) の 2 種類を作成できます。 マップされたセルをワークシート上の任意の場所に任意の順序でドラッグすることで、ワークシートをより柔軟に設計できるようになります。 それが XML スキーマと異なっていても構いません。 また、どの要素をマップするかしないかを選択することもできます。

XML マップの使用に関する次のルールを知っておくことが重要です。

  • ブックには、1 つ以上の XML マップを含めることができます。

  • ブック内では、1 つの場所に一度にマップできるのは 1 つの要素のみです。

  • 同じブック内の複数の XML マップが同じスキーマを参照する場合であっても、それぞれの XML マップは、独立したエンティティです。

  • XML マップには 1 つのルート要素を含めることができます。 複数のルート要素を定義するスキーマを追加する場合は、新しい XML マップに使用するルート要素を選ぶように求められます。

[XML ソース] 作業ウィンドウを使う

[XML ソース] 作業ウィンドウを使って XML マップを管理できます。 このウィンドウを開くには、[開発] タブの [XML] グループで [ソース] をクリックします。 次の図は、この作業ウィンドウの主な機能を示します。

[XML ソース] 作業ウィンドウ

1.  ブックに追加された XML マップを一覧表示します。

2.  現在一覧表示されている XML マップ内の XML 要素の階層リストを表示する

3.  データのプレビュー方法や見出しの制御方法など、[XML ソース] 作業ウィンドウと XML データを操作する際のオプションを設定する

4.  XML マップを追加、削除、または名前変更するのに使用できる [XML マップ] ダイアログ ボックスを開く

5.  現在の XML マップを使って XML データをエクスポートできるかどうかを検証する

ページの先頭へ

要素のタイプとそのアイコン

次の表では、Excel が操作できる XML 要素の種類と、種類ごとの要素を表すために使われるアイコンをまとめます。

要素の種類

アイコン

親要素

ボタンの画像

必須の親要素

ボタンの画像

反復親要素

アイコンの画像

必須の反復親要素

アイコンの画像

子要素

ボタンの画像。

必須の子要素

アイコンの画像

反復子要素

アイコンの画像

必須の反復子要素

アイコンの画像

属性

アイコンの画像

必須の属性

アイコンの画像

複雑な構造内の単純な内容

アイコンの画像

必須の複雑な構造内の単純な内容

ボタンの画像

ページの先頭へ

単一マップ セルを操作する

単一マップ セルとは、反復しない XML 要素にマップされているセルです。 単一マップ セルは、反復しない XML 要素を [XML ソース] 作業ウィンドウからワークシート内の単一のセルにドラッグして作成します。

ワークシートに反復しない XML 要素をドラッグする際、スマート タグを使って XML 要素名を単一マップ セルの上に見出しとして含めるか、単に左側に含めるかどうかを選択する、または既存のセルの値を見出しとして使用することができます。

また、Excel によって数値、日付、または時刻として解釈される XML スキーマ定義 (XSD) データ型を使ってセルが XML 要素にマップされている場合、単一マップ セルで数式を使うことができます。

ページの先頭へ

XML テーブルの反復セルを操作する

XML テーブルは、その外観と機能において Excel テーブルに似ています。 XML テーブルは、1 つ以上の XML 反復要素にマップされた Excel テーブルです。 XML の表の各列は、XML 要素を表します。

XML テーブルは、次の場合に作成されます。

  • [インポート] ([開発] タブの [XML] グループに含まれる) を使って XML データ ファイルをインポートします。

  • Excel 内から [開く] を使って XML データ ファイルを開き、 [XML を開く] ダイアログ ボックスから [XML テーブルとして開く] を選びます。

  • [XML データ インポート] ([データ] タブの [外部データの取り込み] グループにある [その他のソース] ボタンから) を使って XML データ ファイルをインポートし、 [データのインポート] ダイアログ ボックスで [既存のワークシート内の XML テーブル] または [新規ワークシート] を選びます。

  • 1 つ以上の反復要素を [XML ソース] 作業ウィンドウからワークシートにドラッグします。

XML テーブルを作成する際、XML 要素名が列見出しとして自動的に使われます。 それらの名前は、任意の列見出しに変更することができます。 ただし、マップされたセルからデータをエクスポートする場合は、元の XML 要素名が常に使用されます。

XML テーブルを操作する場合、[XML ソース] 作業ウィンドウの [オプション] から選べる、次の 2 つのオプションが便利です。

  • 対応付け時に隣接する要素を結合     このオプションを選択すると、ワークシートにフィールドがドロップされる際に、Excel が複数のフィールドから 1 つの XML テーブルを作成します。 このオプションは、複数のフィールドが同じ行に隣接した状態でドロップされた場合にのみ機能します。 このオプションをオフにすると、各要素は独自の XML テーブルとして表示されます。

  • データ内の列見出しを使用     このオプションを選択すると、ワークシートにマップする反復要素の列見出しとして既存の見出しデータが使われます。 このオプションをオフにすると、XML 要素名が列見出しとして使われます。

XML テーブルを使うと、XML データ ソースに基づいてデータを簡単にインポート、エクスポート、並べ替え、フィルター、印刷することができます。 ただし、XML テーブルには、ワークシート上で配置できる方法に関して、いくつかの制限があります。

  • XML テーブルは、行に基づいています。つまり、ヘッダー行から下方向に追加されます。 既存の行の上に新しいエントリを追加することはできません。

  • XML テーブルを置き換えて新しいエントリを右側に追加することはできません。

Excel によって数値、日付、または時刻として解釈される XML スキーマ定義 (XSD) データ型を使って XML 要素にマップされている列では、数式を使用できます。 Excel テーブルと同様、テーブルに新しい行が追加されると、XML テーブル内の数式が下の列に入力されます。

XML マップのセキュリティに関する考慮事項

XML マップとそのデータ ソース情報は、特定のワークシートではなく、Excel ブックとともに保存されます。 悪意のあるユーザーは、Microsoft Visual Basic for Applications (VBA) を使ってこのマップ情報を表示できます。 さらには、マクロを有効にした Excel Office Open XML 形式ファイルとしてブックを保存する場合、このマップ情報は、Microsoft のメモ帳またはその他のテキスト編集プログラムを介して閲覧できます。

マップ情報の使用は続けるけれども、機密の可能性のあるデータ ソース情報を削除したい場合は、[開発] タブの [XML] グループに含まれる [対応付けのプロパティ] から利用できる [XML の対応付けのプロパティ] ダイアログ ボックスの [データ ソースの定義をブックに保存する] チェック ボックスをオフにすることで、ブックから XML スキーマのデータ ソース定義を削除しつつ、XML データをエクスポートすることができます。

マップを削除する前に、ワークシートを削除した場合、データ ソースに関するマップ情報、さらにはその他の機密情報がブックに保存されたままになります。 機密情報を削除するためにブックを更新する場合、マップ情報が永久にブックから削除されるように、ワークシートを削除する前に XML マップを必ず削除してください。

ページの先頭へ

XML データをインポートする

ブック内の既存の XML マップに XML データをインポートすることができます。 データをインポートすると、ファイルからのデータが、ブックに格納された XML マップにバインドされます。 つまり、XML データ ファイル内の各データ要素には、対応する要素として、XML スキーマ ファイルまたは推測されたスキーマからマップした要素が XML スキーマ内に存在することを意味します。 各 XML マップには、XML データ バインドが 1 つのみ存在し、XML データ バインドは、単一の XML マップから作成されたマップのすべてにバインドされています。

[XML の対応付けのプロパティ] ダイアログ ボックスを表示できます ([開発] タブの [XML] グループに含まれる [対応付けのプロパティ] をクリック)。このボックスには、すべての既定で選択されている次のような 3 つのオプションがあり、オンまたはオフを切り替えて XML データ バインドの挙動を制御できます。

  • インポートまたはエクスポート時にスキーマに対してデータを検証する    データをインポートする際に Excel で XML マップと照合してデータを検証するかどうかを指定します。 インポートされる XML データが XML スキーマに準拠していることを確認したい場合、このオプションをクリックします。

  • 既存のデータを新規データで上書きする    データをインポートする際に、データが上書きされるかどうかを指定します。 新しい XML データ ファイルに最新のデータが含まれている場合など、現在のデータを新しいデータ置き換える場合、このオプションをクリックします。

  • 既存の XML テーブルに新規データを追加する    データ ソースの内容を、ワークシートの既存のデータに追加するかどうかを指定します。 たとえば、いくつかの類似した XML データ ファイルのデータを XML テーブルに統合する場合や、関数を含むセルの内容を上書きしたくない場合、このオプションをクリックします。

XML データをインポートする際、一部のマップされたセルを上書きし、その他は上書きしたくない場合があります。 たとえば、一部のマップされたセルに数式が含まれており、XML ファイルをインポートする際にこの数式を上書きしたくない場合などが考えられます。 そのような場合には、次のように 2 つの方法を実行できます。

  • XML データをインポートする前に、上書きしたくない要素のマップを解除します。 XML データのインポート後、数式を含むセルに XML 要素を再度マップすることで、XML データ ファイルに数式の結果をエクスポートできます。

  • 同じ XML スキーマから 2 つの XML マップを作成します。 1 つの XML マップは、XML データをインポートするのに使います。 この「インポート」XML マップでは、上書きしたくない数式やその他のデータを含むセルに要素をマップしないでください。 データのエクスポートには別の XML マップを使用します。 この「エクスポート」XML マップでは、XML ファイルにエクスポートしたい要素をマップします。

注: Data Retrieval Service Connection (.uxdc) ファイルを使ってデータ ソースに接続し、Web サービスから XML データをインポートする機能は、Excel 2003 より新しいバージョンではユーザー インターフェイスからはサポートされなくなりました。 Excel 2003 で作成したブックを開く場合、データを表示することはできますが、ソース データを編集したり更新したりすることはできません。

推測されたスキーマを操作する

XML マップを作成するのに、対応する XML スキーマをあらかじめ追加せずに XML データをインポートすると、XML データ ファイルで定義されているタグに基づいて Excel がスキーマを推測しようとします。 推測されたスキーマはブックとともに保存され、XML スキーマ ファイルがブックに関連付けられていない場合にこの推測されたスキーマによって XML データを操作できるようになります。

推測されたスキーマを含むインポートされた XML データを扱う場合、[XML ソース] 作業ウィンドウをカスタマイズすることもできます。 Excel の現在のセッションで XML マップに関連付けられている XML データをインポートした場合、[オプション] から [作業ウィンドウでのデータのプレビュー] オプションを選び、要素リストのサンプル データとして 1 行目のデータを表示します。

別個の XML スキーマ データ ファイル (.xsd) として Excel の推測されたスキーマをエクスポートすることはできません。XML スキーマ ファイルは、XML スキーマ エディターやその他の方法を使って作成できますが、それらを手軽に使用できなかったり、使用方法がわからなかったりする可能性があります。代わりに、Excel 2003 XML Tools Add-in Version 1.1 を使用できます。これは、XML マップからスキーマ ファイルを作成できます。詳細については、「Excel 2003 XML ツール アドイン バージョン 1.1 を使用する (英語)」を参照してください。

XML データをエクスポートする

ワークシート上のマップされたセルの内容をエクスポートすることで、XML データをエクスポートします。 データをエクスポートする際、Excel は次のルールを適用して、データを保存すべきかどうか、さらにはその保存方法を判断します。

  • 省略可能な要素向けに空のセルが存在する場合、空のアイテムは作成されませんが、必須の要素向けに空のセルが存在する場合、空のアイテムが作成されます。

  • Unicode Transformation Format-8 (UTF-8) エンコードを使ってデータが書き込まれます。

  • 名前空間は、すべてルート XML 要素で定義されます。

  • Excel は、既存の名前空間の接頭辞を上書きします。 既定の名前空間には、接頭辞 ns0 が割り当てられます。 次に続く名前空間には、ns1、ns2、ns<番号> というように割り当てられます。ここで <番号> とは、XML ファイルに書き込まれる名前空間の番号です。

  • コメント ノードは保持されません。

[XML の対応付けのプロパティ] ダイアログ ボックスを表示し ([開発] タブの [XML] グループに含まれる [対応付けのプロパティ] をクリック)、[インポートまたはエクスポート時にスキーマに対してデータを検証する] オプション (既定でアクティブ) を使って、データをエクスポートする際に Excel で XML マップと照合してデータを検証するかどうかを指定します。 エクスポートされる XML データが XML スキーマに準拠していることを確認したい場合、このオプションをクリックします。

Excel マクロ有効 Office Open XML 形式のファイルを使う

Excel ブックは、Excel マクロ有効 Office Open XML 形式のファイル (.xlsm) など、さまざまなファイル形式で保存できます。 Excel には、データやプロパティなど、ブックのあらゆる情報を格納し、ブック全体の構造を定義する XML タグなど、Excel ブックの内容を規定する、定義済みの XML スキーマが含まれています。 カスタム アプリケーションでは、この Excel マクロ有効 Office Open XML 形式のファイルを使用できます。 たとえば、開発者は、複数のブックの中からこの形式で保存されているデータを検索するのにカスタム アプリケーションを作成し、検索されたデータに基づいてレポート システムを作成できます。

ページの先頭へ

スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×