- ベストアンサー
エクセルでシート数が分からない場合の串刺し計算
エクセルで串刺し計算をする場合、データ→統合 等でできますが、ファイルによってシート数が異なる場合でも一発で串刺し計算(合計)できるように、VBAでプログラムを組むにはどのうようにすればよいのでしょうか? なお、各シートのデータはすべて同じレイアウトで作成されているとします。
- みんなの回答 (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
その他の回答 (1)
- mshr1962
- ベストアンサー率39% (7417/18945)
回答No.2
答えでなくてすみません。 VBAを使わないでもダミーのシートを作成すればいいのでは? 合計,始め,1月,2月.....12月,終わり の様にして合計のシートで =SUM(始め:終わり!A1) "始め"と"終わり"の間のシートの合計になります。
質問者
お礼
ご回答ありがとうございます。 3D参照 (計算式) による統合で上記の方法を使用していました。ただ今回はVBAが必要だったものですから。また機会がありましたら、よろしくお願いいたします。
お礼
よく考えてみると、最初と最後にシートを挿入すればうまくいきます。 大変重宝するマクロを提供していただいてありがとうございました。 また機会がありましたらよろしくお願いいたします。
補足
大変参考になりました。ありがとうございます。 ただ、シート名に「-」が入ってある場合(例:GC0908-100)うまくいきません。何回が試行みると、一番初めか最後のシート名に「-」が入っているとうまくいかないようです。 これを回避するにはどのようにすればいいのでしょうか?