なぜ XLSX を XLSM に変換するのですか?
.XLSX は設計上 VBA マクロを保存できません。OOXML 仕様では、マクロ有効とマクロなしのブックタイプが意図的に分離されています。ボタン起動のスクリプト、カスタム関数、またはイベントハンドラーが必要な場合は、ブックを .XLSM として保存する必要があります。.xlsx ファイルにマクロを保存しようとすると、Excel は自動的に形式を切り替えるよう促します。
XLSX から XLSM への変換方法
Microsoft Excel - 名前を付けて保存 BUILT-IN
.xlsx ファイルを開き、F12 キー(Windows)を押すか、「ファイル」 > 「名前を付けて保存」(macOS)を使用して、形式リストから「Excel マクロ有効ブック (.xlsm)」を選択します。
LibreOffice Calc - 名前を付けて保存 FREE
LibreOffice Calc でファイルを開き、「ファイル」 > 「名前を付けて保存」を選択して .xlsm 形式を選びます。ただし、VBA マクロを正しく実行するには Excel で再作成する必要があることに注意してください。
コマンドライン - LibreOffice CLI
libreoffice --headless --convert-to xlsm input.xlsx を実行して、GUI を開かずに一括変換します。
XLSX を変換するプログラム
これらの形式について
XLSX ファイルは、Excel 2007 で従来のバイナリ XLS 形式に代わるものとして導入された、Open XML 形式で保存された Microsoft Excel スプレッドシートです。Excel を購入しなくても、Google スプレッドシート、LibreOffice Calc、Excel for the web…
.XLSX の詳細を開く →XLSM ファイルは、VBA マクロ(ファイル内で実行される自動化コード)を含む Microsoft Excel スプレッドシートです。Microsoft Excel(マクロの完全サポート)、LibreOffice Calc、または WPS Office(どちらも無料で、VBA の一部をサポート)で開くことができます。Google スプレッドシートや Web 版 Excel…
.XLSM の詳細を開く →品質と注意点
- 数式、グラフ、ピボットテーブル、名前付き範囲、条件付き書式など、すべてのスプレッドシートコンテンツは変更されずに引き継がれます。変換によって VBA マクロコンテナが追加されるだけです。
.xlsmファイルは、マクロが書き込まれる前であってもvbaProject.bin部分が存在するため、元の.xlsxよりもわずかにサイズが大きくなります。.xlsmファイルは実行可能コードを実行できるため、メールクライアントやウイルス対策ツールは.xlsxよりも厳重にフラグを立てます。Excel は、明示的に «コンテンツの有効化» をクリックするまでマクロを無効に保ちます。
よくある質問
変換する前にマクロを追加する必要がありますか?
.xlsx を .xlsm に変換し、後でマクロを追加または記録することができます。LibreOffice Calc は変換された `.xlsm` を開けますか?
`.xlsm` ファイルは macOS 版の Excel で動作しますか?
.xlsm ファイルを読み取りますが、Windows 固有の API(シェル呼び出し、Win32 関数)を呼び出すマクロは、形式に関係なく動作しません。