Excelで古い形式の「.xls」ファイルを利用していると、新しい形式の「.xlsm」へ変更したい場面があります。特にVBAマクロを含むファイルの場合、「拡張子を.xlsmに変更したらマクロは今までと同じように動作するのか」と疑問に思う方も少なくありません。この記事では.xlsと.xlsmの違いや、マクロの互換性、変換時の注意点について詳しく解説します。
.xlsと.xlsmの違いとは
.xlsはExcel 97からExcel 2003まで使用されていたバイナリ形式のファイルです。一方、.xlsmはExcel 2007以降で採用されたOffice Open XML形式のマクロ有効ブックです。
どちらもVBAマクロを保存できますが、内部構造は大きく異なります。
| 拡張子 | 主な用途 | 対応Excel |
|---|---|---|
| .xls | 旧形式のブック | Excel 2003以前 |
| .xlsm | マクロ有効ブック | Excel 2007以降 |
現在のExcel環境では、.xlsmの利用が推奨されています。
単純に拡張子を変更しただけでは変換にならない
ファイル名を変更して「.xls」から「.xlsm」に書き換えただけでは、正しいファイル変換にはなりません。
例えば「sample.xls」をエクスプローラー上で「sample.xlsm」に変更しても、内部構造は.xlsのままです。そのためExcelがファイル形式の不一致を警告したり、正常に開けなかったりする場合があります。
正しく変換するには、Excelで開いた後に「名前を付けて保存」から「Excelマクロ有効ブック(*.xlsm)」を選択して保存する必要があります。
マクロは同じように動作するのか
VBAコードそのものは基本的に引き継がれるため、多くの場合は同じように動作します。
例えばセルの計算、自動入力、シート操作、ファイル出力などの一般的なマクロであれば、.xlsから.xlsmへ変換しても動作に大きな違いはありません。
ただし、使用しているExcelのバージョンや外部ライブラリへの依存状況によっては、一部の処理に影響が出ることがあります。
動作が変わる可能性があるケース
変換後にマクロの挙動が変わる場合もあります。
- 古いActiveXコントロールを使用している
- Excel 2003以前専用の機能を利用している
- 外部DLLやアドインを参照している
- ファイルパスを固定指定している
例えば、古い業務システム向けに作成されたVBAでは、Excelの新しいセキュリティ設定によって実行時エラーが発生することがあります。
変換後は必ず主要な機能をテストし、エラーが発生しないか確認することが重要です。
.xlsmへ移行するメリット
.xlsm形式は現在のExcel環境に最適化されており、ファイル容量の削減や互換性向上などのメリットがあります。
また、Microsoftによるサポートも現行形式が中心となっているため、将来的な運用を考えると.xlsmへの移行は有効な選択肢です。
特に新規開発や長期利用を予定しているマクロブックは、.xlsm形式で管理する方が安心です。
まとめ
.xlsファイルを正しい手順で.xlsm形式として保存した場合、多くのVBAマクロは従来と同じように動作します。
ただし、単純な拡張子変更では正式な変換にならず、一部の古い機能や外部連携処理では挙動が変わる可能性があります。変換後は十分な動作確認を行いながら運用することで、安全に.xlsm形式へ移行できるでしょう。


コメント