アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (2件)

2番目から最後までのシートを一番左のシートに合計します。


コメントアウトしている r.Value = r.Value を生かすと値になります。
範囲は選択したセル範囲です。
参考に。

Sub test()
Dim mySum As String, r As Range
 mySum = Worksheets(2).Name & ":" & _
     Worksheets(Worksheets.Count).Name & "!"
 Worksheets(1).Activate
 For Each r In Selection
  r.Value = "=sum(" & mySum & r.Address(0, 0) & ")"
  'r.Value = r.Value
 Next r
End Sub

この回答への補足

大変参考になりました。ありがとうございます。
ただ、シート名に「-」が入ってある場合(例:GC0908-100)うまくいきません。何回が試行みると、一番初めか最後のシート名に「-」が入っているとうまくいかないようです。
これを回避するにはどのようにすればいいのでしょうか?

補足日時:2004/09/08 10:25
    • good
    • 0
この回答へのお礼

よく考えてみると、最初と最後にシートを挿入すればうまくいきます。
大変重宝するマクロを提供していただいてありがとうございました。
また機会がありましたらよろしくお願いいたします。

お礼日時:2004/09/08 12:39

答えでなくてすみません。


VBAを使わないでもダミーのシートを作成すればいいのでは?
合計,始め,1月,2月.....12月,終わり
の様にして合計のシートで
=SUM(始め:終わり!A1)

"始め"と"終わり"の間のシートの合計になります。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
3D参照 (計算式) による統合で上記の方法を使用していました。ただ今回はVBAが必要だったものですから。また機会がありましたら、よろしくお願いいたします。

お礼日時:2004/09/08 10:38

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

このQ&Aを見た人はこんなQ&Aも見ています