「Excelで作った表をXML形式に変換したいけど、どこから保存すればいいのか分からない」。そんな声をよく聞きます。実はExcelのXML変換には性格のちがう2つのやり方があって、これを区別しないまま進めると「保存できません」とエラーが出たり、思っていたXMLと中身がちがって戸惑ったりします。
この記事では、「名前を付けて保存」で完結する簡単な方法と、開発タブとXMLマップを使う本格的な方法を切り分けて、初心者の方でも迷わないように順を追って説明します。元情シスで社内のExcelデータ連携を10年以上扱ってきた経験から、つまずきやすいポイントも先回りでお伝えします。
ExcelのXML変換は2種類ある
最初にここだけ押さえてください。ExcelでXMLに変換する方法は、ざっくり2つに分かれます。やりたいことに合うほうを選ぶのが、遠回りしない一番のコツです。
1つめは、「名前を付けて保存」でファイルの種類を「XML スプレッドシート 2003」にする方法です。クリックだけで完結し、開発タブもXMLの知識もいりません。セルの見た目や書式をそのまま1つのXMLにまとめたいとき向けです。
2つめは、「開発」タブの「ソース」でXMLマップを作り、「XML データ」として書き出す方法です。あらかじめ決められた構造(スキーマ)に合わせて、他システムが読み込めるきれいなXMLを作りたいときに使います。手間はかかりますが、データ連携で本当に使えるのはこちらです。
この2つは出てくるXMLの中身がまったく違います。次の表で性格を比べてみましょう。
| 保存形式 | どんなXMLになるか | 開発タブ/ XMLマップ |
向いている用途 |
|---|---|---|---|
| XML スプレッドシート 2003 (*.xml) |
セルの値・書式・シート構成を そのまま記録した独自XML (Excelで開き直せる) |
不要 | とりあえずXMLとして 保存・受け渡ししたい |
| XML データ (*.xml) |
マップで対応付けた要素だけを 抜き出した構造化XML (スキーマに沿う) |
必要 (事前にマップ作成) |
他システム・DBへの データ連携 |
| (参考)通常の Excelブック (*.xlsx) |
中身はXMLだが 圧縮された専用形式 (拡張子はxlsx) |
不要 | ふだんのExcel作業 (XMLとしては使えない) |
ちなみに「xlsxの正体は実はXMLの集まり」という話を聞いたことがあるかもしれません。これは本当で、xlsxファイルの中身はXMLを圧縮したものです。ただ拡張子は.xlsxのままで、テキストエディタでそのまま読めるXMLにはなりません。ここを混同しないでください。
そもそもXMLとは何か(はじめての方へ)
用語のところで一度立ち止まっておきます。XMLは「Extensible Markup Language(拡張可能なマークアップ言語)」の略で、データを意味のあるタグで囲んで整理しておくための形式です。難しく考えなくて大丈夫で、要は「このデータが何なのか」を札(タグ)を付けて分かるようにしたテキストファイル、というイメージです。
たとえばExcelで「氏名」「住所」「電話番号」という3列の名簿を作っているとします。これをXMLにすると、次のように1人ぶんのデータがタグでまとまった形になります。
<名簿>
<人>
<氏名>山田太郎</氏名>
<住所>東京都新宿区</住所>
<電話番号>090-1234-5678</電話番号>
</人>
<人>
<氏名>鈴木花子</氏名>
<住所>大阪市北区</住所>
<電話番号>080-2345-6789</電話番号>
</人>
</名簿>
セルの値が<氏名>…</氏名>のようにタグで挟まれているのが分かります。受け取った側のソフトは、このタグを見れば「ここは氏名」「ここは電話番号」と機械的に判断できます。これが、Excelの表をXMLにする一番の意味です。
名前を付けて保存でXMLにする一番簡単な方法
まずは知識がいらないほうから。「XML スプレッドシート 2003」形式なら、開発タブもマップも使わずにXML化できます。
- XMLにしたいデータが入ったExcelファイルを開きます。
- 左上の「ファイル」をクリックし、「名前を付けて保存」を選びます。
- 「参照」で保存先を開き、「ファイルの種類」のプルダウンをクリックします。
- 一覧から「XML スプレッドシート 2003 (*.xml)」を選びます。
- ファイル名を付けて「保存」をクリックします。

