📊つかえる関数.com

VBAのシートループ代わりにVSTACKで複数シートを統合する方法は?

結論

VSTACK関数で複数シートを縦結合、VBAのシートループが不要に

マクロ・自動化中級·

詳しい解説

VBAでFor Each ws In Worksheetsでシートをループして結合していた処理は、Excel 365のVSTACK関数で置き換えられます。`=VSTACK(Sheet1!A:D, Sheet2!A:D, Sheet3!A:D)`のように各シートの範囲を列挙すれば、縦方向に自動統合されます。INDIRECT関数と組み合わせて動的にシート名を生成することも可能です。VBAのようにループカウンタや結合先範囲の計算が不要で、シートが増減しても数式の修正だけで対応できます。

執筆・検証:田中 けんた|Excel歴15年・MOS資格保持

バージョン対応

バージョン対応状況
Excel 2016Excel 2019Excel 2021Excel 2024Microsoft 365
非対応非対応非対応対応対応