XML 要素を XML マップのセルに対応付ける

適用先
Excel for Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

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

  1. 変換するテキスト ファイルをインポートして、新しいテーブルにリンクします。

    1. [ ファイル>開く] をクリックします
    2. [ファイルを開く] ダイアログ ボックスで、新しいテーブルを作成するデータベースを選んで開きます。
    3. [ 外部データ>Text File] をクリックし、各手順の指示に従って、テーブルをテキスト ファイルにリンクします。
      Access により新しいテーブルが作成され、ナビゲーション ウィンドウに表示されます。
  2. リンク テーブルから XML データ ファイルと XML スキーマ ファイルにデータをエクスポートします。

    1. [ 外部データ>XML ファイル ] ( [エクスポート ] グループ) をクリックします。
    2. [エクスポート - XML ファイル] ダイアログ ボックスでファイル名と書式を指定し、[OK] をクリックします。
  3. Access を終了します。

Excel

  1. Access からエクスポートした XML スキーマに基づいて、XML の対応付けを作成します。
    [複数ルート] ダイアログ ボックスが表示された場合は、XML テーブルを作成できるように、[dataroot] を選びます。
  2. dataroot 要素を対応付けて XML テーブルを作成します。 詳細については、「XML 要素を対応付ける」を参照してください。
  3. Access からエクスポートした XML ファイルをインポートします

  • Excel でサポートされていない XML スキーマ構造がいくつかあります。 次に示す XML スキーマ構造は、Excel にインポートできません。
  • <any> この要素を使用すると、スキーマによって宣言されていない要素を含めることができます。
  • <anyAttribute> この要素を使用すると、スキーマによって宣言されていない属性を含めることができます。
  • 再帰構造体 再帰構造の一般的な例は、同じ XML 要素が複数のレベルで入れ子になっている従業員とマネージャーの階層です。 Excel では、複数のレベルの深い再帰構造はサポートされていません。
  • 抽象要素 これらの要素はスキーマで宣言することを目的としていますが、要素として使用されることはありません。 抽象要素は、抽象要素に置き換えられる他の要素に依存します。
  • 置換グループ これらのグループを使用すると、別の要素が参照されている場所で要素をスワップできます。 要素は、 <substitutionGroup> 属性を介して別の要素の置換グループのメンバーであることを示します。
  • 混合コンテンツ このコンテンツは、複合型定義で mixed="true" を使用して宣言されます。 Excel は複合型の単純なコンテンツをサポートしていませんが、その複合型で定義されている子タグと属性をサポートしています。

サンプルの XML スキーマと XML データ ファイルを使用する

次のサンプル データには、XML ファイルや、XML ファイルを作成するためのテキスト ファイルがない場合に、XML の対応付けをテストするために使用できる基本的な XML 要素と構造が用意されています。 このサンプル データをコンピューター上のファイルに保存する方法を説明します。

  1. コピーするファイルのサンプル文字を選び、Ctrl キーを押しながら C キーを押します。
  2. メモ帳を起動し、Ctrl キーを押しながら V キーを押して、サンプル テキストを貼り付けます。
  3. Ctrl キーを押しながら S キーを押して、コピーしたサンプル データのファイル名と拡張子を使って、ファイルを保存します。
  4. メモ帳で Ctrl キーを押しながら N キーを押して、手順 1 ~ 3 を繰り返し、2 つ目のサンプル テキストのファイルを作成します。
  5. メモ帳を終了します。

サンプル 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) からスキーマの推定を試すこともできます。

  1. [Developer>Source] をクリックします
    [開発者] タブの [XML] コマンド
    [開発] タブが表示されていない場合は、「[開発] タブを表示する」を参照してください。

  2. [XML ソース] 作業ウィンドウで、[XML の対応付け] をクリックして、[追加] をクリックします。

  3. [ 検索先 ] ボックスの一覧で、開くファイルを含むドライブ、フォルダー、またはインターネットの場所をクリックします。

  4. ファイルをクリックし、[開く] をクリックします。

    • XML スキーマ ファイルの場合、XML がその XML スキーマに基づいて XML の対応付けを作成します。 [複数ルート] ダイアログ ボックスが表示されたら、XML スキーマ ファイルで定義されているルート ノードの 1 つを選びます。
    • XML データ ファイルの場合、Excel が XML データから XML スキーマの推定を試み、それによって XML の対応付けを作成します。
  5. [OK] をクリックします。
    XML の対応付けが [XML ソース] 作業ウィンドウに表示されます。

XML 要素を対応付ける

XML テーブルで XML 要素を単一対応付けセルや繰り返しセルに対応付けて、XML スキーマでセルと XML 要素の間に関係を作成することができます。

  1. [Developer>Source] をクリックします
    [開発者] タブの [XML] コマンド
    [開発] タブが表示されていない場合は、「[開発] タブを表示する」を参照してください。

  2. [XML ソース] 作業ウィンドウで、対応付ける要素を選びます。
    隣接していない複数の要素を選ぶには、要素を 1 つクリックした後で、Ctrl キーを押しながら対応付けたい他の要素をクリックします。

  3. 要素を対応付けるには、次の操作を行います。

    1. 選んだ要素を右クリックし、[要素の対応付け] をクリックします。

    2. [XML 要素の対応付け] ダイアログ ボックスでセルを選び、[OK] をクリックします。

      ヒント

      選んだ要素は、ワークシート内で表示したい位置にドラッグすることもできます。

      各要素は [XML ソース] 作業ウィンドウに太字で表示され、要素が対応付けられていることを示します。

  4. ラベルと列見出しの処理方法を決定します。

    • 単一対応付けセルを作成するために 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 テーブルにする場合は、次の手順を実行します: > 1。 元の XML の対応付けを作成するのに使った .xml ファイルまたは .xsd ファイルを使って、新しいブックに XML の対応付けを追加します。 他のブックに XML の対応付けを追加する場合は、これらのファイルを保存する必要があります。 > 2. XML 要素をテーブルに対応付けて、それを XML テーブルにします。 > > - 繰り返し XML 要素をマージされたセルにマップすると、セルの結合が解除されます。 繰り返し要素は結合解除されたセルでのみ機能するようになっているため、これは想定内の動作です。

単一の非繰り返し型 XML 要素を結合セルに対応付けることはできますが、繰り返し型 XML 要素 (または繰り返し型要素を含んでいる要素) を結合セルに対応付けることはできません。 セルの結合は解除され、要素はポインターが置かれているセルに対応付けられます。

ヒント

  • 使用しない XML 要素のマップを解除したり、XML データをインポートするときにセルの内容が上書きされないようにすることができます。 たとえば、XML ファイルのインポート時に数式が上書きされるのを望まない場合は、数式が含まれている単一対応付けセルまたは繰り返しセルから、XML 要素の対応付けを一時的に解除できます。 インポートが完了したら、XML 要素を数式セルに再度マップして、数式の結果を XML データ ファイルにエクスポートできます。
  • XML 要素の対応付けを解除するには、[XML ソース] 作業ウィンドウで要素の名前を右クリックし、[要素の削除] をクリックします。

[開発] タブを表示する

[開発] タブが表示されない場合は、次の操作を行って表示します。

  1. [ ファイル>オプション] をクリックします。
  2. [リボンのユーザー設定] をクリックします。
  3. [メイン タブ] で [開発] ボックスをオンにし、[OK] をクリックします。

関連項目

ブックから XML マップ情報を削除する

マップされた XML データを追加または上書きする

Excel での XML の概要

XML データのインポート

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