- みんなの回答 (4)
- 専門家の回答
みんなの回答
- mt2008
- ベストアンサー率52% (885/1701)
ANo.3です。 ごめんなさい、前のマクロだと直前ページの最下行の値も合計していました。 ちょっと修正 Sub Sample() nRow1 = 0 '最初は1行目から…に、するため For i = 1 To ActiveSheet.HPageBreaks.Count 'ページ数分ループ nRow2 = ActiveSheet.HPageBreaks(i).Location.Row - 1 'C列印刷最下行にB列のページ合計を表示 Range("C" & nRow2).Formula = "=SUM(B" & nRow1 + 1 & ":B" & nRow2 & ")" nRow1 = nRow2 Next i nRow2 = ActiveSheet.UsedRange.End(xlDown).Row '最終ページはデータのある所まで 'C列印刷最下行にB列のページ合計を表示 Range("C" & nRow2).Formula = "=SUM(B" & nRow1 + 1 & ":B" & nRow2 & ")" End Sub
- mt2008
- ベストアンサー率52% (885/1701)
縦に何ページにも渡っている場合にのみの対応ですが、こんなのはどうでしょう。 B列の印刷ページ最上行から最下行の合計をC列の印刷ページ最下行に表示しています。 Sub Sample() nRow1 = 1 '最初は1行目から For i = 1 To ActiveSheet.HPageBreaks.Count 'ページ数分ループ nRow2 = ActiveSheet.HPageBreaks(i).Location.Row - 1 'C列印刷最下行にB列のページ合計を表示 Range("C" & nRow2).Formula = "=SUM(B" & nRow1 & ":B" & nRow2 & ")" nRow1 = nRow2 Next i nRow2 = ActiveSheet.UsedRange.End(xlDown).Row '最終ページはデータのある所まで 'C列印刷最下行にB列のページ合計を表示 Range("C" & nRow2).Formula = "=SUM(B" & nRow1 & ":B" & nRow2 & ")" End Sub
- dakedakepuru
- ベストアンサー率20% (1260/6200)
No1の方と同様、改ページプレビューできりのいい所まで全て仕切って(例:SUM(B1:B20)) あとは機械的に20ずつ足したセルの値で指定すれば少しは楽なのでは? 余白をほぼなしの状態にすれば、もっと行けると思いますが。
- kazzsnow
- ベストアンサー率50% (31/61)
1行から1000行まであるExcelのシートで、任意の改ページ箇所までの合計を それぞれ出したい、ということですか? それとも1行から1000行まであるExcelのシートが複数ある、という意味ですか? 前者なら、メニューバー→表示→改ページプレビュー でページ区切りを表示させて、その都度SUMで合計を出せばよいのでは? 後者なら、説明するまでもないですがそれぞれのページで 同じ関数を入れるだけです。 ご質問の意図をはずしてたらすみません。
補足
ありがとうございます。 質問は前者になります。 >前者なら、メニューバー→表示→改ページプレビュー >でページ区切りを表示させて、その都度SUMで合計を出せばよいのでは? とのことですが、ページ数が100ページを超えてしまうため、アナログ作業ではなく、 自動的に合計が出るようにならないかなぁ、と考えております!
補足
ありがとうございます。 タイトル行を各ページに設定している為、改ページがつねに20行づつとは限らないのですTT やはりアナログ方法しかないのでしょうか。。