「XML(エックスエムエル)データって聞くけど、結局どんなものなの?」
「エクセルでもXMLを使えるって聞いたけど、どうやるの?」
こんな疑問を持っている人は多いでしょう。
XMLはデータを整理して保存・やり取りするのにとても便利な形式で、実はエクセル(Excel)でもXMLデータを簡単に扱えます。
この記事では、そもそもXMLデータとは何か、エクセルでXMLを読み込んだり書き出したりする方法を初心者にもわかりやすく解説します。
XMLデータとは何か

XMLの基本概念
XML(エックスエムエル)は「eXtensible Markup Language(拡張可能なマークアップ言語)」の略で、データを階層的に整理して保存するためのテキスト形式です。
XMLの具体例
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user id="001">
<n>田中太郎</n>
<age>28</age>
<department>営業部</department>
<email>tanaka@example.com</email>
</user>
<user id="002">
<n>佐藤花子</n>
<age>32</age>
<department>マーケティング部</department>
<email>sato@example.com</email>
</user>
</users>
この例では、タグ(<user>
、<name>
、<age>
など)を使ってデータの意味をはっきりさせています。
XMLの主な特徴
人間が読める形式
- テキストベース:メモ帳などで中身を確認できる
- 構造が明確:階層構造でデータの関係性がわかりやすい
- タグに意味:データが何を表しているかが一目瞭然
システム間でのデータ交換に適している
- プラットフォーム非依存:WindowsでもMacでも使える
- 標準化された形式:世界中のシステムで使われる
- 拡張性:必要に応じて新しいタグを追加できる
XMLが使われる場面
ビジネスでの活用例
- ECサイトの商品データ:商品情報の一括管理
- 顧客管理システム:顧客データの交換
- 会計ソフト:財務データの取り込み・出力
- 在庫管理:商品の入出庫データ
身近なXMLの例
- Microsoft Office:WordやExcelの内部形式
- RSS フィード:ブログやニュースサイトの更新情報
- 設定ファイル:各種アプリケーションの設定
他のデータ形式との比較

XML vs JSON
特徴 | XML | JSON |
---|---|---|
可読性 | タグで意味が明確 | シンプルで軽量 |
ファイルサイズ | 大きめ | 小さめ |
エクセル対応 | 標準でサポート | プラグインが必要 |
企業システム | 広く採用 | Web APIで主流 |
JSONの例(参考)
{
"users": [
{
"id": "001",
"name": "田中太郎",
"age": 28,
"department": "営業部"
},
{
"id": "002",
"name": "佐藤花子",
"age": 32,
"department": "マーケティング部"
}
]
}
XML vs CSV
特徴 | XML | CSV |
---|---|---|
構造の複雑さ | 階層構造OK | 平坦な表のみ |
データの意味 | タグで明確 | 列位置に依存 |
エクセルでの扱い | インポート機能 | 直接開ける |
ファイルサイズ | 大きめ | 最小 |
エクセルでXMLデータを活用するメリット
ビジネス現場での具体的な活用
ケース1:ECサイトの商品管理
従来の方法:
- ECサイトから商品データをCSVでダウンロード
- 手動でエクセルに整理
- 商品情報の分析・更新作業
XML活用後:
- ECサイトからXMLデータを取得
- エクセルで自動的に構造化された表に変換
- 商品カテゴリ、価格、在庫などが自動で整理される
ケース2:他部署からのデータ受領
シナリオ:営業部から顧客リストをXMLで受け取る
<customers>
<customer>
<company>A商事</company>
<contact>
<n>田中部長</n>
<phone>03-1234-5678</phone>
<email>tanaka@a-syoji.com</email>
</contact>
<contract-info>
<start-date>2023-04-01</start-date>
<contract-value>1200000</contract-value>
</contract-info>
</customer>
</customers>
エクセルで読み込むと、階層構造が自動的に表形式に展開されます。
ケース3:定期レポートの自動化
流れ:
- 基幹システムからXMLで売上データを出力
- エクセルでXMLを読み込み
- ピボットテーブルで自動集計
- グラフ化して役員報告用レポート完成
エクセル + XMLの具体的なメリット
データの整合性向上
- タグによる明確な定義:データの意味が明確
- エラーの早期発見:XMLの構文チェック機能
- 型の保持:数値、日付などの形式が保たれる
作業効率の向上
- 自動的な構造化:手動での整理作業が不要
- 一括処理:大量データの一括取り込み
- 再現性:同じ処理を繰り返し実行可能
エクセルでXMLデータを読み込む方法

