Excel での XML の概要
Excel for Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 その他…表示数を減らす
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 標準では、拡張スタイルシート言語変換 (XSLT) (.xslt) ファイルも定義されています。これは、スタイルを適用し、XML データをさまざまなプレゼンテーション形式に変換するために使用されます。 これらの変換は、XML ファイルを Excel にインポートする前と、Excel から XML ファイルをエクスポートした後に適用できます。 XSLT ファイルが Excel にインポートする XML データ ファイルにリンクされている場合は、ワークシートにデータを追加する前に書式を適用するか適用しないかのオプションがありますが、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 つのフェーズがあります。
XML スキーマ ファイル (.xsd) をブックに追加する
XML スキーマ要素を個々のセルまたは XML テーブルにマッピングする
XML データ ファイル (.xml) をインポートし、XML 要素をマップされたセルにバインドする
XML の構造と定義を維持しながら、データの入力、マップされたセルの移動、Excel 機能の活用
マップされたセルから XML データ ファイルに変更されたデータをエクスポートする
XML マップを操作する
Excel でブックを作成または開き、XML スキーマ ファイル (.xsd) をブックにアタッチしてから、[ XML ソース ] 作業ウィンドウを使用して、スキーマの XML 要素を個々のセルまたはテーブルにマップできます。 ワークシートに XML 要素をマップしたら、マップされたセルに XML データをインポートしたり、セルからそれらをエクスポートしたりできます。
XML スキーマ ファイル (.xsd) をブックに追加する際、XML マップを作成します。 一般的に XML マップは、マップされたセルを作成し、マップされたセルと XML スキーマ内の個々の要素間の関係を管理するのに使われます。 さらに、これらの XML マップは、XML データ ファイル (.xml) をインポートまたはエクスポートする際に、スキーマの要素にマップされたセルの内容をバインドするのに使われます。
作成できるマップされたセルには、1 つのマップされたセルと繰り返しセル (XML テーブルとして表示される) の 2 種類があります。 ワークシートの設計をより柔軟にするために、マップされたセルをワークシート上の任意の場所にドラッグし、XML スキーマとは異なる任意の順序にドラッグできます。 マップする要素とマップしない要素を選択することもできます。
XML マップの使用に関する次のルールを知っておくことが重要です。
ブックには、1 つ以上の XML マップを含めることができます。
ブック内では、1 つの場所に一度にマップできるのは 1 つの要素のみです。
同じブック内の複数の XML マップが同じスキーマを参照する場合であっても、それぞれの XML マップは、独立したエンティティです。
XML マップには 1 つのルート要素を含めることができます。 複数のルート要素を定義するスキーマを追加する場合は、新しい 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 データ ファイルで定義されているタグに基づいて Excel がスキーマを推測しようとします。 推測されたスキーマはブックとともに保存され、XML スキーマ ファイルがブックに関連付けられていない場合にこの推測されたスキーマによって XML データを操作できるようになります。
推測されたスキーマを含むインポートされた XML データを扱う場合、[XML ソース] 作業ウィンドウをカスタマイズすることもできます。 Excel の現在のセッションで XML マップに関連付けられている XML データをインポートした場合は、[オプション] ボタンから [作業ウィンドウ のデータのプレビュー] オプションを選択して、データの最初の行をサンプル データとして要素リストに表示します。
Excel 推論スキーマを別の XML スキーマ データ ファイル (.xsd) としてエクスポートすることはできません。 XML スキーマ ファイルは、XML スキーマ エディターなどの方法を使って作成できますが、それらを手軽に使用できなかったり、使用方法がわからなかったりする可能性があります。
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 形式のファイルを使用できます。 たとえば、開発者は、複数のブックの中からこの形式で保存されているデータを検索するのにカスタム アプリケーションを作成し、検索されたデータに基づいてレポート システムを作成できます。
ページの先頭へ
補足説明
Excel Tech Communityで、いつでも専門家に質問できます。また、コミュニティでは、サポートを受けられます。
関連項目
target=”_blank” title=”XML データのインポート” rel=”noopener”>XML データのインポート
target=”_blank” title=”XML 要素を XML マップのセルに対応付ける” rel=”noopener”>XML 要素を XML マップのセルに対応付ける
target=”_blank” title=”XML データをエクスポートする” rel=”noopener”>XML データをエクスポートする
target=”_blank” title=”マップされた XML データを追加または上書きする” rel=”noopener”>マップされた XML データを追加または上書きする