Excelで作成したブックを保存するとき、ファイル名の末尾に付く拡張子としてxlsxやxlsmが表示されます。
普段はxlsxで問題なく使えていても、VBAで作ったマクロを追加した途端に保存時の警告が出て、どちらを選ぶべきか迷うこともあるでしょう。
xlsmは、表・数式・グラフに加えて、マクロを含めたまま保存できるExcelブック形式です。
一方で、マクロが不要なファイルまでxlsmにすると、受け取る側が警戒したり、社内のセキュリティ設定で開きにくくなったりする場合があります。
xlsmはVBAマクロを保存できる形式です。
xlsxへ変換すると、マクロの内容は保存されません。
マクロを使う予定があるかどうかを基準に、保存形式を選びましょう。
この記事では、xlsmの意味、xlsxとの違い、保存時の選び方、形式を変換するときの注意点を順に確認します。
エクセルでマクロを保存するxlsm形式
それではまず、マクロを残したままExcelファイルを保存するためのxlsm形式について解説していきます。
| ファイル名 | 保存形式 | マクロ |
|---|---|---|
| 売上集計.xlsm | Excel マクロ有効ブック | 保存できる |
| 売上集計.xlsx | Excel ブック | 保存できない |
xlsmの拡張子と保存できる要素
xlsmは、Excel Macro-Enabled Workbookを表す拡張子であり、日本語の保存形式名では「Excel マクロ有効ブック」と表示されます。
通常のExcelブックで扱えるセルの値、数式、書式、条件付き書式、グラフ、テーブル、ピボットテーブル、シート保護などに加えて、VBAで作成したマクロをブック内部へ保存できる点が特徴です。
VBAとは、Excelの操作を自動化するために使われるVisual Basic for Applicationsという言語です。
たとえば毎月届くCSVを読み込み、不要な列を削除し、集計表を更新してPDFを出力する作業は、手順をマクロとして記録または作成しておけば、ボタン操作だけで進められます。
このような処理を含むブックをxlsxで保存しようとすると、ExcelはVBAプロジェクトを保持できません。
そのため、作成途中のマクロを失わないためには、最初からxlsmで保存する判断が重要です。
ファイル名の変更だけで拡張子をxlsxからxlsmへ書き換える方法は適切ではありません。
エクスプローラー上で末尾だけを変更しても、ブック内部の保存形式が切り替わるわけではなく、ファイルが開けなくなる原因になります。
Excelの「名前を付けて保存」画面で、ファイルの種類を選択して保存する流れが基本です。

VBAを含むかどうかは、Excelの「開発」タブにあるVisual Basicを開き、左側のプロジェクトに標準モジュール、ThisWorkbook、各ワークシートのコードがあるかで確認できます。
ただし、マクロの記録をした記憶がなくても、他の人から受け取ったブックにはVBAが入っているかもしれません。
保存形式を変更する前には、作業中のブックを複製しておくと、意図しない削除が起きた場合にも戻れます。
xlsmはマクロだけの専用ファイルではありません。
通常の表計算機能を保ちつつ、VBAコードも一緒に格納するためのExcelブック形式です。
【操作のポイント】マクロを含む可能性があるブックは、拡張子だけで判断せず、保存時のファイル種類とVBAプロジェクトの有無を確認します。
マクロ有効ブックとして保存する手順
作成中のブックをxlsmで保存するには、Excel左上の「ファイル」タブをクリックし、「名前を付けて保存」を選択します。
保存先を選ぶ画面が表示されたら、ファイル名の下にある「ファイルの種類」の一覧を開きます。
一覧の中から「Excel マクロ有効ブック(*.xlsm)」を選び、ファイル名を確認してから「保存」をクリックしましょう。
マクロを記録または編集した後は、通常の保存ボタンを押す前に、保存形式がxlsmになっているか確認することが大切です。
すでにxlsxとして保存されている場合でも、この手順で保存し直せばxlsmへ変換できます。
ただし、マクロを作成した後にxlsx形式のまま保存を実行すると、「このブックにはVisual Basicプロジェクトが含まれています」という趣旨の警告が表示されます。
ここで「いいえ」を選択して保存形式の選択画面へ戻り、xlsmを選ぶ必要があります。
警告に対して内容をよく読まずに「はい」を選ぶと、VBAプロジェクトを削除してxlsxとして保存する操作になるため注意しましょう。

