Excelファイルを共有するとき、古い環境で開けるxls形式へ戻したい場合や、容量・機能面で扱いやすいxlsx形式へ変換したい場合があります。
ただし、エクスプローラー上で拡張子だけを書き換えても、ファイル内部の保存形式は変わりません。
Excelの保存機能を使って正しい形式へ変換し、マクロや数式、書式の互換性を確認することが大切です。
xlsはExcel 97から2003向けの古い形式です。
xlsxはExcel 2007以降で標準となったXMLベースの形式です。
マクロを残す場合はxlsxではなくxlsm形式を選ぶ必要があります。
この記事では、1ファイルずつの変換手順、複数ファイルを一括変換する考え方、VBAを使う場合の注意点まで順に解説します。
エクセルでxlsとxlsxを変換する保存形式
それではまず、Excelの名前を付けて保存からxlsとxlsxを相互に変換する基本操作について解説していきます。
| 変換前 | 保存形式 | 変換後 |
|---|---|---|
| 売上管理.xls | Excel ブック | 売上管理.xlsx |
| 集計表.xlsx | Excel 97-2003 ブック | 集計表.xls |
xlsxへ変換する名前を付けて保存
xlsファイルをxlsxへ変換する場合は、対象のブックをExcelで開き、画面左上のファイルタブをクリックします。
表示された画面から名前を付けて保存を選び、保存先としてこのPCまたは任意のフォルダーを指定しましょう。
保存ダイアログのファイルの種類では、Excel ブックを選択します。
Excel ブックを指定すると、通常はファイル名の末尾がxlsxとなります。
ファイル名を確認して保存をクリックすれば、xlsx形式の新しいファイルが作成されます。

元のxlsファイルを残したいときは、保存前にファイル名を変更して別名保存する方法が安全です。
たとえば売上管理.xlsを売上管理_最新版.xlsxとして保存すれば、変換前と変換後を比較できます。
上書き確認が出たときは、既存ファイルを置き換えてよいかを確認してください。
変換直後は、数式が計算されているか、シート名や印刷範囲が維持されているかも確認しましょう。
特に古いxlsでは、入力規則、条件付き書式、グラフ、外部リンクが使われている場合があります。
xlsxでは利用できる機能が増える一方、古いファイルに含まれていた設定が意図どおりに見えるとは限りません。
保存後に一度ファイルを閉じ、作成したxlsxを開き直すと、実際に変換できているかを確実に判断できます。
Windowsのエクスプローラーで拡張子を表示する設定にしておくと、ファイル形式を取り違えにくくなります。
変換先がxlsxなら、ファイルの種類はExcel ブックを選択します。
ブック名を変えて保存すると、元ファイルを保管したまま検証できます。
xlsへ変換する互換性チェック
xlsxをxlsへ変換する場合も、ファイルタブから名前を付けて保存を開きます。
ファイルの種類の一覧からExcel 97-2003 ブックを選ぶと、保存するファイルの拡張子がxlsへ切り替わります。
保存ボタンを押すと、互換性チェックに関するメッセージが表示されることがあります。

