電子書籍ギフト♪ 最大10,000円が当たる!

エクセルで串刺し計算をする場合、データ→統合等でできますが、ファイルによってシート数が毎日増加する場合でも一発で串刺し計算(合計)できるように、VBAでプログラムを組むにはどのうようにすればよいのでしょうか?
なお、各シートのデータはすべて同じレイアウトで作成されているとします。
VBAでプログラムの記入例があれば、助かります。

教えて!goo グレード

A 回答 (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
    • good
    • 0
この回答へのお礼

親切にありがとうございました。
早速使用し、OKになりました。

お礼日時:2013/10/18 20:58

串刺し計算をしたい最後のシートが変動するというご質問ですね。



この場合は、最後のシート(集計対象範囲を空白セルにして非表示にした集計シートでもよい)をダミーシートにして、新しいシートはこのシートの間に挿入するようにして(シート名をドラッグ)、先頭のシートから最後のシートまでを串刺し集計するようにするのが簡単です。
    • good
    • 1
この回答へのお礼

早々の回答ありがとうございます。

お礼日時:2013/10/18 19:16

マクロを組まなくても次のようにすれば簡単に串刺し集計できます。


シートが左から [合計],[Sheet1],[Sheet2],‥‥、のように並んでいると
した場合――

[合計]シートに =SUM(Start:End!A1) という参照式を入力しておいて、
集計したいワークシート群の前後を"Start"と"End"という空のシートで
はさみます。

例えば[合計]と[Sheet1]の間に"Start"、一番右端に"End" というシートを
置くと、すべてのシートを串刺しできます。

"Start"と"End"という空のシートの位置を変更すれば、集計するシートの
範囲を自由に指定できますね。
    • good
    • 3
この回答へのお礼

早々の回答ありがとうございます。
試用してみました、ありがとうございます。

お礼日時:2013/10/18 19:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

教えて!goo グレード

人気Q&Aランキング