特に、マクロの記録直後は画面上の見た目がほとんど変わらないため、保存形式だけを見落としがちです。
記録したマクロが実行できたとしても、保存後にExcelを閉じて開き直した際、xlsxで保存していればマクロは残りません。
共有用に元ファイルと別のコピーを作る場合は、元のxlsmを保管し、配布用だけを必要に応じてxlsxにする方法が安全です。
保存先がOneDriveやSharePointの場合でも、保存形式の考え方は同じです。
ただし共同編集や組織のポリシーによってはマクロ付きファイルが制限されることがあるため、チームで使う前に運用ルールを確認しておくと安心です。
ファイルタブを開きます。
名前を付けて保存を選びます。
ファイルの種類でExcel マクロ有効ブックを選択します。
拡張子がxlsmであることを確認して保存します。
【操作のポイント】警告画面でVBAプロジェクトを失わないよう、xlsmを選んだことを確認してから保存を完了させます。
xlsmを開くときのセキュリティ表示
xlsmを開いたとき、Excel上部に「セキュリティの警告」と「コンテンツの有効化」が表示されることがあります。
これは故障や形式のエラーではなく、マクロがPC上のファイル操作や外部データへのアクセスなどを実行できるため、Excelが実行前に注意を促している状態です。
信頼できる作成者と入手経路を確認できないxlsmでは、安易にコンテンツを有効化しないことが基本です。
メール添付、チャット、ダウンロードサイトから取得したファイルには、悪意のあるマクロが含まれている可能性もあります。
送信者が知人や社内担当者であっても、なりすましや誤送信の可能性を考え、ファイルの用途と送付理由を確認してから有効化しましょう。
一方、自分で作成したファイル、内容を検証済みの社内テンプレート、管理部門が配布したツールなどは、必要に応じて有効化できます。
Excelのトラストセンターでは、マクロの通知方法、信頼できる場所、信頼された発行元などを管理できます。
ただし、すべてのマクロを無条件に有効にする設定は、便利であってもリスクが大きくなります。
日常的に使うフォルダーを丸ごと信頼できる場所へ登録するより、限定した専用フォルダーを作り、管理されたファイルだけを置く方が実務に向いています。
受け取ったxlsmが「マクロの実行がブロックされました」と表示されるときは、まずWindowsのファイルプロパティでブロック解除の項目があるか確認します。
その後も解決しない場合に、会社の情報システム部門や作成者へ相談する順序が安全です。
マクロ付きであることは危険を意味しません。
ただし、マクロを実行する権限を与える前に、ファイルの出所と処理内容を確かめる習慣が必要です。
【操作のポイント】xlsmの警告は解除を急ぐための表示ではなく、マクロを実行してよいファイルかを判断するための確認画面です。
xlsx形式との機能と用途の違い
続いては、xlsxとxlsmの違いを確認していきます。
| 比較項目 | xlsx | xlsm |
|---|---|---|
| VBAマクロ | 保存不可 | 保存可能 |
| 主な用途 | 通常の表・集計・共有 | 自動処理・入力支援 |
| 開く際の警告 | 原則なし | 環境により表示 |
xlsxが標準形式として使われる理由