これでデータがXMLとして書き出されます。出来たファイルをメモ帳で開くと、セルの中身がタグで囲まれた形になっているのが分かります。Excelで開き直せば元の表として表示できるので、受け渡しにも使いやすい形式です。
ただし、この形式は手軽な代わりに残せない機能があります。これは仕様で、変換のたびに警告が出ます。何が消えるのか、次で正直にお伝えします。
XML スプレッドシート 2003で保存すると消えるもの
マイクロソフト公式が明記している、この形式で保存されない(失われる)主な機能です。Excelで開き直したときに「あれ、無くなってる」と慌てないよう、先に知っておきましょう。
| 失われる主な機能 | 補足 |
|---|---|
| グラフ・図形・画像 | PivotChartや描画オブジェクトも対象 |
| ピボットテーブルの 並べ替え・絞り込み機能 |
表のデータ自体は残る |
| マクロ(VBAプロジェクト) | コードは保存されない |
| スパークライン | セル内ミニグラフは消える |
| シートやブックの パスワード保護 |
保護設定は引き継がれない |
| アウトライン(グループ化)・ シナリオ・ユーザー定義関数 のカテゴリ |
— |
数値や文字といった素のデータは残りますが、グラフやマクロを含むブックをこの形式にすると、それらは捨てられます。大事なファイルは元のxlsxを別に残したうえで、コピーをXMLに変換するのが安全です。
開発タブとXMLマップで本格的にXMLデータを書き出す方法
他システムやデータベースに読み込ませる、決まった構造のXMLが必要な場合は、こちらの「XML データ」形式を使います。この方法では先に「XMLマップ」を作る必要があり、そのために「開発」タブを表示しておきます。
開発タブが無いときの出し方
リボンに「開発」タブが見当たらない方が多いと思います。標準では非表示なので、最初に出しておきましょう。実際にこのパソコンのExcel 2019で操作した手順がこちらです。
- 「ファイル」→「オプション」を開きます。
- 左側の「リボンのユーザー設定」をクリックします。
- 右側のリストで「開発」にチェックを入れます。
- 「OK」を押すと、リボンの右のほうに「開発」タブが現れます。
もとの記事ではこの手順を「アドインのユーザー設定」と書いていましたが、正しくは「リボンのユーザー設定」です。ここを間違えるとチェック項目が見つからないので、実機で確認したうえで訂正しておきます。
XMLスキーマファイル(.xsd)とは何か
本格的な「XML データ」書き出しでは、最初にXMLスキーマファイル(拡張子.xsd)が必要になります。ここでつまずく人が多いので、正体をはっきりさせておきます。
スキーマとは、これから作るXMLの設計図です。「名簿の中には人が並び、人の中には氏名・住所・電話番号がある」というデータの形を、あらかじめ文章で定義したものだと思ってください。先ほどの名簿なら、スキーマはおおよそ次のような内容になります。
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="名簿">
<xs:complexType><xs:sequence>
<xs:element name="人" maxOccurs="unbounded">
<xs:complexType><xs:sequence>
<xs:element name="氏名" type="xs:string"/>
<xs:element name="住所" type="xs:string"/>
<xs:element name="電話番号" type="xs:string"/>
</xs:sequence></xs:complexType>
</xs:element>
</xs:sequence></xs:complexType>
</xs:element>
</xs:schema>
このスキーマをExcelに読み込ませると、「氏名」「住所」「電話番号」という箱がツリーで表示され、それをセルにひも付けていきます。連携相手から「このスキーマに合わせて出してほしい」と.xsdファイルを渡されることも多いので、その場合は受け取ったファイルをそのまま使えば大丈夫です。
XMLマップを作ってデータを対応付ける
スキーマを読み込んで、セルと要素をひも付けます。「氏名はこの列、住所はこの列」と対応させる作業で、これをXMLマップと呼びます。
- 「開発」タブをクリックし、「XML」グループの「ソース」を押します。
- 画面右に「XML ソース」作業ウィンドウが開きます。下の「XML の対応付け」から、用意したスキーマ(.xsd)を追加します。
- ツリー表示された要素を、対応するセル(列の見出しなど)へドラッグして対応付けます。
- これで「マップされたセル」が作られ、書き出しの準備が整います。
XML データとして書き出す
マップができたら、いよいよ書き出しです。公式の手順どおり進めます。
- 「開発」タブの「エクスポート」をクリックします。
- 対応付け(XMLマップ)の選択を求められたら、使うマップを選んで「OK」を押します。
- 保存先とファイル名を指定し、「エクスポート」をクリックします。
もう1つのやり方として、「ファイル」→「名前を付けて保存」で「ファイルの種類」から「XML データ (*.xml)」を選んでも同じように書き出せます。ただし「XML データ」は、XMLマップを1つ以上作って初めて選べるようになる形式です。マップが無いうちは一覧に出ない、または選べない状態になります。先にこの章のマップ作成を済ませておけば、どちらの方法でもマップされたセルの内容がスキーマに沿ったXMLとして出力されます。
実際にこのパソコンのExcel 2019で名簿を書き出してみると、出来上がったXMLは、スキーマで決めたとおり<名簿>の中に<人>が並ぶきれいな構造になりました。先ほどの「XML スプレッドシート 2003」で保存したときの、セルの書式まで全部書き込まれた長いXMLとは見た目がまったく違います。連携相手に渡すなら、余計な情報の入らないこの「XML データ」形式のほうが喜ばれます。やりたいことが「他システムへの受け渡し」なら、手間でもこちらを選んでください。
XMLに変換できない・エラーが出るときの対処
ここでつまずく人がとても多いので、原因別にまとめます。「変換できない」のほとんどは、次のどれかです。
| 症状・メッセージ | 原因 | 対処 |
|---|---|---|
| 「XML の対応付けが 含まれていない」といった 内容のエラーが出る |
XMLマップを作らずに 「XML データ」で 保存しようとした |
先に「ソース」でマップを 作る/または「XML スプレッドシート 2003」で保存 |
| 「エクスポート」が 押せない・反応しない |
マップされたセルが 1つも無い |
「ソース」で要素をセルへ ドラッグしてから再実行 |
| 「ファイルの種類」に 「XML データ」が出ない /選べない |
XML データはマップ前提 のためマップが無いと 出ない・グレーになる |
開発タブで先にマップを作る /まず「XML スプレッドシート 2003」を探す |
| 大きい表で残る行数が 想定外になる |
1シート 65,536行を超えている |
公式はxlsxのまま扱うか 超過行の削除を推奨 (マップは保持される) |
いちばん多いのが、XMLの対応付けが無いまま「XML データ」で保存しようとして出るエラーです。「XML データ」形式はXMLマップを前提にしているので、マップを作らずに保存しようとすると、対応付けが含まれていないという内容のメッセージが出ます。マップ作りが面倒なら、無理せず「XML スプレッドシート 2003」で保存するのが現実的です。
また、1つのシートで65,536行を超える大きな表は、公式仕様により書き出しに制限がかかり、残る行数が想定外になることがあります。公式はxlsxのまま扱うか、超過した行を削除してから書き出すことを勧めています。データ連携の相手側がxlsxを読めるなら、そのまま渡すほうが早いこともあります。
変換したXMLを後から編集したいとき
書き出したXMLを「あとで中身を直したい」というのもよくある相談です。XMLファイルはただのテキストなので、メモ帳でも開けて、タグの間の文字を書き換えれば編集できます。ただ、タグの数が多いと目がチカチカしますし、<氏名>と</氏名>の対応を1つでも崩すとファイルが壊れて読めなくなります。手作業での直接編集はおすすめしません。
安全なのは、元のExcelファイルのほうでデータを直し、もう一度XMLに書き出し直すやり方です。XMLマップを作ってあれば、セルを修正して「エクスポート」を押すだけで、新しいXMLが作れます。最初にExcel側を「正本」と決めておくと、編集のたびに迷わずに済みます。これは現場でデータ管理をしていた頃から、いちばんトラブルが少なかったやり方です。
新しいExcelやMicrosoft 365でも手順は同じか
「うちのExcelは新しいけど大丈夫?」という心配もよく聞きます。結論から言うと、Excel 2016・2019・2021・Microsoft 365のいずれでも、ここで説明した手順はほぼ同じです。「開発」タブの出し方も、「ソース」「エクスポート」ボタンの場所も共通です。
注意したいのは、ごく古いExcel(2003以前)だけ操作が大きく異なる点と、「XML スプレッドシート 2003」という形式名がそのまま残っている点です。「2003」と付いていますが新しいExcelでも選べる現役の形式なので、名前に惑わされないでください。リボンのデザインがバージョンで多少違っても、やることは変わりません。
変換したXMLファイルの使い道
せっかくXMLにしたなら、どこで役立つのかも知っておくと安心です。XMLは「異なるソフト同士でデータをやり取りするための共通語」のような形式です。
代表的なのは、別の業務システムへのデータ移行です。Excelで管理していた顧客名簿や在庫データを、XMLにしてから新しいシステムに取り込む、という流れはよくあります。ほかにも、データベースへの一括インポートや、Webサービスとのデータ受け渡しにも使われます。タグで意味が明示されているので、受け取る側が「これは氏名」「これは電話番号」と機械的に判別できるのが強みです。
逆に、XMLファイルをExcelに読み込みたい場合は別の手順になります。Excelで開く・取り込む方法は、姉妹記事の「ExcelでXMLファイルを簡単に読み込む方法」で詳しく解説していますので、あわせてご覧ください。
XMLとCSV、どちらで渡すべきか
最後に、現場で本当に役立つ話を1つ。「データを渡したいだけ」なら、XMLよりCSVのほうが向いている場面が実は多いです。連携先に振り回されないためにも、両者の違いを押さえておきましょう。
| 比べる点 | XML | CSV |
|---|---|---|
| データの構造 | 入れ子・階層を 表現できる |
表(行と列)のみ 階層は苦手 |
| ファイルの 分かりやすさ |
タグで意味が明示され 機械が判別しやすい |
値をカンマで 並べるだけで軽い |
| Excelでの 作りやすさ |
マップ作成が必要で やや手間 |
名前を付けて保存で すぐ作れる |
| 向いている相手 | 決まった構造を 求めるシステム連携 |
表をそのまま 受け渡したいとき |
連携先から「XMLで」と指定されていないなら、まずCSVで足りないか確認するのがおすすめです。単純な表の受け渡しでXMLマップ作りに何時間も費やすのは、たいてい遠回りです。逆に、相手が.xsdスキーマを指定してくるようなきっちりしたシステム連携では、素直にXMLデータ形式で出すのが正解です。CSVでの保存方法は別記事でも触れていますので、用途に合わせて選んでください。
出典・参考にした公式情報
この記事の手順と仕様は、マイクロソフトの公式サポートで裏取りしています。一次情報をご自身でも確認したい方は、以下をご覧ください。
ExcelでのXMLの全体像は、Microsoft サポート「Excel での XML の概要」に、書き出しの具体手順は「XML データをエクスポートする」にまとまっています。XML スプレッドシート 2003 形式で失われる機能の一覧は「ブックを XML スプレッドシート 2003 ファイルとして保存すると失われる機能」で確認できます。

