請求書や点検票のようにセル位置が決まったExcelブックは、通常の表結合ではなく、各ファイルの同じシート・同じ位置から値を取り出す方法が適しています。レイアウトが統一されていることを確認し、異なる様式を自動で読み違えないようにします。

請求書など同じ位置に値がある帳票を選ぶ

例として各ブックの「請求書」シートに、B2に請求日、D5に取引先、F12に合計金額があるとします。最初に3ファイルを目視で開き、結合セルの位置・先頭行の余白・シート名が一致するか確認します。同じ帳票でも改訂版で一行増えると、座標抽出は異なる値を拾うため、様式の版数も必要です。

Excel.Workbookで対象シートとセルを確認

Excelの[データ]→[データの取得]→[ファイルから]→[フォルダーから]で取り込み、[データの変換]を選びます。Name(ファイル名)とContent(Binary)を残し、対象を.xlsxに絞ります。Excel.Workbook([Content], null, true)でブック内オブジェクトを展開し、Kind="Sheet"かつItem="請求書"など対象シートだけを選びます。シートのData表は行・列位置でアクセスしますが、取り込みで先頭行を削除・見出しに昇格させていないことが前提です。

ファイル名と抽出値を1行に並べる

1ファイルにつきファイル名/帳票版/請求日/取引先/合計の1行へ展開します。例えばDataが先頭行・先頭列を含む生テーブルなら、B2は2行目・2列目に相当します。ただしColumn1等の列名は取込手順で変わり得るため、サンプルで実際の列構造を確認してから参照します。1つのファイルに複数の同名候補がある場合も勝手に最初を採用しません。

レイアウトが変わったファイルを例外に分ける

ファイル名の一部に「旧様式」「2025版」が含まれる場合は別グループとして保留します。抽出した請求日が日付に変換できない、合計が数値でない、必須セルが空欄という行は出力せず、例外一覧へ残します。3ファイルの検算が済んだ後に全フォルダーへ拡張し、ファイル数と抽出行数が一致するかを確認してください。

参考資料

おすすめの記事