Excel VBAのファイル形式|.xlsxと.xlsmの違いを解説

スポンサーリンク

「Excelのファイルって、いくつか種類があるけど何が違うの?」と疑問に思ったことはありませんか。

ファイルのアイコンは見た目がほとんど同じなので、普段はあまり気にしない方も多いと思います。しかし、VBAやマクロを使うならファイル形式の違いを知っておくことは必須です。

実は私自身、過去にファイル形式を同僚に変更されてしまい、何時間もかけて作ったマクロがすべて消えてしまったという苦い経験があります。

この記事では、Excelの主なファイル形式4種類の違いと、VBAを使う際に知っておきたい注意点をわかりやすく解説します。これを読めば、ファイル形式で失敗することはなくなりますよ。

Excelの主なファイル形式4種類を比較

まずは、よく使われるExcelファイル形式を一覧で確認しましょう。ビジネスで使うExcelファイルは、ほとんどがこの4種類のどれかです。

ファイル形式拡張子マクロ保存主な用途
Excel ブック.xlsx不可通常のExcel作業(標準形式)
Excel マクロ有効ブック.xlsm可能VBA・マクロを使う場合(推奨)
Excel 97-2003 ブック.xls可能古いファイルとの互換性
Excel バイナリ ブック.xlsb可能大容量ファイルの軽量化

VBAやマクロを使うなら、.xlsm形式で保存するのが鉄則です。ここをおさえておけば、マクロが消えてしまうトラブルを防げます。

それでは、各ファイル形式の特徴を詳しく見ていきましょう。

.xlsx(Excelブック)の特徴と用途

.xlsxは、Excel 2007以降で標準的に使われているファイル形式です。新規ブックを作成して、何も設定を変えずに保存すると、この.xlsx形式で保存されます。

.xlsxの特徴

  • Excel 2007以降の標準形式
  • データ入力、計算、グラフ作成など通常のExcel作業に最適
  • マクロ(VBAコード)を保存することはできない
  • 行数の上限は1,048,576行、列数の上限は16,384列(XFD列)

.xlsxを使う場面

マクロを使わない通常のExcel作業であれば、この.xlsx形式のままで問題ありません。多くの会社で日常的に使われているのがこの形式です。

ただし、マクロを含むファイルを.xlsx形式で保存すると、VBAコードが完全に削除されます。保存時に警告ダイアログが表示されますが、うっかり「はい」を押してしまうと取り返しがつきません。

.xlsm(マクロ有効ブック)の特徴と用途

.xlsmは、.xlsxにマクロの保存機能を追加したファイル形式です。VBAやマクロを使うなら、このファイル形式を選びましょう。

.xlsmの特徴

  • マクロ(VBAコード)の保存が可能
  • .xlsxと同じExcel 2007以降の機能をすべて使用できる
  • ファイルを開くときに「マクロを有効にする」かどうかの確認ダイアログが表示される
  • アイコンに「!」マークがついている(.xlsxとの見分けポイント)

.xlsmを使う場面

これからマクロを作成する場合は、.xlsm形式で保存するのがベストな選択です。VBAで業務を自動化したい方は、まずこのファイル形式を覚えておいてください。

すでにVBAコードを書いたファイルがある場合も、.xlsm形式になっているか確認しておくと安心です。.xlsxのまま保存してしまうと、せっかく書いたコードが消えてしまいます。

VBAを使い始めるなら、開発タブの表示設定も必要です。設定方法は「Excel VBAの開発タブの表示方法とVBEの起動方法を初心者向けに解説」で詳しく解説しています。

.xls(Excel 97-2003ブック)の特徴と注意点

.xlsは、Excel 2007よりも前のバージョンで標準だったファイル形式です。現在では古い形式として扱われています。

.xlsの特徴

  • Excel 97から2003までの標準形式
  • マクロの保存が可能
  • 行数の上限が65,536行、列数の上限が256列(.xlsxよりも大幅に少ない)
  • ファイルサイズの制限も厳しい

.xlsを使う場面

現在の業務で新しく.xls形式のファイルを作成する必要はほとんどありません。既存の古いファイルを開く場面で見かける程度です。

もし社内に.xls形式のファイルが残っている場合は、.xlsxや.xlsmに変換しておくことをおすすめします。行数・列数の制限が緩和されるだけでなく、最新のExcel機能をフル活用できるようになります。

.xlsb(バイナリブック)の特徴と注意点

.xlsbは、バイナリ形式でデータを保存する特殊なファイル形式です。普段の業務ではあまり見かけませんが、特定の場面で役立ちます。

