XML 要素を XML マップのセルにマップする

適用先
Excel for Microsoft 365 Excel 2024 Excel 2021

Excel で XML データをインポートおよびエクスポートするには、XML 要素をセル内のデータに関連付ける XML マップを使用します。 この関連付けは、必要な結果を得るのに役立ちます。 XML マップを作成するには、XML スキーマ ファイル (.xsd) と XML データ ファイル (.xml) が必要です。 XML マップを作成すると、XML 要素を希望どおりにマップできます。

ヒント

Excel で XML を使用する方法の詳細については、「 Excel の XML の概要」を参照してください。

デスクトップ版 Excel for Windows は、XML マッピング機能を提供する唯一のバージョンです。 これらのツールは、Excel for Mac または Excel for the web では使用できません。

XML マップは従来の機能です。 多くのシナリオでは、特に複雑な XML 構造や入れ子になった XML 構造の場合、Excel の Power Query を使用して XML データをインポートおよび変換します。

XML スキーマと XML データ ファイルを検索または作成する

別のデータベースまたはアプリケーションで XML スキーマまたは XML データ ファイルを作成した場合は、これらは既に使用可能な状態になっている場合があります。 たとえば、業務アプリケーションでデータを XML ファイル形式にエクスポートしたり、商用の Web サイトや Web サービスで XML ファイルを提供したり、自社の IT 部門で開発したカスタム アプリケーションで XML ファイルを自動作成したりする場合です。

必要な XML ファイルがない場合は、使用するデータをテキスト ファイルとして保存することで作成できます。 テキスト ファイルを必要な XML ファイルに変換するには、Access と Excel のどちらでも使用できます。 操作手順を次に示します。

Access

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

    1. [ファイル]、[開く] の順に選択します。
    2. [ファイルを開く] ダイアログ ボックスで、新しいテーブルを作成するデータベースを選んで開きます。
    3. [ 外部データ>テキスト ファイル] を選択し、各手順の指示に従って、テーブルをテキスト ファイルにリンクします。
      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 ファイルをインポートします

または、Power Query を使用して、XML スキーマ ファイルを作成せずに XML データを直接インポートすることもできます。

  • Excel でサポートされていない XML スキーマ構造がいくつかあります。 次に示す XML スキーマ構造は、Excel にインポートできません。
  • <任意> この要素を使用すると、スキーマで宣言されていない要素を含めることができます。
  • <anyAttribute> この要素を使用すると、スキーマで宣言されていない属性を含めることができます。
  • 再帰構造体 再帰的な構造の一般的な例は、同じ XML 要素が複数のレベルネストされた従業員と上司の階層です。 Excel では、1 レベルを超える深さの再帰構造はサポートされていません。
  • 抽象要素 これらの要素はスキーマ内で宣言されるべきであり、要素としては使用されません。 抽象要素は、抽象要素の置換される他の要素に依存します。
  • 置換グループ これらのグループを使用すると、別の要素が参照される場所であればどこでも要素をスワップできます。 要素は、 <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. [開発者>ソース] を選択します。
    [開発者] タブの [XML] コマンド
    [開発] タブが表示されていない場合は、「[開発] タブを表示する」を参照してください。

  2. [ XML ソース ] 作業ウィンドウで、[ XML マップ] を選択してから、[ 追加] を選択します。

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

  4. ファイルを選択してから 、[開く] を選択します。

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

XML 要素を対応付ける

XML 要素を XML テーブル内の単一マップ セルと繰り返しセルにマップすると、XML スキーマ内のセルと XML データ要素との間にリレーションシップを作成できます。

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

  2. [XML ソース] 作業ウィンドウで、対応付ける要素を選びます。
    隣接していない要素を選択するには、1 つの要素を選択し、Ctrl キーを押しながらマップする各要素を選択します。

  3. 要素をマップするには、次の手順を実行します。

    1. 選択した要素を右クリックし、[ 要素のマップ] を選択します。

    2. [ XML 要素のマップ ] ダイアログ ボックスで、セルを選択し、[ OK] を選択します。

      ヒント

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

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

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

    • 単一対応付けセルを作成するために XML の非繰り返し要素をワークシートにドラッグすると、3 つのコマンドを備えたスマート タグが表示されます。このタグを使って、見出しやラベルの配置を制御できます。
      データに見出しが既にある このチェック ボックスをオンにすると、セルには既に見出し (データの左または上) があるため、XML 要素の見出しは無視されます。
      XML 見出しを左側に配置する このチェック ボックスをオンにすると、XML 要素の見出しがセル ラベル (データの左側) として使われます。
      XML 見出しを上に配置する このチェック ボックスをオンにすると、XML 要素の見出しがセル見出し (データの上) になります。

    • XML テーブル内に繰り返しセルを作成するために XML の繰り返し要素をワークシートにドラッグすると、XML 要素の名前が自動的にテーブルの列見出しとして使われます。 ただし、列見出しのセルを編集して、列見出しを自由に変更できます。
      [XML ソース] 作業ウィンドウで [オプション] を選択して、XML テーブルの動作をさらに制御します。
      マッピング時に要素を自動的にマージするこのチェック ボックスをオンにすると、Excel では、XML テーブルの隣のセルに要素をドラッグすると、XML テーブルが自動的に展開されます。
      データ内の列見出しを使用このチェック ボックスをオンにすると、繰り返し要素をワークシートに対応付けるときに、既存のデータを列見出しとして使うことができます。

      • XML コマンドがすべて淡色表示になり、XML 要素をセルに対応付けることができない場合は、ブックが共有されている可能性があります。 [ブックの 確認>共有 ] を選択してそれを確認し、必要に応じて共有使用から削除します。

共有するブックで XML 要素を対応付けたい場合は、XML 要素を目的のセルに対応付け、XML データをインポートし、XML の対応付けをすべて削除し、それからブックを共有します。 > - データを含む XML テーブルを別のブックにコピーできない場合、その XML テーブルには、データ構造を定義する XML マップが関連付けられていることがあります。 この XML 対応付けはブックに保存されますが、XML テーブルを別のブックにコピーした場合、XML の対応付けは自動では含まれません。 XML テーブルをコピーする代わりに、Excel では同じデータを含んでいる Excel テーブルが作成されます。 新しいテーブルを XML テーブルにする場合は、次の手順を実行します。 > 1。 元の XML の対応付けを作成するのに使った .xml ファイルまたは .xsd ファイルを使って、新しいブックに XML の対応付けを追加します。 他のブックに XML の対応付けを追加する場合は、これらのファイルを保存する必要があります。 > 1. XML 要素をテーブルに対応付けて、それを XML テーブルにします。 > > - 繰り返し XML 要素を結合されたセルにマップすると、Excel はセルの結合を解除します。 繰り返し要素は結合解除されたセルでのみ機能するようになっているため、これは想定内の動作です。

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

ヒント

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

[開発] タブを表示する

[ 開発 ] タブが表示されない場合は、次の手順に従って表示します。

  1. [ファイル] > [オプション] を選択します。
  2. [ リボンのカスタマイズ] カテゴリを選択します。
  3. [メイン タブ] で、[開発] ボックスをチェックし、[OK] を選択します。

関連項目

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

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

Excel での XML の概要

XML データのインポート

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