- ベストアンサー
エクセルでシート数が増加する場合の串刺し計算
エクセルで串刺し計算をする場合、データ→統合等でできますが、ファイルによってシート数が毎日増加する場合でも一発で串刺し計算(合計)できるように、VBAでプログラムを組むにはどのうようにすればよいのでしょうか? なお、各シートのデータはすべて同じレイアウトで作成されているとします。 VBAでプログラムの記入例があれば、助かります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ユーザ定義関数例です。 シート上でAlt+F11キー押下→挿入→標準モジュール→サンプルコード貼り付けてお試しください。 因みに合計シート名は「合計」として下さい。 合計シートの任意セルに=mycnt(串刺し対象セル) Function mycnt(rng) Dim i As Long, tot As Long Application.Volatile For i = 1 To Sheets.Count If Sheets(i).Name <> "合計" Then tot = tot + Sheets(i).Range(rng.Address) End If Next mycnt = tot End Function
その他の回答 (2)
- MackyNo1
- ベストアンサー率53% (1521/2850)
串刺し計算をしたい最後のシートが変動するというご質問ですね。 この場合は、最後のシート(集計対象範囲を空白セルにして非表示にした集計シートでもよい)をダミーシートにして、新しいシートはこのシートの間に挿入するようにして(シート名をドラッグ)、先頭のシートから最後のシートまでを串刺し集計するようにするのが簡単です。
お礼
早々の回答ありがとうございます。
- misatoanna
- ベストアンサー率58% (528/896)
マクロを組まなくても次のようにすれば簡単に串刺し集計できます。 シートが左から [合計],[Sheet1],[Sheet2],‥‥、のように並んでいると した場合―― [合計]シートに =SUM(Start:End!A1) という参照式を入力しておいて、 集計したいワークシート群の前後を"Start"と"End"という空のシートで はさみます。 例えば[合計]と[Sheet1]の間に"Start"、一番右端に"End" というシートを 置くと、すべてのシートを串刺しできます。 "Start"と"End"という空のシートの位置を変更すれば、集計するシートの 範囲を自由に指定できますね。
お礼
早々の回答ありがとうございます。 試用してみました、ありがとうございます。
お礼
親切にありがとうございました。 早速使用し、OKになりました。