基本的な読み込み手順
方法1:データタブからのインポート(Excel 2016以降)
- エクセルを起動
- 「データ」タブをクリック
- 「データの取得」→「ファイルから」→**「XML」**を選択
- XMLファイルを選択して「インポート」をクリック
- データのプレビューを確認
- **「読み込み」**をクリックして完了
方法2:XMLファイルを直接開く
- 「ファイル」→「開く」
- ファイルの種類で「XMLファイル」を選択
- XMLファイルを選択
- **「XMLテーブルとして開く」**を選択
読み込み時のオプション設定
XMLをテーブルとして読み込む場合
メリット:
- データの並び替えやフィルタが簡単
- 新しいデータの追加が容易
- 数式での参照が安定
設定方法:
- インポート時に「テーブルとして書式設定」にチェック
- ヘッダー行の設定を確認
- データ型の自動判定を有効化
XMLを通常の範囲として読み込む場合
メリット:
- レイアウトの自由度が高い
- 既存のワークシートとの統合が簡単
- 複雑な数式での加工が可能
読み込み時によくある問題と解決法
問題1:XMLファイルが正しく表示されない
原因:XMLの構文エラー
解決方法:
- XMLファイルをテキストエディタで開く
- タグの開閉を確認
- 文字エンコーディング(UTF-8など)を確認
問題2:階層構造が複雑で表示が崩れる
原因:深い入れ子構造
解決方法:
- 「Power Query エディター」で構造を確認
- 必要な列のみを選択
- 階層の展開/折りたたみを調整
問題3:日本語が文字化けする
原因:文字エンコーディングの問題
解決方法:
- XMLファイルの宣言部分を確認:
<?xml version="1.0" encoding="UTF-8"?>
- エクセルのインポート時にエンコーディングを指定
- 必要に応じてファイルを UTF-8 で保存し直す
エクセルからXMLデータを書き出す方法

XMLマップ機能を使った書き出し
事前準備:開発タブの有効化
- 「ファイル」→「オプション」
- 「リボンのユーザー設定」
- **「開発」**にチェックを入れる
- **「OK」**をクリック
XMLマップの作成手順
ステップ1:XMLソースの設定
- 「開発」タブ→「XML」→**「ソース」**をクリック
- **「XMLマップ」**ダイアログが開く
- **「XMLマップ…」**をクリック
ステップ2:スキーマファイルの読み込み
- **「追加」**をクリック
- XSDファイル(XMLスキーマ)を選択
- XMLマップが作成される
簡単なXMLスキーマ例
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="products">
<xs:complexType>
<xs:sequence>
<xs:element name="product" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="id" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element name="price" type="xs:decimal"/>
<xs:element name="category" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
セルとXML要素のマッピング
ステップ3:マッピングの実行
- XMLソースペインでXML要素を確認
- 要素をドラッグしてエクセルのセルにドロップ
- ヘッダー行とデータ行の対応を確認
マッピング例:
エクセル列 | XML要素 | 説明 |
---|---|---|
A列 | id | 商品ID |
B列 | name | 商品名 |
C列 | price | 価格 |
D列 | category | カテゴリ |
XMLファイルの出力
ステップ4:エクスポートの実行
- データが入力されたセル範囲を選択
- 「開発」タブ→「XML」→「エクスポート」
- 保存場所とファイル名を指定
- **「エクスポート」**をクリック
スキーマを使わない簡易的な方法
XMLテーブル機能の活用
- 「挿入」タブ→**「テーブル」**でデータをテーブル化
- 「データ」タブ→「XMLとしてエクスポート」
- 簡易的なXML構造で出力される
出力例
エクセルのデータ:
商品ID | 商品名 | 価格 |
---|---|---|
P001 | ノートPC | 98000 |
P002 | マウス | 2500 |
出力されるXML:
<?xml version="1.0" encoding="UTF-8"?>
<dataroot>
<row>
<商品ID>P001</商品ID>
<商品名>ノートPC</商品名>
<価格>98000</価格>
</row>
<row>
<商品ID>P002</商品ID>
<商品名>マウス</商品名>
<価格>2500</価格>
</row>
</dataroot>
実際のビジネス活用例

