No.13ベストアンサー
- 回答日時:
#06、#11です
昨日upしたマクロは合計行を入れる列がG列固定になっていました。最初のCONSTで設定した列に合計行を入れるように修正しましたので、こちらのマクロをご使用下さい。動作は確認しました
Private Sub Worksheet_Change(ByVal Target As Range)
Dim LastRow, StartRow As Long
Const RETSU As Long = 7 'G列はA列から数えて7列目。列を変えるときはここを修正
On Error Resume Next
Application.ScreenUpdating = False
Application.EnableEvents = False
If Target.Column = RETSU Then
With Range(Cells(1, RETSU), Cells(65536, RETSU))
.Font.ColorIndex = 0
.SpecialCells(xlCellTypeFormulas, 23).ClearContents
StartRow = .SpecialCells(xlCellTypeConstants, 1).Cells(1, 1).Row
End With
LastRow = Cells(65536, RETSU).End(xlUp).Row
With Cells(LastRow + 1, RETSU)
.FormulaR1C1 = "=SUM(R" & StartRow & "C" & RETSU & ":R" & LastRow & "C" & RETSU & ")"
.Font.ColorIndex = 5 '青色
End With
End If
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Sub イベント復活()
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
No.12
- 回答日時:
>印刷を余白最低にしてもスペースの関係で横列は増やせないので
印刷は関係ありません。
入力中に途中経過の合計がわかればよいのでしょう。
印刷範囲外の空いたセルに合計を表示させます。
あなたがどんな表を作っているのか、こちらではわかりませんので、
「空いたセル、たとえばH1セルに」と記しました。画面上の邪魔にならない空いたセル(画面に表示されている部分と印刷できる範囲とは違います。印刷範囲外でも、画面に出ているセルなら、仮に表示できるでしょう)に式を設定します。
印刷したい部分を範囲指定して、「ファイル」-「印刷範囲」とすれば、印刷する部分を指定できます。
質問では、G1からG1000までの合計を求めていますので、タイトル行を作っていないように思われます。
何の項目か判るように、タイトル行を入れておいたほうが、作成中も後々も便利だと思います。
前にも説明したように、タイトル行を作って、ウィンドウ枠を固定しておけば、常に表示されます。
なお、この場合データはG2からですので
=SUM($G$2:$1000)
という式になります。
この回答への補足
あーーーーみなさんすみません(>_<)
こんなにたくさん、ありがたいのですが・・・
印刷は毎日するので最後に合計を印刷したいので。
ページが増えるのは構わないのですが、
まとめて最後に印刷したいのです。
(別にすると書類として幼稚だそうで・・・)
表としては解決できそうですがm(__)m
この手は疎いですし
私は、やはり勉強不足ですので今後勉強しますが、
なんとか今も試してます。
手書きで最後に書け!とかいわれないかひやひやしてます(>_<)
皆様の知識には敬服します。
06-07-03 02:07
すみません、難しく、なかなかうまくいかず、
そろそろ限界なので寝ます。
勉強しながら、今後作り直します。
お時間を下さい(>_<)
No.11
- 回答日時:
#06です
お仕事ごくろうさまでした
マクロは入力するシートを開いた状態でAlt+F11(VBE画面が開く)→F7(コード入力画面が開く)→そこにペースト
です。「すごいことになった」とはどういうことでしょうか。現象が分かれば再度回答いたします
No.9
- 回答日時:
こんばんは。
例えば、G1 ~G79 までデータ(文字または数値)があるとして、完全な空白値(Empty)がないとすれば、
G80は、
=IF(SUBTOTAL(3,$G$1:G79)<>ROW(A79),"",SUM($G$1:G79))
このような式にしておいて、この式を、必要範囲まで、ずっと下まで入れておきます。
次に、G80に、数式のある場所に上書きで数字を入れれば、その直下に合計が出てきます。
ただし、数式はダメです。それから、数式は、常識的な量にしてくださいね。ワークシートが重くなることがあります。
数式なしに、数式を入れる場合は、イベント・ドリブン型のマクロにしなければなりません。
データが切れ目なく続いているのでしたら、合計が出てきます。もし、空白値が必要ならは、「""」を使えばよいですし、文字列も途中で入れられます。
No.7
- 回答日時:
同じG列ではありませんがH列に合計がでるのでは駄目でしょうか?
H1セルに =IF(COUNTA(G$1:G$1000)+1=ROW(G1);SUM(G$1:G1);"")
と入力しH1000セルまでコピー
但しG列が順番に入力されている事が条件になります。
この回答への補足
補足遅くなりまして申し訳御座いませんm(__)m
表としてはできるのですが、
印刷を余白最低にしてもスペースの関係で
横列は増やせないので、
その日入力終わりましたら、直近の最後に合計でれば
凄い便利だと想い、試しております。
(今日は756件入力→リンクして757件目に合計)
No.6
- 回答日時:
このマクロはG列に変更があったとき、最後のセルの下に合計行を入れるものです。
データ入力するシートのマクロとしてペーストして下さい。なおG列の計算式は無条件に削除しますのでご承知おきください。
ただイベントを殺してしまうのでちょっと危険なマクロです。もし途中で動かなくなったら一緒につけたイベント復活マクロを実行して下さい
Private Sub Worksheet_Change(ByVal Target As Range)
Dim LastRow, StartRow As Long, RngNumber As Range
Const RETSU As Long = 7 'G列はA列から数えて7列目。列を変えるときはここを修正
On Error Resume Next
Application.EnableEvents = False
If Target.Column = RETSU Then
With Range(Cells(1, RETSU), Cells(65536, RETSU))
.Font.ColorIndex = 0
.SpecialCells(xlCellTypeFormulas, 23).ClearContents
StartRow = .SpecialCells(xlCellTypeConstants, 1).Cells(1, 1).Row
End With
LastRow = Cells(65536, RETSU).End(xlUp).Row
With Cells(LastRow + 1, RETSU)
.Formula = "=SUM(G" & StartRow & ":G" & LastRow & ")"
.Font.ColorIndex = 5 '青色
End With
End If
Application.EnableEvents = True
End Sub
Sub イベント復活()
Application.EnableEvents = True
End Sub
この回答への補足
有難う御座いますm(__)m
今何度かためしたのですが、凄い事になりました(>_<)
以下をG列の場合(7番めで間違いありません)何処にいれればよいのでしょうか?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim LastRow, StartRow As Long, RngNumber As Range
Const RETSU As Long = 7 '
On Error Resume Next
Application.EnableEvents = False
If Target.Column = RETSU Then
With Range(Cells(1, RETSU), Cells(65536, RETSU))
.Font.ColorIndex = 0
.SpecialCells(xlCellTypeFormulas, 23).ClearContents
StartRow = .SpecialCells(xlCellTypeConstants, 1).Cells(1, 1).Row
End With
LastRow = Cells(65536, RETSU).End(xlUp).Row
With Cells(LastRow + 1, RETSU)
.Formula = "=SUM(G" & StartRow & ":G" & LastRow & ")"
.Font.ColorIndex = 5 '青色
End With
End If
Application.EnableEvents = True
End Sub
No.5
- 回答日時:
トリッキーな方法ですが、VBAを使わないでやってみました
ただし、整数限定です
とりあえず、G1 に最初のデーターを入れておきます
G2 に
=IF(G1-INT(G1)<>0,0.1,SUM(G$1:G1)+0.1)
と入れます
書式設定で、小数点以下の桁数を 0 にします
条件付書式で条件(1)を
セルの値が、次の値に等しい、0.1、書式は文字色を白に
条件(2)を
数式が、=G3=0.1、書式はパターンで黄色等に(合計欄であることが判る様に)
して
このセルを、G1000 までコピーします
あとは、合計欄に新しいデータを上書きすると、その下に新しい合計が表示されます
ただし、合計以下には0.1が加算されていますが、表示はされません
No.4
- 回答日時:
問題が判りにくいが(>「25件入力→126件目に合計がでる」はミスタイプでは。
重要な箇所ですよ)VBAを使わないと、データ最終行の直下行ややその下に表示できません。
あえて無理むり関数でやってみると
標準モジュールに
Function hf(a)
If a.HasFormula Then
hf = 1
Else
hf = 0
End If
End Function
を入れて、
A2に =IF(hf(A1)=0,SUM($A$1:A1),"") と入れてA1000まで式を複写しておく。
1回限りで、A列のどこかに(普通続けて)数を入れると、直前行までの和が出ます。
上記VBAは初心者には何のことだか判らないでしょうし、1回限りというのも不便で、混乱の元です。そういうことで上記は際物です。
VBAを勉強し(上記のVBAとは関係ないですが)
(1)イベントとは
(2)ある列のデータ最終行をどう捉えるか
を学んでから考えることで、多分問題にするには早すぎるしょう。
エクセル関数の本質を判ってください。
この回答への補足
ご指摘有難う御座います、ミスタイプでした。
訂正します(>_<)
たとえば80件入力時は81件目に合計がでる
次に25件入力→106件目に合計がでる
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 条件書式でリスト内以外の単語に色をつけたい 1 2022/09/23 13:23
- Excel(エクセル) 列を自動で追加したい 3 2022/07/11 12:58
- Excel(エクセル) エクセルで文字列と数字が混在する列に書式設定したい。 3 2022/12/19 09:11
- Visual Basic(VBA) Excel のユーザー定義関数でソルバーが動作しない 1 2022/09/05 19:51
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- Excel(エクセル) エクセル 自動計算 1 2023/01/30 13:28
- Excel(エクセル) エクセル/列追加時、合計行の計算式 7 2023/03/15 11:14
- Excel(エクセル) エクセルで最初に値が入っているセルを見つける方法はありますか? 2 2023/07/18 14:58
- Excel(エクセル) Excel(エクセル)でフィルター抽出後、非表示の行を計算しないで、合計を算出する方法 【内容】 添 4 2023/01/30 17:17
- Excel(エクセル) エクセルでエラーを無視して一番左側のセルの値を返したい 2 2023/07/27 13:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelはなんで先頭の0を消すん...
-
Excel元に戻す方法を教えてくだ...
-
【Microsoft Office Excel Comp...
-
Excelが固まってしまった。
-
西暦や和暦の表示をyyyymmdd表...
-
Excel 2019 のピボットテーブル...
-
【関数】スペースがいくつ入っ...
-
【Excel】セル内の時間帯が特定...
-
excelの不要な行の削除ができな...
-
Excelのオートフィル
-
別シートからの文字を変更
-
Excelのセルを飛ばして入力する
-
Excel初心者です。 詳しい方、...
-
エクセルの行の抽出について質...
-
Excel初心者です。 詳しい方、...
-
【マクロ】エクセルにかいてあ...
-
EXACT関数とIF関数の組み合わせ...
-
スプレッドシート クエリ関数 1...
-
エクセルで指定した日付、店舗...
-
Excelのグラフ軸について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報