XLSM ファイル形式とは?
.xlsm は、Excel 2007 以降で作成される一般的に使用されるスプレッドシートドキュメントです。.xlsm ファイルは、行と列で構成されたセルにデータを保存します。この形式は Office Open XML 標準に基づいており、ZIP 圧縮を使用しているため、構造的には .xlsx ファイルと似ています。
.xlsm と .xlsx はほぼ同一のスプレッドシート形式ですが、主な違いは .xlsm には Visual Basic for Applications (VBA) で記述されたマクロが含まれている点です。マクロは、繰り返しのタスクを自動化したり、データを操作したり、他の Office アプリケーションを制御したりするために使用できるユーザー定義関数です。マクロは悪意のあるコードの配信に使用される可能性があるため、セキュリティ上の理由から Excel ではデフォルトで無効になっています。マクロを使用するには、スプレッドシートドキュメントを .xlsm ファイルとして保存する必要があります。.xlsx として保存すると、VBA プロジェクトは警告なしに削除されます。
内部的には、VBA プロジェクトは ZIP パッケージ内のバイナリ xl/vbaProject.bin パーツとして保存されます。パッケージの [Content_Types].xml は macroEnabled.12 コンテンツタイプを宣言しており、これが形式レベルで .xlsm を .xlsx と区別するものです。両者は同じ PK マジックバイトを共有しています。関連する形式には、マクロ有効の Excel テンプレートバリアントである .xltm や、マクロもサポートするバイナリ形式の .xlsb があります。
セキュリティと安全性
リスク: HIGHXLSM が Excel ファミリーの中でリスクが高いとされるのは、まさにコードを実行できるためです。その VBA マクロは古典的なマルウェアの感染経路です。攻撃パターンは、メールで送られた .xlsm が «コンテンツ/マクロの有効化» をクリックするよう圧力をかけ、その後 VBA がペイロードをダウンロードまたは実行するというものです。防御策:Microsoft はインターネットから取得したファイル(Mark of the Web)のマクロをデフォルトでブロックし、信頼できないファイルを保護ビューで開きます。これらは両方とも有効にしたままにしてください。信頼できる送信者から具体的に予定されていたファイルでのみマクロを有効にしてください。自動化ではなくデータだけが必要な場合は、Google スプレッドシートや Web 版 Excel(VBA を実行しない)で開くか、.xlsx として保存してコードを除去してください。未承諾の «マクロを有効にする» 要求は、すべて悪意のあるものとして扱ってください。
形式の詳細
概要XLSM ファイルを開くプログラム
技術的詳細
詳細仕様| MIME タイプ | application/vnd.ms-excel.sheet.macroEnabled.12 |
| コンテナ形式 | ZIP ベースの Office Open XML (OPC) パッケージ |
| マジックバイト | 50 4B 03 04 ("PK" - オフセット 0 の ZIP ローカルファイルヘッダー。 .xlsx とバイト単位で同一であり、内部コンテンツによってのみ区別される) |
| VBA プロジェクトパーツ | xl/vbaProject.bin - ZIP パッケージ内に埋め込まれた Compound File Binary (CFB) |
| マクロ言語 | Visual Basic for Applications (VBA) |
| コンテンツタイプ識別子 | macroEnabled.12。 [Content_Types].xml で宣言され、これが正式に .xlsm を .xlsx から区別するもの |
| デフォルトのマクロセキュリティ | 開く際にマクロをブロック。実行にはプロンプト経由のユーザー確認、または設定された信頼できる場所が必要 |
| VBA コード署名 | 発行元の信頼を確立しプロンプトを抑制するために、VBA プロジェクトにコード署名証明書で署名が可能 |
| 暗号化 | Office Open XML 保護による AES-256 パスワード暗号化(Excel 2013 以降で利用可能) |
| 最大ワークシートサイズ | 1シートあたり 1,048,576 行 × 16,384 列 |
| テンプレートの対応形式 | .xltm - マクロ有効ワークブックテンプレート形式。内部構造は同じで、拡張子の役割が異なる |
| 拡張子の強制ルール | Excel は VBA を含むワークブックを .xlsx として保存することを拒否し、代わりに .xlsm として保存するようユーザーに促す |
| Web およびモバイルの制限 | VBA マクロは Web 版 Excel やモバイル版 Excel では実行されない。マクロの内容は保持されるが非アクティブ状態となる |
| サードパーティの VBA サポート | LibreOffice Calc は部分的な VBA 互換性で .xlsm を開く。複雑なマクロや Excel オブジェクトモデルの呼び出しは動作が異なる場合がある |
| リリース日 | 2007 (Excel 2007); the macro-enabled variant of the ECMA-376 / ISO-IEC 29500 format |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | learn.microsoft.com |
XLSM の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。XLSM ファイルについて最初の質問をしてみましょう。