xlsxは、現在のExcelで一般的に使われる標準的なブック形式です。
Excel 2007以降で採用されたOffice Open XMLを基盤としており、セルのデータ、数式、書式、画像、グラフなどを保存できます。
マクロを必要としない見積書、名簿、売上表、予定表、分析レポートなどは、基本的にxlsxで保存すると考えてよいでしょう。
xlsxはマクロを含めないため、受信者が開くときにマクロ実行の確認を求められにくく、社外とのファイル共有でも用途を説明しやすい形式です。
また、企業のメールゲートウェイやクラウドストレージで、xlsmよりxlsxの方が扱いやすい運用になっていることもあります。
ただし、xlsxが絶対に安全という意味ではありません。
外部リンク、数式、埋め込みオブジェクトなど、確認すべき要素が存在する場合もあるため、知らない相手から届いたファイルを不用意に開かない姿勢は変わりません。
xlsxを選ぶ利点は、必要のない実行機能を含めないことで、ファイルの目的をシンプルに保てる点です。
たとえば月次報告を自動作成する担当者はxlsmを使い、その結果だけを関係者に配布する場合はxlsxやPDFにする、と役割を分けると管理しやすくなります。
この運用なら、元データと自動化の仕組みを守りながら、閲覧者には必要な情報だけを渡せます。
入力・閲覧・通常の集計だけならxlsxが基本です。
VBAを保存または実行する必要が生じたときに、xlsmを選択します。
【操作のポイント】ファイルの利用者がマクロを使うのか、それとも結果を閲覧するだけなのかで、適した保存形式を分けます。
xlsmとxlsxで変わらない機能と変わる機能

