独学MOS

XMLファイルの利用

XMLとは

「Extensible Markup Language(エクステンシブル マークアップ ランゲージ)」の略語であり、拡張可能なマーク付け言語と訳されます。XMLはデータを記述する言語として世界で標準化されており、さまざまなシステム間でのデータの受け渡しなどに用いられています。

Excelにおいては行と列からなるXMLを表として取り込んだり、それとは逆に表からXMLを作成することができます。XMLは行と列という単純な階層構造だけでなくもっと複雑な階層構造も記述することができる言語ですが、Excelで扱うことができる形式はある程度限られています。どんな形式のXMLでもきれいな表にすることができるとは限らないという点には注意が必要です。

XML Schemaとは

「XML Schema(XMLスキーマ)」とはXMLファイルのデータ構造を定義するための言語です。XMLファイルのデータにどんな種類のデータが書き込まれるのか定義したり、書き込まれる値の範囲を制限したりすることができます。すなわちXMLファイルの設計図がXMLスキーマなのです。

XMLの内容

このページで使用するXMLファイルは以下の通りです。ファイル名は「books.xml」とし、文字コードは「UTF-8」で保存します。

<?xml version="1.0" encoding="utf-8"?>
<books>
    <book>
        <タイトル>Word 2010 問題集</タイトル>
        <著者>山田 太郎</著者>
        <出版社>XXX株式会社</出版社>
        <価格>2000</価格>
    </book>
    <book>
        <タイトル>Excel 2010 問題集</タイトル>
        <著者>山田 太郎</著者>
        <出版社>XXX株式会社</出版社>
        <価格>2000</価格>
    </book>
    <book>
        <タイトル>PowerPoint 2010 問題集</タイトル>
        <著者>山田 太郎</著者>
        <出版社>XXX株式会社</出版社>
        <価格>2500</価格>
    </book>
    <book>
        <タイトル>Access 2010 問題集</タイトル>
        <著者>山田 太郎</著者>
        <出版社>XXX株式会社</出版社>
        <価格>2500</価格>
    </book>
</books>

このXMLファイルは本の一覧を表しています。一覧には4冊の本が記述されており、それぞれに「タイトル」、「著者」、「出版社」、「価格」が定義されています。この構造を記したXMLスキーマは以下の通りです。ファイル名は「books.xsd」とし、文字コードは「UTF-8」で保存します。

<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="books">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element ref="book" maxOccurs="unbounded"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
    <xsd:element name="book">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element ref="タイトル"/>
                <xsd:element ref="著者"/>
                <xsd:element ref="出版社"/>
                <xsd:element ref="価格"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
    <xsd:element name="タイトル" type="xsd:string"/>
    <xsd:element name="著者" type="xsd:string"/>
    <xsd:element name="出版社" type="xsd:string"/>
    <xsd:element name="価格" type="xsd:integer"/>
</xsd:schema>

XMLファイルのインポート

XMLファイルのインポートは以下の手順で行います。対象のXMLファイルはあらかじめ保存しておいてください。

  1. 「開発」タブをクリック
  2. XMLグループの「インポート」をクリック
  3. XMLファイルを選択して「インポート」をクリック
  4. XMLファイルにスキーマが関連付けられていないことを示すダイアログが表示されるので「OK」ボタンをクリック
  5. XMLファイルのデータをどこに取り込むか決定するダイアログが表示されるので「OK」ボタンをクリック
  6. 取り込んだXMLファイルのデータが表示される

XMLファイルのエクスポート

XMLファイルのエクスポートは以下の手順で行います。対象のXMLファイルはあらかじめインポートしておいてください。

  1. 「開発」タブをクリック
  2. XMLグループの「エクスポート」をクリック
  3. ファイル名を入力してエクスポートをクリック

エクスポートしたXMLファイルを開くと以下のようになっています。インポートしたXMLファイルと最初の2行が異なっている点を除けばデータは同じであることがわかります。今回は何も編集せずにインポートしたファイルをそのままエクスポートしましたが、当然インポートした後でExcel上でデータを編集してからエクスポートすることも可能です。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<books xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <book>
        <タイトル>Word 2010 問題集</タイトル>
        <著者>山田 太郎</著者>
        <出版社>XXX株式会社</出版社>
        <価格>2000</価格>
    </book>
    <book>
        <タイトル>Excel 2010 問題集</タイトル>
        <著者>山田 太郎</著者>
        <出版社>XXX株式会社</出版社>
        <価格>2000</価格>
    </book>
    <book>
        <タイトル>PowerPoint 2010 問題集</タイトル>
        <著者>山田 太郎</著者>
        <出版社>XXX株式会社</出版社>
        <価格>2500</価格>
    </book>
    <book>
        <タイトル>Access 2010 問題集</タイトル>
        <著者>山田 太郎</著者>
        <出版社>XXX株式会社</出版社>
        <価格>2500</価格>
    </book>
</books>

XMLファイルの追加インポート