この警告はエラーではなく、古いExcelで使えない機能が失われる可能性を知らせる重要な案内です。
内容を確認し、問題がなければ続行を選択して保存します。
xls形式は古いバイナリ形式であり、xlsxと比べて扱える行数や列数が少ないという制約があります。
xlsxでは1シートあたり1,048,576行、16,384列まで扱えますが、xlsでは65,536行、256列までです。
そのため、大量データを含むxlsxをxlsに変換すると、範囲外のデータが保存されないおそれがあります。
テーブル機能、スライサー、一部の条件付き書式、新しいグラフ形式なども、xlsでは完全に保持できないことがあります。
共有先が古いExcelを使っているためxlsが必要な場合でも、作業用の原本はxlsxで保管する運用が向いています。
原本をxlsxのまま残せば、機能が失われていない状態へ戻りやすくなります。
変換後のxlsを開いたら、最終行付近のデータ、計算結果、印刷プレビュー、グラフの表示を確認してください。
xlsへ保存するときは、互換性チェックの内容を読んでから続行します。
大容量データや新しいExcel機能を使うブックでは、xlsx原本の保管が重要です。
【操作のポイント】xlsへの変換は、共有用コピーを作る用途に絞ると、元データの欠落や書式崩れに備えやすくなります。
拡張子だけを変更しないファイル形式
続いては、拡張子の書き換えとExcelでの形式変換の違いを確認していきます。
| 操作 | 内部形式 | 結果 |
|---|---|---|
| Excelで名前を付けて保存 | 変換される | 正しい形式で保存 |
| 拡張子を直接変更 | 変換されない | 警告・破損の原因 |
エクスプローラーでの拡張子変更
Windowsのエクスプローラーでは、ファイル名の末尾にあるxlsやxlsxを書き換えることができます。
しかし、この操作はファイルの呼び名を変えるだけで、内部に記録されたデータ構造を変換する処理ではありません。
たとえば古いxlsファイルの末尾をxlsxに変更しても、内容はxls形式のままです。
拡張子だけを変更したファイルをExcelで開くと、ファイル形式と拡張子が一致しないという警告が表示されることがあります。
警告を無視して開けるケースもありますが、共同作業者や別のシステムで正常に読み込める保証はありません。
メール添付、クラウドストレージ、業務システムへのアップロードでは、拡張子と実体の不一致がエラーにつながることもあります。
正しい変換が必要なら、必ずExcelで対象ファイルを開き、名前を付けて保存から形式を選択してください。
ファイルが開けない場合は、元の拡張子へ戻してからExcelで開けるかを確認します。
誤って上書きしてしまった場合に備え、操作前にファイルをコピーしておくと安心です。
拡張子を表示していない環境では、ファイル名を変更したつもりで、実際にはファイル名の途中へ文字を追加している場合もあります。
エクスプローラーの表示メニューからファイル名拡張子を有効にし、末尾を目視で確認する習慣が役立ちます。
拡張子は形式を示す目印です。
目印だけを変えても、ブックの保存形式は変わりません。
ファイル形式の不一致と復旧手順
形式と拡張子が一致しない警告が出た場合は、まずファイルの入手元と本来の形式を確認します。
自分で拡張子を変更した覚えがあるなら、元の末尾へ戻すだけで正常に開ける場合があります。

