こんにちは!今回はExcel VBAマクロの保存形式についての記事です。
ということに気付きました。Excel入りマクロを保存しようとすると、以下のメッセージが出てきます。
一体なぜ?どうしたらいいの?という事をまとめていきます。それではいってみましょう!
結論:マクロはxlsx形式では保存できない
結論から言うと、VBAマクロ入りの場合は「.xlsx」形式では保存できません。
ざっくり言うとExcel 2007以降は、マクロなしの場合は「xlsx」形式を、マクロ入りの場合は「.xlsm」形式で保存します。
Excel2003までは「.xls」という形式で、マクロ無・有とどちらでも保存できたので、「.xlsx」でもマクロを含めることが出来るような印象を持たれがちなのかな?と思いました。
拡張子それぞれのざっくりとした特徴
拡張子については、以下のリンク先に特徴がまとまっていました。
Excel拡張子ざっくりとまとめ
.xlsについて
「.xls」形式は、Excel2003までのファイル形式です。マクロなしもマクロありもどちらもこの拡張子となります。
.xls形式は、Excel2019などが主流になっている今でも見かけますよね。.xls形式でも互換性があるので、今のバージョンのExcelでも開き編集することができます!
.xlsxについて
「.xls」形式は、Excel2007以降から採用されたファイル形式です。.xls形式より扱える行列の上限数などが変わっています。マクロを含めることができず、マクロ入りファイルをこの形式で保存しようとすると”使用できません”というメッセージが出ます。
.xlsmについて
「.xlsm」形式は、Excel2007以降から採用されたファイル形式です。マクロ入りExcelファイルを保存する際はこの形式で保存するようになりました。
.xlsxと.xlsmに分かれた理由
「.xls」はマクロなしでもありでも使えて良かったのに!と思われる方もいらっしゃるかもしれませんね。ですが、セキュリティの観点からは、ファイルの拡張子で明示的にマクロ入りかどうか分かった方が断然良いです。
といっても、今はネット上からダウンロードしてきたマクロ入りの「.xls」を開いたとしても、いきなりのマクロ実行はなされず有効化するかどうかの確認ポップアップが出てきます。
さいごに
いかがだったでしょうか。同じような疑問を持たれた方の参考になれば幸いです。
Excel2003のサポートは終了していますので、ここは大人しくマクロ入りの場合は.xlsxではなく.xlsm形式で保存するのが良いかなと個人的には思います。それではまた!