複数のXLSMファイルをマージする方法

Sheetize XLSM Merger for .NET は、複数の XLSM ワークブックを 1 つのファイルに統合しながら、すべてのシート、マクロ、グラフ、書式設定を保持できるシンプルかつ強力な API を提供します。レポートの集計やデータの統合、マスターブックの作成などに便利です。

主な機能

複数の XLSM ファイルをマージ

任意の数の XLSM ワークブックを 1 つの統合ブックに結合します。マクロ(VBA)はそのまま残り、結合後のファイルでも機能します。

書式とオブジェクトの保持

セルのスタイル、数式、テーブル、グラフ、画像、埋め込みオブジェクトなど、すべてがマージ中にそのまま保持されます。

ストリーミング対応

大容量ブックをストリーミング方式で処理でき、メモリ使用量を抑えられるため、多数のファイルをバッチでマージする場合に最適です。

詳細手順

XLSM マージのワークフロー

Sheetize で複数の XLSM ファイルをマージする手順は以下の通りです。

  1. マージャーの初期化: SpreadsheetMerger のインスタンスを作成します。
  2. オプションの設定: シート名の付け方や競合解決、マクロ処理などを制御する SaveOptions を設定します。
  3. ファイルパスの定義: ソースとなる XLSM ファイルのリストと、出力先のマージ先 XLSM ファイルを指定します。
  4. マージの実行: 用意したオプションで 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 ファイルのマージを簡単に実現します。

 日本語