.xlsbの特徴

  • バイナリ形式で保存するため、ファイルサイズが小さくなる
  • 大量のデータを含むファイルでは開閉の速度も向上する
  • マクロの保存が可能
  • ファイルの中身がバイナリデータなので、XMLベースの.xlsx/.xlsmと比べて構造の透明性が低い

.xlsbを使う場面

数万行を超えるような大容量データを扱う場合に、ファイルサイズの削減効果を期待して使うことがあります。

ただし、メールで送受信するときにセキュリティソフトにブロックされる可能性がある点には注意が必要です。特別な理由がなければ、.xlsxや.xlsmを使っておくのが無難でしょう。

VBAで使うなら.xlsm|ファイル形式の変更方法

「いま使っているファイルを.xlsmに変えたい」という場合の手順を紹介します。操作はとてもシンプルです。

.xlsxから.xlsmに変更する手順

  1. 対象のExcelファイルを開く
  2. 「ファイル」タブをクリック
  3. 「名前を付けて保存」を選択
  4. 保存先のフォルダを選ぶ
  5. 「ファイルの種類」のドロップダウンを開く
  6. 「Excel マクロ有効ブック (*.xlsm)」を選択
  7. 「保存」をクリック

これだけで、ファイル形式が.xlsmに変わります。元の.xlsxファイルは残るので、安心して操作してください。

ファイル形式を変更するときの注意点

  • .xlsmから.xlsxに変更すると、マクロ(VBAコード)が完全に削除されます。この操作は元に戻せないので、十分に注意してください
  • .xlsから.xlsmに変換する場合も同じ手順で可能です
  • Microsoft 365やExcel 2021の「自動保存」機能がオンになっていると、ファイル形式の変更時に追加の確認が入ることがあります

ファイル形式を変更したあとは、VBE(Visual Basic Editor)でマクロが正しく保存されているか確認しておくと安心です。

VBAやマクロの基本的な仕組みについては「Excel VBAとマクロの違いとは?初心者向けにわかりやすく解説」もあわせて読んでみてください。

よくあるトラブルと対処法

ファイル形式に関連して、初心者がつまずきやすいトラブルをまとめました。事前に知っておけば焦らずに対処できます。

マクロが消えてしまった

原因: .xlsm形式のファイルを.xlsx形式で上書き保存してしまった場合に発生します。

対処法: 残念ながら、一度.xlsxで保存してしまうとVBAコードは復元できません。以下の予防策を心がけましょう。

  • 保存時に「この形式ではマクロが保存できません」という警告が出たら、必ず「いいえ」を選ぶ
  • 共有ファイルの場合は、ファイル名に「マクロあり」と明記しておく
  • 大切なマクロは定期的にバックアップを取る(VBEからコードをテキストファイルにエクスポート)

マクロが実行できない

原因: セキュリティ設定でマクロがブロックされている可能性があります。

対処法: 「ファイル」→「オプション」→「セキュリティセンター」→「セキュリティセンターの設定」→「マクロの設定」から、「警告を表示してすべてのマクロを無効にする」を選択します。これで、ファイルを開くたびにマクロを有効にするか選べるようになります。

ファイル形式がどれかわからない

対処法: ファイルのアイコンだけでは見分けにくい場合は、以下の方法で確認できます。

  • エクスプローラーで拡張子を表示する設定にする
  • Excelの「ファイル」→「情報」でファイル形式を確認
  • タイトルバーに表示されるファイル名の拡張子を確認

VBAの基本的な用語や構造については「Excel VBAのプロジェクト・モジュール・プロシージャとは?」で解説しています。

まとめ

この記事では、Excelの主なファイル形式4種類の違いと、VBAを使う際の注意点を解説しました。

覚えておきたいポイント

  • 通常のExcel作業には.xlsx(標準形式)を使う
  • VBA・マクロを使うなら.xlsm(マクロ有効ブック)が必須
  • .xlsは旧形式なので、新規作成には使わない
  • .xlsbは大容量ファイル向けの特殊な形式
  • .xlsmを.xlsxで保存するとマクロが消える(最重要)

ファイル形式の違いは地味なテーマですが、これを知っているかどうかで、マクロが消えるトラブルを未然に防げます。VBAを学び始める第一歩として、まずは.xlsm形式でファイルを保存する習慣をつけてみてください。

VBAの学習をこれから始める方は「これで間違いない!Excel VBAを学習する順番と心構え」も参考にしてみてください。また、マクロの記録機能を使えばコードを書かずに自動化を体験できます。「Excelのマクロの記録の使い方|ボタン操作だけで自動化する方法」もあわせてチェックしてみてくださいね。

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