Excel で XML データをインポートおよびエクスポートするには、XML 要素をセル内のデータに関連付けて、目的の結果を取得する XML 対応付けが便利です。 XML 対応付けを作成するには、XML スキーマ ファイル (.xsd) と XML データ ファイル (.xml) が必要です。 XML の対応付けを作成すると、自分の好みに合わせて、XML 要素を対応付けることができます。
ヒント: Excel での XML の使用の詳細については、「Excel における XML の概要」を参照してください。
XML スキーマと XML データ ファイルを検索または作成する
別のデータベースまたはアプリケーションで XML スキーマまたは XML データ ファイルを作成した場合は、これらは既に使用可能な状態になっている場合があります。 たとえば、業務アプリケーションでデータを XML ファイル形式にエクスポートしたり、商用の Web サイトや Web サービスで XML ファイルを提供したり、自社の IT 部門で開発したカスタム アプリケーションで XML ファイルを自動作成したりする場合です。
必要な XML ファイルがない場合は、テキスト ファイルとして使用するデータを保存して、XML ファイルを作成できます。 テキスト ファイルを必要な XML ファイルに変換するには、Access と Excel のどちらでも使用できます。 この方法を次に紹介します。
Access
-
変換するテキスト ファイルをインポートして、新しいテーブルにリンクします。
-
[ファイル]、[開く] をクリックします。
-
[ファイルを開く] ダイアログ ボックスで、新しいテーブルを作成するデータベースを選んで開きます。
-
[外部データ]、[テキスト ファイル] の順にクリックして、各手順の指示に従い、確実にテーブルをテキスト ファイルにリンクします。
Access により新しいテーブルが作成され、ナビゲーション ウィンドウに表示されます。
-
-
リンク テーブルから XML データ ファイルと XML スキーマ ファイルにデータをエクスポートします。
-
[外部データ]、[XML ファイル] ([エクスポート] グループ内にあります) の順にクリックします。
-
[エクスポート - XML ファイル] ダイアログ ボックスでファイル名と書式を指定し、[OK] をクリックします。
-
-
Access を終了します。
Excel
-
Access からエクスポートした XML スキーマに基づいて、XML の対応付けを作成します。
[複数ルート] ダイアログ ボックスが表示された場合は、XML テーブルを作成できるように、[dataroot] を選びます。
-
dataroot 要素を対応付けて XML テーブルを作成します。 詳細については、「XML 要素を対応付ける」を参照してください。
-
Access からエクスポートした XML ファイルをインポートします。
注:
-
Excel でサポートされていない XML スキーマ構造がいくつかあります。 次に示す XML スキーマ構造は、Excel にインポートできません。
-
任意の>を<する この要素を使うと、スキーマで宣言されていない要素を含めることができます。
-
anyAttribute>を<する この要素を使うと、スキーマで宣言されていない属性を含めることができます。
-
再帰構造体 再帰構造再帰構造の一般的な例として、同じ XML 要素が複数のレベルにネストされている社員と上司の階層構造が挙げられます。 Excel では、複数のレベルの深い再帰構造はサポートされていません。
-
抽象要素 これらの要素はスキーマで宣言することを目的としていますが、要素として使用されることはありません。 抽象要素は、抽象要素に置き換えられる他の要素に依存します。
-
置換グループ これらのグループを使用すると、別の要素が参照されている場所で要素をスワップできます。 要素は、 <の substitutionGroup> 属性を介して別の要素の置換グループのメンバーであることを示します。
-
混合コンテンツ このコンテンツは、複合型定義で mixed="true" を使用して宣言されます。 Excel は複合型の単純なコンテンツをサポートしていませんが、その複合型で定義されている子タグと属性をサポートしています。
サンプルの XML スキーマと XML データ ファイルを使用する
次のサンプル データには、XML ファイルや、XML ファイルを作成するためのテキスト ファイルがない場合に、XML の対応付けをテストするために使用できる基本的な XML 要素と構造が用意されています。 このサンプル データをコンピューター上のファイルに保存する方法を説明します。
-
コピーするファイルのサンプル文字を選び、Ctrl キーを押しながら C キーを押します。
-
メモ帳を起動し、Ctrl キーを押しながら V キーを押して、サンプル テキストを貼り付けます。
-
Ctrl キーを押しながら S キーを押して、コピーしたサンプル データのファイル名と拡張子を使って、ファイルを保存します。
-
メモ帳で Ctrl キーを押しながら N キーを押して、手順 1 ~ 3 を繰り返し、2 つ目のサンプル テキストのファイルを作成します。
-
メモ帳を終了します。
サンプル XML データ (Expenses.xml)
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Root>
<EmployeeInfo>
<Name>Jane Winston</Name>
<Date>2001-01-01</Date>
<Code>0001</Code>
</EmployeeInfo>
<ExpenseItem>
<Date>2001-01-01</Date>
<Description>Airfare</Description>
<Amount>500.34</Amount>
</ExpenseItem>
<ExpenseItem>
<Date>2001-01-01</Date>
<Description>Hotel</Description>
<Amount>200</Amount>
</ExpenseItem>
<ExpenseItem>
<Date>2001-01-01</Date>
<Description>Taxi Fare</Description>
<Amount>100.00</Amount>
</ExpenseItem>
<ExpenseItem>
<Date>2001-01-01</Date>
<Description>Long Distance Phone Charges</Description>
<Amount>57.89</Amount>
</ExpenseItem>
<ExpenseItem>
<Date>2001-01-01</Date>
<Description>Food</Description>
<Amount>82.19</Amount>
</ExpenseItem>
<ExpenseItem>
<Date>2001-01-02</Date>
<Description>Food</Description>
<Amount>17.89</Amount>
</ExpenseItem>
<ExpenseItem>
<Date>2001-01-02</Date>
<Description>Personal Items</Description>
<Amount>32.54</Amount>
</ExpenseItem>
<ExpenseItem>
<Date>2001-01-03</Date>
<Description>Taxi Fare</Description>
<Amount>75.00</Amount>
</ExpenseItem>
<ExpenseItem>
<Date>2001-01-03</Date>
<Description>Food</Description>
<Amount>36.45</Amount>
</ExpenseItem>
<ExpenseItem>
<Date>2001-01-03</Date>
<Description>New Suit</Description>
<Amount>750.00</Amount>
</ExpenseItem>
</Root>
サンプル XML スキーマ (Expenses.xsd)
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="Root">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="1" name="EmployeeInfo">
<xsd:complexType>
<xsd:all>
<xsd:element minOccurs="0" maxOccurs="1" name="Name" />
<xsd:element minOccurs="0" maxOccurs="1" name="Date" />
<xsd:element minOccurs="0" maxOccurs="1" name="Code" />
</xsd:all>
</xsd:complexType>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="ExpenseItem">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Date" type="xsd:date"/>
<xsd:element name="Description" type="xsd:string"/>
<xsd:element name="Amount" type="xsd:decimal" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
XML の対応付けを作成する
XML の対応付けを作成するには、XML スキーマをブックに追加します。 スキーマは XML スキーマ ファイル (.xsd) からコピーできますが、Excel では XML データ ファイル (.xml) からスキーマの推定を試すこともできます。
-
[開発]、[ソース] の順にクリックします。
[開発] タブが表示されていない場合は、「[開発] タブを表示する」を参照してください。
-
[XML ソース] 作業ウィンドウで、[XML の対応付け] をクリックして、[追加] をクリックします。
-
[検索対象] の一覧で、開こうとしているファイルが置かれているドライブ、フォルダー、またはインターネットをクリックします。
-
ファイルをクリックし、[開く] をクリックします。
-
XML スキーマ ファイルの場合、XML がその XML スキーマに基づいて XML の対応付けを作成します。 [複数ルート] ダイアログ ボックスが表示されたら、XML スキーマ ファイルで定義されているルート ノードの 1 つを選びます。
-
XML データ ファイルの場合、Excel が XML データから XML スキーマの推定を試み、それによって XML の対応付けを作成します。
-
-
[OK] をクリックします。
XML の対応付けが [XML ソース] 作業ウィンドウに表示されます。
XML 要素を対応付ける
XML テーブルで XML 要素を単一対応付けセルや繰り返しセルに対応付けて、XML スキーマでセルと XML 要素の間に関係を作成することができます。
-
[開発]、[ソース] の順にクリックします。
[開発] タブが表示されていない場合は、「[開発] タブを表示する」を参照してください。
-
[XML ソース] 作業ウィンドウで、対応付ける要素を選びます。
隣接していない複数の要素を選ぶには、要素を 1 つクリックした後で、Ctrl キーを押しながら対応付けたい他の要素をクリックします。
-
要素を対応付けるには、次の操作を行います。
-
選んだ要素を右クリックし、[要素の対応付け] をクリックします。
-
[XML 要素の対応付け] ダイアログ ボックスでセルを選び、[OK] をクリックします。
ヒント: 選んだ要素は、ワークシート内で表示したい位置にドラッグすることもできます。
各要素は [XML ソース] 作業ウィンドウに太字で表示され、要素が対応付けられていることを示します。
-
-
ラベルと列見出しの処理方法を決定します。
-
単一対応付けセルを作成するために XML の非繰り返し要素をワークシートにドラッグすると、3 つのコマンドを備えたスマート タグが表示されます。このタグを使って、見出しやラベルの配置を制御できます。
データに見出しが既に含まれます セルには既に (データの左側またはデータの上) 見出しがあるため、XML 要素見出しを無視するには、このオプションをクリックします。
XML 見出しを左に配置する XML 要素見出しをセル ラベルとして使うとき (データの左) は、このオプションをクリックします。
XML 見出しを上に配置する XML 要素見出しをセル ラベルとして使うとき (データの上) は、このオプションをクリックします。
-
XML テーブル内に繰り返しセルを作成するために XML の繰り返し要素をワークシートにドラッグすると、XML 要素の名前が自動的にテーブルの列見出しとして使われます。 ただし、列見出しのセルを編集して、列見出しを自由に変更できます。
[XML ソース] 作業ウィンドウで [オプション] をクリックすると、XML テーブルの動作をさらに制御できます。
対応付け時に隣接する要素を結合 このチェック ボックスをオンにすると、XML テーブルに隣接するセルに要素をドラッグすると、XML テーブルが自動的に展開されます。
データ内の列見出しを使用 このチェック ボックスをオンにすると、ワークシートに繰り返し要素をマップするときに、既存のデータを列見出しとして使用できます。
注:
-
XML コマンドがすべて淡色表示になり、XML 要素をセルに対応付けることができない場合は、ブックが共有されている可能性があります。 [レビュー]、[ブックの共有] をクリックして、そのことを確認し、必要に応じて、共有使用からブックを削除します。
共有するブックで XML 要素を対応付けたい場合は、XML 要素を目的のセルに対応付け、XML データをインポートし、XML の対応付けをすべて削除し、それからブックを共有します。
-
データを含んでいる XML テーブルを別のブックにコピーできない場合は、XML テーブルがデータ構造を定義している XML 対応付けに関連付けられている可能性があります。 この XML 対応付けはブックに保存されますが、XML テーブルを別のブックにコピーした場合、XML の対応付けは自動では含まれません。 XML テーブルをコピーする代わりに、Excel では同じデータを含んでいる Excel テーブルが作成されます。 新しいテーブルを XML テーブルにするには、次の操作を行います。
-
元の XML の対応付けを作成するのに使った .xml ファイルまたは .xsd ファイルを使って、新しいブックに XML の対応付けを追加します。 他のブックに XML の対応付けを追加する場合は、これらのファイルを保存する必要があります。
-
XML 要素をテーブルに対応付けて、それを XML テーブルにします。
-
-
繰り返し要素を結合セルに対応付けると、Excel によってそのセルが結合解除されます。 繰り返し要素は結合解除されたセルでのみ機能するようになっているため、これは想定内の動作です。
単一の非繰り返し型 XML 要素を結合セルに対応付けることはできますが、繰り返し型 XML 要素 (または繰り返し型要素を含んでいる要素) を結合セルに対応付けることはできません。 セルの結合は解除され、要素はポインターが置かれているセルに対応付けられます。
-
-
ヒント:
-
使用しない XML 要素のマップを解除したり、XML データをインポートするときにセルの内容が上書きされないようにすることができます。 たとえば、XML ファイルのインポート時に数式が上書きされるのを望まない場合は、数式が含まれている単一対応付けセルまたは繰り返しセルから、XML 要素の対応付けを一時的に解除できます。 インポートが完了したら、XML 要素を数式セルに再度マップして、数式の結果を XML データ ファイルにエクスポートできます。
-
XML 要素の対応付けを解除するには、[XML ソース] 作業ウィンドウで要素の名前を右クリックし、[要素の削除] をクリックします。
[開発] タブを表示する
[開発] タブが表示されない場合は、次の操作を行って表示します。
-
[ファイル]、[オプション] の順にクリックします。
-
[リボンのユーザー設定] をクリックします。
-
[メイン タブ] で [開発] ボックスをオンにし、[OK] をクリックします。