例1:在庫管理システムとの連携
シナリオ
倉庫の在庫管理システムからXMLで在庫データを取得し、エクセルで分析・レポート作成を行う。
XMLデータ例
<?xml version="1.0" encoding="UTF-8"?>
<inventory>
<warehouse name="東京倉庫">
<item>
<sku>SKU001</sku>
<n>ワイヤレスマウス</n>
<quantity>150</quantity>
<unit-price>2500</unit-price>
<location>A-1-3</location>
<last-updated>2024-01-15</last-updated>
</item>
<item>
<sku>SKU002</sku>
<n>USB ケーブル</n>
<quantity>75</quantity>
<unit-price>800</unit-price>
<location>B-2-1</location>
<last-updated>2024-01-14</last-updated>
</item>
</warehouse>
</inventory>
エクセルでの処理フロー
- XMLデータの読み込み
- 在庫金額の計算:数量 × 単価
- 在庫切れ警告:在庫数が閾値以下の商品をハイライト
- グラフ作成:倉庫別在庫状況の可視化
- レポート出力:管理者向けサマリー作成
例2:顧客データの統合管理
シナリオ
複数の営業支店から顧客データをXMLで収集し、本社で統合分析を行う。
各支店からのXMLデータ
<?xml version="1.0" encoding="UTF-8"?>
<customers branch="東京支店">
<customer>
<customer-id>C-TKY-001</customer-id>
<company-name>A商事株式会社</company-name>
<contact-person>田中部長</contact-person>
<annual-revenue>12000000</annual-revenue>
<contract-date>2023-04-01</contract-date>
<status>active</status>
</customer>
</customers>
エクセルでの統合処理
- 複数XMLファイルの一括読み込み
- 支店別売上集計
- 顧客ランキング作成
- 契約更新予定の抽出
- ダッシュボード作成
例3:ECサイトの商品データ管理
XMLからの商品データ読み込み
<?xml version="1.0" encoding="UTF-8"?>
<products>
<product>
<id>PROD-001</id>
<n>ワイヤレスイヤホン</n>
<category>
<main>電子機器</main>
<sub>オーディオ</sub>
</category>
<price>
<regular>15800</regular>
<sale>12800</sale>
</price>
<stock>25</stock>
<description>高音質Bluetooth 5.0対応</description>
</product>
</products>
エクセルでの分析・管理
- 価格比較分析:定価と セール価格の差額計算
- 在庫アラート:低在庫商品の抽出
- カテゴリ別売上:商品カテゴリ別の売上分析
- 商品説明の一括更新:修正内容をXMLで一括エクスポート
よくある問題と解決方法

XML読み込み時の問題
問題1:「XMLファイルが破損しています」エラー
原因と解決方法:
- 構文エラーの確認
<!-- 間違い:タグが閉じられていない --> <n>田中太郎 <!-- 正しい --> <n>田中太郎</n>
- 文字エンコーディングの問題
- XMLファイルをUTF-8で保存し直す
- BOM(Byte Order Mark)を削除
- 特殊文字のエスケープ
<!-- 間違い --> <description>5 < 10 && 15 > 10</description> <!-- 正しい --> <description>5 < 10 && 15 > 10</description>
問題2:データが正しく表示されない
解決手順:
- Power Query エディターで確認
- 「データ」→「データの取得」→「XML」
- プレビューでデータ構造を確認
- 必要に応じて列の展開や変換を実行
- データ型の調整
- 数値が文字列として認識される場合
- 日付形式が正しく解釈されない場合
- True/False値の判定問題
XML書き出し時の問題
問題1:XMLマップが作成できない
解決方法:
- XSDファイルの準備
- 簡単なスキーマファイルを作成
- オンラインのXSDジェネレーターを活用
- 手動でのマップ作成
- 開発タブの「XMLソース」から手動設定
- 単純な構造から始めて段階的に複雑化
問題2:出力されるXMLが期待と異なる
チェックポイント:
- マッピングの確認
- セルとXML要素の対応関係
- データ範囲の指定
- 名前空間の設定
- スキーマで定義された名前空間
- 出力時の名前空間宣言
Excel バージョン別の機能差異
Excel 2016以降(推奨)
利用可能な機能
- Power Query:高度なXMLデータ変換
- XMLマップ:完全な双方向変換
- 自動データ型認識:数値、日付の自動判定
推奨理由
- 最新のXML処理エンジン
- 豊富なデータ変換オプション
- エラー処理の向上
Excel 2013-2015
制限事項
- Power Queryが別途アドインとして必要
- 一部の高度な変換機能が制限される
対応方法
- Microsoft Power Query アドインをインストール
- 基本的なXML機能は利用可能
Excel 2010以前
重要な制限
- 古いXML処理エンジン
- 複雑なXMLの処理が困難
- セキュリティ設定での制限
推奨対応
- できるだけ新しいバージョンへのアップグレード
- 単純なXML構造のみを扱う
セキュリティとデータ保護
XMLファイルのセキュリティ注意点
外部XMLファイルの取り扱い
- 信頼できるソースからのみ取得
- ウイルススキャンの実行
- 内容の事前確認
機密データの保護
- XMLファイルの暗号化
- アクセス権限の設定
- 一時ファイルの適切な削除
エクセルでのセキュリティ設定
マクロとXMLの関係
- マクロ無効化の設定
- 外部データ接続の制限
- 信頼できる場所の設定
まとめ
XMLとエクセルの組み合わせの価値
メリット | 具体例 |
---|---|
データの構造化 | 階層的なデータを表形式で表示 |
自動化 | 定期的なデータ取り込みの自動化 |
標準化 | 部署間・システム間のデータ交換 |
分析力向上 | 複雑なデータの可視化と分析 |
コメント