複数のXLSMファイルをマージする方法
Sheetize XLSM Merger for .NET は、複数の XLSM ワークブックを 1 つのファイルに統合しながら、すべてのシート、マクロ、グラフ、書式設定を保持できるシンプルかつ強力な API を提供します。レポートの集計やデータの統合、マスターブックの作成などに便利です。
主な機能
複数の XLSM ファイルをマージ
任意の数の XLSM ワークブックを 1 つの統合ブックに結合します。マクロ(VBA)はそのまま残り、結合後のファイルでも機能します。
書式とオブジェクトの保持
セルのスタイル、数式、テーブル、グラフ、画像、埋め込みオブジェクトなど、すべてがマージ中にそのまま保持されます。
ストリーミング対応
大容量ブックをストリーミング方式で処理でき、メモリ使用量を抑えられるため、多数のファイルをバッチでマージする場合に最適です。
詳細手順
XLSM マージのワークフロー
Sheetize で複数の XLSM ファイルをマージする手順は以下の通りです。
- マージャーの初期化:
SpreadsheetMergerのインスタンスを作成します。 - オプションの設定: シート名の付け方や競合解決、マクロ処理などを制御する
SaveOptionsを設定します。 - ファイルパスの定義: ソースとなる XLSM ファイルのリストと、出力先のマージ先 XLSM ファイルを指定します。
- マージの実行: 用意したオプションで
Processを呼び出します。
例 – 3 つの XLSM ファイルを 1 つのブックにマージする
using Sheetize;
var loadOptions = new LoadOptions();
var saveOptions = new SaveOptions
{
OutputFile = "E:\\\\MergedReport.xlsm"
};
SpreadsheetMerger.Process(loadOptions, saveOptions, new string[]
{
"Quarter1_Report.xlsm",
"Quarter2_Report.xlsm",
"Quarter3_Report.xlsm"
});マージ成功のポイント
- マクロ参照の一貫性: ソースファイル間で同一モジュール名が重複しないようにしてください。Sheetize は競合するモジュール名を自動でリネームします。
- シート名の衝突: デフォルトでは重複シート名に「_1」「_2」などが付加されます。
MergerOptionsでこの挙動を上書き可能です。 - 大容量ブック: 多数の大きな XLSM ファイルをマージする場合は、
SpreadsheetMerger.StreamProcessを利用してメモリ使用量を抑えてください。
拡張フォーマット対応
- 同じマージャーで XLSX、CSV、TSV も処理できますが、マクロ機能が保持されるのは XLSM 入力に限られます。
- マージ後にパスワード保護を設定したい場合は、XLSX パスワード設定ガイドをご参照ください。
これらの機能により、Sheetize はアドホックなレポート作成から、数千件のマクロ有効ブックを日々統合する本番サービスまで、複数の XLSM ファイルのマージを簡単に実現します。