たとえば本来xlsだったファイルをxlsxへ変更したなら、エクスプローラーでxlsへ戻してから開き直します。
その後、Excelの名前を付けて保存で改めてxlsxを選択すれば、正規の変換になります。
開く前にコピーを作成し、原本と復旧用ファイルを分けておくことが安全です。
Excelがファイルを修復して開いた場合は、修復ログが表示されることがあります。
ログには削除または修復されたレコードの情報が記載されるため、数式、図形、名前定義などに影響がないかを確認しましょう。
業務で使うブックでは、変換後のファイルを別のPCや共有先のExcelでも開いて確認すると確実です。
特にPower Query、ピボットテーブル、外部参照、フォームコントロールを含むブックは、見た目だけでは異常を判断しにくいことがあります。
ファイルサイズが極端に小さくなった、シート数が減った、数式が値に変わったといった変化があれば、保存を中止して原本からやり直してください。
クラウド上の共有ファイルでは、同期が完了する前に別形式へ保存すると競合コピーが作られることもあります。
変換中はOneDriveやSharePointの同期状態も確認し、保存先を明確にしておきましょう。
【操作のポイント】不一致警告が出たファイルは、拡張子を元へ戻し、Excelの保存機能で再変換する流れが基本です。
複数ファイルを一括変換するマクロ
続いては、フォルダー内のExcelファイルをVBAで一括変換する方法を確認していきます。
| ファイル名 | 変換前 | 出力先 |
|---|---|---|
| 売上.xlsx | xlsx | 変換済み\売上.xls |
| 在庫.xlsx | xlsx | 変換済み\在庫.xls |
VBAによるxlsxからxlsへの一括保存
同じ形式のファイルを何十件も変換する場合は、VBAを利用すると作業時間を短縮できます。
ただし一括処理は複数のファイルを扱うため、最初にテスト用フォルダーとバックアップを準備しましょう。
以下の例では、指定フォルダー内にあるxlsxファイルを開き、変換済みというサブフォルダーへxls形式で保存します。
Sub ConvertXlsxToXls()
Dim folderPath As String
Dim outputPath As String
Dim fileName As String
Dim wb As Workbook
folderPath = "C:\ExcelData\"
outputPath = folderPath & "変換済み\"
If Dir(outputPath, vbDirectory) = "" Then MkDir outputPath
fileName = Dir(folderPath & "*.xlsx")
Do While fileName <> ""
Set wb = Workbooks.Open(folderPath & fileName)
wb.SaveAs Filename:=outputPath & Replace(fileName, ".xlsx", ".xls"), FileFormat:=56
wb.Close SaveChanges:=False
fileName = Dir
Loop
End Sub
folderPathには、変換対象のxlsxが入っているフォルダーのパスを指定します。
Windowsのパスは末尾にバックスラッシュを付ける必要があります。
outputPathは変換後のxlsを保存する場所であり、この例では元フォルダー内に変換済みフォルダーを作成します。
FileFormatの56はExcel 97-2003 ブック、つまりxls形式を表す値です。
Dir関数は条件に合うファイル名を順番に取得し、Do WhileからLoopまでの処理を繰り返します。
対象ブックはWorkbooks.Openで開かれ、SaveAsで別形式へ保存されたあと、元ファイルを変更せずに閉じられます。
既に同名のxlsが出力先にある場合は、上書き確認が表示される可能性があります。
本番実行前には、2、3個のコピーで結果を確認し、数式や書式に問題がないことを確認してください。
FileFormatが56ならxls形式です。
xlsx形式へ保存する場合はFileFormatに51を指定します。
マクロ実行前の保存先とエラー対策
マクロを登録したブックはxlsxでは保存できないため、拡張子をxlsmにして保存します。
xlsmはマクロを保持できる形式であり、xlsxへ保存するとVBAコードが削除されます。
変換用マクロと対象ファイルを同じフォルダーに置く場合は、Dir関数が変換用ブックまで対象にしないよう、拡張子の条件を明確にします。
xlsxのみを対象とする指定なら、xlsmの変換ツール自身は処理されません。
パスに誤りがあると、ファイルが見つからない、または保存先が存在しないというエラーになります。
フォルダー名をコピーして貼り付け、最後のバックスラッシュを確認すると入力ミスを減らせます。
パスワード付きブック、読み取り専用のブック、他の利用者が開いている共有ファイルでは、保存に失敗する場合があります。
このようなファイルはエラー処理を加えるか、一覧から除外して個別に変換するほうが安全です。
また、xlsxからxlsへの一括変換では、互換性チェックの警告が処理を止めることがあります。
大量処理の前には必ず少数のファイルで試し、変換できないファイルの種類を把握しておきましょう。
一括変換は、元ファイルと出力先フォルダーを分ける運用が基本です。
変換ツールはxlsmで保存し、対象のxlsxと区別します。
【操作のポイント】VBAでの一括処理は便利ですが、互換性の確認を済ませたコピーだけで実行すると安全性が高まります。
マクロと数式を残す保存形式
続いては、VBA、関数、外部リンクを含むブックで選ぶべき保存形式について確認していきます。
| 用途 | 推奨形式 | 注意点 |
|---|---|---|
| 通常の集計表 | xlsx | VBAは保存できません |
| VBA付きブック | xlsm | マクロ有効形式です |
| 旧Excelとの共有 | xls | 機能制限を確認します |
xlsxとxlsmの使い分け
xlsxは一般的なExcelブックに適した形式ですが、VBAのマクロを保存できません。
マクロを含むファイルをxlsxとして保存しようとすると、VBAプロジェクトが失われる可能性を知らせる警告が表示されます。
マクロを残す必要があるブックは、必ずExcel マクロ有効ブックであるxlsm形式を選びます。
保存時のファイルの種類でExcel マクロ有効ブックを選択すると、末尾がxlsmになります。
xlsmはxlsxと同じく新しいExcel形式を基盤としていますが、VBAプロジェクトを格納できる点が異なります。
マクロ付きかどうかをファイル名だけで判断できるため、受け取る側も実行前に注意しやすくなります。
一方で、マクロのない集計表までxlsmで保存する必要はありません。
不要なマクロ有効形式を増やすと、受信者が警戒したり、メールシステムで添付が制限されたりする可能性があります。
通常のデータ集計、入力表、グラフだけのブックはxlsxを選び、VBAを実行するブックだけをxlsmに分ける考え方がわかりやすい運用です。
会社のセキュリティ方針によっては、xlsmのダウンロードやメール添付に追加の確認が必要になる場合もあります。
共有前には、マクロが本当に必要か、マクロなしのxlsxで配布できないかも検討しましょう。
xlsxは通常のExcelブック向けです。
xlsmはVBAを保持するマクロ有効ブック向けです。
数式と外部参照の確認項目
形式を変換したあとには、セルに表示された値だけでなく、数式バーに残っている式も確認する必要があります。
たとえば売上金額を計算するセルC2に、数量A2と単価B2を掛ける式を入力する場合、数式は次のようになります。
=A2*B2
この式ではA2が数量、B2が単価、アスタリスクが掛け算を表します。
1行目をヘッダーとし、2行目から商品データが始まる表なら、C2へ式を入力してからフィルハンドルを下へドラッグすると、各行に対応した式をコピーできます。
変換後は、数式セルが値に置き換わっていないか、参照先がずれていないかを確認しましょう。
別ブックを参照する数式では、保存先の変更によってリンク先のパスが変わる場合があります。
ブックを開いたときにリンク更新の確認画面が出たら、リンク先が正しいかを確認してから更新します。
ピボットテーブル、Power Query、データ接続を利用している場合も、更新できるかを試してください。
xls形式へ変換した場合は、古い形式で対応していない関数や機能が警告対象になることがあります。
特に動的配列関数や新しい検索関数を使ったブックは、共有先のExcelバージョンで正しく利用できるかを検証する必要があります。
重要な帳票では、変換前後の合計値を別シートで比較し、想定外の差異がないことを確認すると安心です。
【操作のポイント】形式を変えたら、数式バー、外部リンク、合計値の三つを確認すると不具合を見つけやすくなります。
まとめ エクセルの拡張子変更とxls・xlsx変換
エクセルでxlsとxlsxを相互に変換するときは、ファイル名の末尾を直接書き換えるのではなく、名前を付けて保存から正しいファイル形式を選択します。
xlsxへ変換する場合はExcel ブックを、xlsへ変換する場合はExcel 97-2003 ブックを選ぶことが基本です。
xlsへ保存すると、行数・列数や新しい機能に制限があるため、互換性チェックの内容を確認しましょう。
マクロを含むブックはxlsxではなくxlsmで保存し、VBAコードが消えないように管理します。
複数ファイルを変換する場合はVBAによる一括処理も使えますが、原本と出力先を分け、少数のテストで結果を確認してから実行することが大切です。
変換後は、数式、書式、グラフ、外部リンク、マクロの動作を確認し、必要に応じて元ファイルへ戻せるようバックアップを残しておきましょう。