当サイトの記事にはプロモーションが含まれています。

ExcelをXMLに変換する方法|2つのやり方と保存形式の違いをやさしく解説

パソコンパソコン・スマホ教室
スポンサーリンク

「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化できます。

  1. XMLにしたいデータが入ったExcelファイルを開きます。
  2. 左上の「ファイル」をクリックし、「名前を付けて保存」を選びます。
  3. 「参照」で保存先を開き、「ファイルの種類」のプルダウンをクリックします。
  4. 一覧から「XML スプレッドシート 2003 (*.xml)」を選びます。
  5. ファイル名を付けて「保存」をクリックします。
Excel 2019の名前を付けて保存でファイルの種類にXMLデータとXMLスプレッドシート2003が並ぶ実機画面
実際にこのパソコンのExcel 2019の「名前を付けて保存」で、ファイルの種類を開いた画面です。「XML データ (*.xml)」と「XML スプレッドシート 2003 (*.xml)」が並びます。ただし「XMLデータ」で保存するにはXMLマップが必要で、無いとエラーになります。

これでデータがXMLとして書き出されます。出来たファイルをメモ帳で開くと、セルの中身がタグで囲まれた形になっているのが分かります。Excelで開き直せば元の表として表示できるので、受け渡しにも使いやすい形式です。

ただし、この形式は手軽な代わりに残せない機能があります。これは仕様で、変換のたびに警告が出ます。何が消えるのか、次で正直にお伝えします。

XML スプレッドシート 2003で保存すると消えるもの

マイクロソフト公式が明記している、この形式で保存されない(失われる)主な機能です。Excelで開き直したときに「あれ、無くなってる」と慌てないよう、先に知っておきましょう。

失われる主な機能 補足
グラフ・図形・画像 PivotChartや描画オブジェクトも対象
ピボットテーブルの
並べ替え・絞り込み機能
表のデータ自体は残る
マクロ(VBAプロジェクト) コードは保存されない
スパークライン セル内ミニグラフは消える
シートやブックの
パスワード保護
保護設定は引き継がれない
アウトライン(グループ化)・
シナリオ・ユーザー定義関数
のカテゴリ
—

数値や文字といった素のデータは残りますが、グラフやマクロを含むブックをこの形式にすると、それらは捨てられます。大事なファイルは元のxlsxを別に残したうえで、コピーをXMLに変換するのが安全です。

開発タブとXMLマップで本格的にXMLデータを書き出す方法

他システムやデータベースに読み込ませる、決まった構造のXMLが必要な場合は、こちらの「XML データ」形式を使います。この方法では先に「XMLマップ」を作る必要があり、そのために「開発」タブを表示しておきます。

開発タブが無いときの出し方

リボンに「開発」タブが見当たらない方が多いと思います。標準では非表示なので、最初に出しておきましょう。実際にこのパソコンのExcel 2019で操作した手順がこちらです。

  1. 「ファイル」→「オプション」を開きます。
  2. 左側の「リボンのユーザー設定」をクリックします。
  3. 右側のリストで「開発」にチェックを入れます。
  4. 「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マップと呼びます。

  1. 「開発」タブをクリックし、「XML」グループの「ソース」を押します。
  2. 画面右に「XML ソース」作業ウィンドウが開きます。下の「XML の対応付け」から、用意したスキーマ(.xsd)を追加します。
  3. ツリー表示された要素を、対応するセル(列の見出しなど)へドラッグして対応付けます。
  4. これで「マップされたセル」が作られ、書き出しの準備が整います。

XML データとして書き出す

マップができたら、いよいよ書き出しです。公式の手順どおり進めます。

  1. 「開発」タブの「エクスポート」をクリックします。
  2. 対応付け(XMLマップ)の選択を求められたら、使うマップを選んで「OK」を押します。
  3. 保存先とファイル名を指定し、「エクスポート」をクリックします。

もう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 ファイルとして保存すると失われる機能」で確認できます。

Microsoft公式サポート「Excel での XML の概要」ページ
出典=Microsoft公式サポート「Excel での XML の概要」。XMLマップやエクスポートの考え方が説明されています。画像をクリックすると公式ページが開きます。

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日)。

この記事を書いた人
この記事を書いた人

企業の情報システム部門で10年以上、PC・アカウント・社内ネットワーク・Microsoft 365/Google Workspace運用を担当。年間数百件の問い合わせ対応(PC不調、メール送受信、Excel/Word資料、Teams会議、スマホ連携など)を通じて、初心者がつまずくポイントを「再現→原因切り分け→最短解決」の手順に落とし込んできました

現場や身近で実際に起きたトラブルをベースに、手順だけでなく「なぜそうなるか」「失敗しやすい落とし穴」「安全な設定(セキュリティ)」まで含めて解説します。

uri uriをフォローする
スポンサーリンク
よかったらシェアしてね! /
uri uriをフォローする

コメント

タイトルとURLをコピーしました