xlsmとxlsxは、見た目や通常の表計算に関する機能が大きく異なるわけではありません。
SUM関数、XLOOKUP関数、IF関数、ピボットテーブル、フィルター、グラフ、印刷設定、シートの追加といった一般的な機能は、どちらの形式でも利用できます。
違いの中心は、VBAプロジェクトを内部に保持できるかどうかです。
xlsxでは、標準モジュールに書いたSubプロシージャ、ユーザーフォーム、イベントマクロなどを保存できません。
たとえば、ブックを開いた瞬間に処理を実行するWorkbook_Open、セルの変更に反応するWorksheet_Change、ボタンに登録したマクロも、xlsxとして保存すれば失われます。
一方で、セルに配置した図形やフォームコントロールそのものは残る場合があります。
しかし、その図形に割り当てたマクロは削除されるため、クリックしても期待した処理は動きません。
この状態は、見た目だけが残っているため原因を特定しにくい点が厄介です。
マクロを含むテンプレートを配布する場合、xltmという「Excel マクロ有効テンプレート」形式を利用する選択肢もあります。
利用者がテンプレートを開くと新しいブックとして作業を始められるため、原本の上書きを避けやすくなります。
定型帳票を自動作成する仕組みでは、xlsmとxltmの役割の違いも理解しておくと便利です。
セルの数式や表の機能は、xlsxとxlsmのどちらでも使えます。
保存形式を分ける判断点は、VBAプロジェクトを残す必要があるかどうかです。
【操作のポイント】ボタンや図形があるブックは、クリック後にマクロを実行する仕組みかどうかまで確認して保存形式を判断します。
共有相手に合わせたファイル形式の選択
ファイル形式は、作成者だけでなく受け取る相手の環境も考えて選ぶ必要があります。
自分だけがマクロを実行する集計ツールならxlsmが適していますが、取引先へ計算結果を提出するだけならxlsxやPDFの方が受け取りやすいでしょう。
マクロ付きファイルを送る際は、なぜxlsmなのか、どの処理を有効化するのかを事前に伝えると、受信者の不安を減らせます。
たとえば「入力後に集計ボタンを押すと、集計シートへ転記するマクロです」と説明すれば、相手は用途を判断しやすくなります。
反対に、説明なくxlsmを添付すると、受信者のメールソフトや会社のセキュリティ対策によって隔離されることがあります。
共同編集を前提とする場合にも注意が必要です。
Excel for the webではVBAマクロを作成、編集、実行できないため、ブラウザー中心で作業するメンバーがいるチームでは、マクロ機能を使う場面とデスクトップ版Excelを使う場面を明確にします。
Googleスプレッドシートなど別の表計算ソフトへアップロードする運用では、VBAの互換性が保証されないことも覚えておきましょう。
ファイルを開けるかだけでなく、マクロを実行できるか、結果を正しく確認できるかまでが共有時の確認範囲です。
配布先が多い帳票では、マクロで生成した結果用xlsxと、作業用xlsmを別ファイルにする構成が実務的です。
【操作のポイント】共有用には、相手がマクロを実行する必要があるかを確認し、不要ならxlsxまたはPDFへ分けて配布します。
xlsxからxlsmへの変換手順
続いては、既存のxlsxをxlsmへ変換し、マクロを追加して保存する流れを確認していきます。
| A列 | B列 | C列 |
|---|---|---|
| 商品名 | 数量 | 金額 |
| りんご | 3 | 450 |
名前を付けて保存による形式変更
xlsxをxlsmへ変換する最も確実な方法は、Excelの名前を付けて保存を使うことです。
対象のxlsxを開き、「ファイル」タブから「名前を付けて保存」を選びます。
保存先を指定したら、ファイルの種類を「Excel マクロ有効ブック(*.xlsm)」へ変更し、必要なら元ファイルと区別できる名前を入力します。
変換直後は、元のxlsxを残して新しいxlsmを作る形にすると、通常版とマクロ版を安全に比較できます。
同じ場所に同じファイル名で保存しようとすると、拡張子が異なるため別ファイルとして保存できますが、混同しないよう「集計_マクロ版.xlsm」のように用途がわかる名前にするとよいでしょう。
保存後、タイトルバーやエクスプローラーで拡張子がxlsmになっていることを確認します。
この段階では、形式だけがマクロ対応になった状態です。
xlsxをxlsmへ保存し直しただけで、自動的にマクロが作成されるわけではありません。
マクロを追加するには、「開発」タブの「マクロの記録」を使うか、Visual Basic EditorでVBAコードを記述します。
開発タブが見当たらない場合は、「ファイル」から「オプション」を開き、「リボンのユーザー設定」で「開発」にチェックを入れると表示できます。
作業後は再度保存し、ブックを閉じて開き直したときもマクロが残っているか確認すると安心です。
【操作のポイント】形式変更はエクスプローラーで拡張子を打ち替えず、Excelの名前を付けて保存から実行します。
マクロを追加して保存内容を確認する方法
xlsmへ変換した後、実際にマクロを追加して保存できることを確認してみましょう。
わかりやすい方法は、「開発」タブの「マクロの記録」をクリックし、マクロ名を入力して記録を開始することです。
たとえばセルA1に見出しを入力し、太字にする操作を行ってから「記録終了」を選びます。
その後、「マクロ」から作成したマクロを選び、「実行」をクリックすると、記録した処理を再現できます。
記録した内容を含むブックは、必ずxlsmとして保存しないと、次回開いたときにマクロ一覧から消えます。
VBAのコードを確認したい場合は、Altキーを押しながらF11キーを押してVisual Basic Editorを開きます。
左側のプロジェクトエクスプローラーで対象ブックを展開し、「標準モジュール」内のModule1を開くと、マクロの記録によって作成されたコードを確認できます。
記録マクロは操作の再現には便利ですが、選択や画面移動まで多く記録されることがあります。
繰り返し使うマクロへ整える際は、不要なSelectやActivateを減らし、対象のシートやセルを明示する書き方へ見直すと、誤動作を防ぎやすくなります。
また、マクロを実行する前にブックを保存する、処理対象のシート名を確認する、元データをバックアップするなどの手順も重要です。
自動化は便利ですが、数百行や数千行のデータを一括で変更するマクロでは、実行後に元へ戻すことが難しい場合があります。
マクロ記録は、開発タブから開始します。
操作後に記録を終了します。
保存形式がxlsmであることを確認して保存します。
【操作のポイント】マクロを初めて追加した直後は、Excelを閉じて再度開き、マクロが残っていることまで確認します。
xlsmからxlsxへ変換するときの注意点
続いては、xlsmをxlsxへ変換する場合に失われる内容と、安全に作業するための注意点を確認していきます。
| 変換前 | 変換後 | 確認事項 |
|---|---|---|
| 集計ツール.xlsm | 集計結果.xlsx | VBAコードは削除される |
xlsxへ保存したときに削除されるマクロ
xlsmをxlsxとして保存すると、VBAプロジェクトは保存対象外となります。
標準モジュールのコード、クラスモジュール、ユーザーフォーム、ThisWorkbookのイベント、各シートのイベントプロシージャなどが削除される点を理解しておきましょう。
xlsxへの変換は、マクロを一時的に無効化する操作ではなく、ブックからVBAを取り除いた別形式で保存する操作です。
Excelは保存時に、Visual Basicプロジェクトが失われる可能性を知らせるメッセージを表示します。
配布用のコピーを作る意図であれば、警告の内容を確認してxlsx形式を選びます。
しかし元のxlsmを上書きするつもりで保存すると、自動化の仕組みを復元できなくなるかもしれません。
通常は「名前を付けて保存」で別名のxlsxを作り、元のxlsmを保管する方法を選びましょう。
マクロで作成した値や、マクロ実行後に更新された集計結果は、xlsxへ保存してもセルの値として残ります。
つまり、マクロそのものは削除されても、実行済みの計算結果や整形済みの表を共有することは可能です。
この特徴を利用すれば、作業者はxlsmで自動処理を行い、閲覧者にはマクロのないxlsxを渡す運用ができます。
ただし、受信者が再計算や再集計を行うためのボタンを押しても、マクロが削除済みなら処理は実行できません。
xlsmからxlsxへ保存すると、表と数値は残せます。
VBAコード、イベント処理、マクロに割り当てた操作は残せません。
【操作のポイント】xlsxは配布用コピーとして作成し、自動処理の原本であるxlsmは別の場所に保管します。
変換前に確認したい数式と外部連携
xlsmからxlsxへ変換する前には、マクロ以外の仕組みも確認する必要があります。
セルに入力した通常の数式はxlsxでも利用できるため、1行目にヘッダーがあり、C2に金額を求める数式が入っている表であれば、数式はそのまま保存されます。
C2に入力する数式の例です。
=B2*単価セル
数量がB2、単価が別セルにある場合、掛け算の結果をC2へ表示できます。
たとえばA列が商品名、B列が数量、C列が単価、D列が金額なら、D2には=B2*C2と入力します。
この数式は、B2の数量とC2の単価を掛け合わせる意味です。
先頭セルであるD2へ入力した後、セル右下のフィルハンドルを下方向へドラッグすれば、D3、D4以降にも行番号を合わせた数式をオートフィルできます。
数式による計算はxlsxでも残りますが、VBAで数式を自動挿入する処理はxlsxへ変換すると使えなくなります。
また、Power Query、外部データ接続、ピボットテーブルの更新設定、アドインとの連携などは、マクロとは別に動作条件を確認します。
特にボタンを押すとCSVを読み込むように見えるブックでは、実際にはVBAが処理していることがあります。
変換後のxlsxで必要な作業ができるか、コピーを作って試すのが確実です。
リンク先のファイルやフォルダーに依存する数式も、共有先のPCでは参照できないことがあります。
変換後に数式エラーやリンクの更新メッセージが出ないかまで確認すると、配布後の問い合わせを減らせます。
【操作のポイント】xlsxへ変換する前に、マクロが担っていた更新や転記を、数式だけで再現できるか確認します。
まとめ エクセルのマクロ保存形式とxlsx・xlsmの違い
エクセルのxlsmは、通常の表計算機能に加えて、VBAで作成したマクロを保存できるファイル形式です。
マクロを使わない一般的な表、集計表、閲覧用の資料はxlsxで保存すると、共有しやすく管理もしやすくなります。
マクロを残す必要がある場合はxlsm、マクロを含めずに配布したい場合はxlsxという使い分けが基本です。
xlsxからxlsmへ変換するときは、Excelの「名前を付けて保存」で「Excel マクロ有効ブック」を選択します。
反対にxlsmからxlsxへ変換すると、セルの値や数式は残せても、VBAコードやイベント処理は削除されます。
そのため、マクロ付きの原本はxlsmとして保管し、提出用・閲覧用のコピーだけをxlsxにする運用が安心です。
また、xlsmを開く際のセキュリティ警告は重要な確認機能です。
信頼できる作成者と内容を確認できるファイルだけでマクロを有効にし、安全性と作業効率を両立させましょう。