Excelでは一度インポートしたXMLファイルのデータに対して別のXMLファイルのデータを追加でインポートすることができます。新たに下記のXMLファイルを作成して保存してください。今回はファイル名を「books-add.xml」とし、文字コードは「UTF-8」で保存します。

<?xml version="1.0" encoding="utf-8"?>
<books>
    <book>
        <タイトル>Word 2010 Expert 問題集</タイトル>
        <著者>山田 太郎</著者>
        <出版社>XXX株式会社</出版社>
        <価格>3000</価格>
    </book>
    <book>
        <タイトル>Excel 2010 Expert 問題集</タイトル>
        <著者>山田 太郎</著者>
        <出版社>XXX株式会社</出版社>
        <価格>3000</価格>
    </book>
</books>

ここで作成したXMLファイルを追加でインポートするには以下の手順を行います。あらかじめ「books.xml」をインポートしておいてください。

  1. 「開発」タブをクリック
  2. XMLグループの「対応付けのプロパティ」をクリック
  3. 「既存のXMLテーブルに新規データを追加する」にチェックを入れて「OK」ボタンをクリック
  4. XMLグループの「インポート」をクリック
  5. 追加インポートするXMLファイルを選択して「インポート」をクリック
  6. 追加で取り込んだXMLファイルのデータが既存のXMLテーブルに追加されて表示される

XMLファイルの対応付けの削除

インポートされたXMLファイルは通常のセルとは異なり、XMLファイルに対応付けされた状態のテーブルとしてExcelに取り込まれています。対応付けを削除して通常のセルに変換するには以下の手順を行います。あらかじめ「books.xml」をインポートしておいてください。

  1. 「開発」タブをクリック
  2. XMLグループの「ソース」をクリック
  3. XMLソースウィンドウの「XMLの対応付け」ボタンをクリック
  4. XML対応付け一覧から削除したい対応付けを選択して「削除」ボタンをクリック
  5. インポート、エクスポートができなくなることを知らせるメッセージが表示されるので「はい」ボタンをクリック
  6. XML対応付け一覧から選択した対応付けが削除されるので「OK」ボタンをクリック
  7. XMLソースウィンドウを閉じて「デザイン」タブをクリック
  8. ツールグループの「範囲に変換」をクリック
  9. 確認メッセージが表示されるので「はい」ボタンをクリック
  10. テーブルが通常のセルとして表示される

XMLファイルの対応付け

インポートされたXMLファイルの対応付けを削除して通常のセルに変換したデータや、最初からExcel上で作成されたデータはXMLファイルの対応付けがされていないため、そのままではインポートやエクスポートを行うことができません。そういった場合でもXMLスキーマファイルを用意しておくことでXMLファイルの対応付けを行うことができます。

XMLファイルの対応付けを行うためにはまず対応付けされるデータが入力されている必要があります。下記のデータはこのページの最初に例として紹介したXMLスキーマ「books.xsd」に合わせたデータです。

タイトル 著者 出版社 価格
Word 2010 教科書 山田 次郎 YYY株式会社 2200
Excel 2010 教科書 山田 次郎 YYY株式会社 2200
PowerPoint 2010 教科書 山田 次郎 YYY株式会社 2200
Access 2010 教科書 山田 次郎 YYY株式会社 2200

新規にブックを作成して上記のデータを入力してください。上記のデータに対してXMLファイルの対応付けを行うには以下の手順を行います。

  1. 「開発」タブをクリック
  2. XMLグループの「ソース」をクリック
  3. XMLソースウィンドウの「XMLの対応付け」ボタンをクリック
  4. XMLの対応付けウィンドウの「追加」ボタンをクリック
  5. XMLスキーマファイルを選択して「開く」ボタンをクリック
  6. ルートノードを選択して「OK」ボタンをクリック
  7. XMLの対応付けウィンドウの「OK」ボタンをクリック
  8. XMLソースウィンドウの「タイトル」を対応するセルにドラッグ&ドロップ
  9. 「タイトル」と同様に「著者」「出版社」「価格」も対応するセルにドラッグ&ドロップ
  10. セルにXMLファイルの対応付けがされる

XMLファイルの読み込み

Excelにはインポートとは別にXMLファイルを読み込む方法が用意されています。以下の手順でXMLファイルの必要な列だけ読み込むことができます。

  1. 「ファイル」タブをクリック
  2. 「開く」をクリック
  3. XMLファイルを選択して「開く」をクリック
  4. 「[XMLソース]作業ウィンドウを使用する」を選択して「OK」をクリック
  5. XMLファイルにスキーマが関連付けられていないことを示すダイアログが表示されるので「OK」ボタンをクリック
  6. XMLソースウィンドウの「タイトル」をデータを読み込むセルへドラッグ&ドロップ
  7. 「タイトル」と同様に「価格」をデータを読み込むセルへドラッグ&ドロップ
  8. 外部データグループの「更新」をクリック
  9. XMLファイルのデータが読み込んで表示される