XML変換で迷ったときは
ExcelのデータをXMLにしたいけれど、「XMLデータ」と「XMLスプレッドシート2003」のどちらを選べばいいか分からない・エラーで保存できない——そんなときは、何のためにXMLにするのか(システムへの取り込みか・データの受け渡しか)を教えていただければ、合う形式と手順を一緒に確認します。むやみに形式を試す前に、目的に合うやり方を整理するのが近道です。
よくある質問
ExcelをXMLに変換する一番簡単な方法は
「ファイル」→「名前を付けて保存」で、ファイルの種類を「XML スプレッドシート 2003 (*.xml)」にして保存する方法です。開発タブもXMLの知識もいらず、クリックだけで完結します。
XMLデータとXMLスプレッドシート2003はどう違うのか
XMLスプレッドシート2003はセルの値や書式をまるごと記録した形式で、マップ不要・Excelで開き直せます。XMLデータはマップで対応付けた要素だけを抜き出す構造化XMLで、他システムとの連携向けです。
XMLに変換できないと言われるのはなぜか
「XML データ」形式はXMLマップが前提のため、マップを作らずに保存すると「XML の対応付けが含まれていない」といった内容のエラーが出ることがあります。先に開発タブの「ソース」でマップを作るか、「XML スプレッドシート 2003」で保存してください。
開発タブが見つからないときはどうするのか
標準では非表示です。「ファイル」→「オプション」→「リボンのユーザー設定」で「開発」にチェックを入れて「OK」を押すと、リボンに表示されます。
マクロやグラフを含むブックをXMLにしても大丈夫か
XML スプレッドシート 2003 形式では、マクロ(VBA)・グラフ・図形・パスワード保護などは保存されません。素のデータは残りますが、元のxlsxは別に残し、コピーを変換するのが安全です。
この記事は、元社内システム担当として10年以上Excelのデータ運用に携わってきた uri uri が、Excel 2019で実際に操作を確認しながら執筆しました(最終確認日 2026年6月25日)。


コメント