No.2ベストアンサー
- 回答日時:
シート名タブを右クリックしてコードの表示を選び,現れたシートに下記をコピー貼り付ける
private sub worksheet_change(byval Target as excel.range)
dim ta as range
dim ha as range
dim h as range
dim d as range
set ta = application.intersect(target, range("G22:G" & cells.rows.count))
if ta is nothing then exit sub
for each ha in ta.areas
for each h in ha
if h = "合計" then
cells(h.row, "AD").formula = "=SUBTOTAL(9,AD21:AD" & h.row - 1 & ")"
elseif h = "小計" then
set d = range(range("G21"), h.offset(-1)).find(what:="小計", after:=h.offset(-1), lookin:=xlformulas, lookat:=xlwhole, searchdirection:=xlprevious)
if d is nothing then set d = range("AD21")
cells(h.row, "AD").formula = "=SUBTOTAL(9,AD" & d.row + 1 & ":AD" & h.row - 1 & ")"
set d = range(h.offset(1), cells(cells.rows.count, "G")).find(what:="小計", after:=h.offset(1), lookin:=xlformulas, lookat:=xlwhole, searchdirection:=xlnext)
if not d is nothing then
cells(d.row, "AD").formula = "=SUBTOTAL(9,AD" & h.row + 1 & ":AD" & d.row - 1 & ")"
end if
end if
next
next
end sub
G列に小計や合計と記入する。
合計はまぁ1つしか無いという事にして,小計は上下で重ならない範囲を計算することにします。これに伴い,既存の小計範囲に割り込んで小計を挿入した場合は,既設小計の範囲を縮小します。
2層以上の中計小計をしたいときは,アウトラインの機能などを組み合わせてエクセルが最初からもっている集計の機能などを使って下さい。
ていうか,一体どこからどこまでの小計を出させたいのかは,あなたが本来考えて必要なら「こうしたい」をご相談すべき内容です。
No.5
- 回答日時:
>任意のG行に小計・合計と入力すると
Gなどは列を指定するために使う。
だから何のいみかわからない。
数量X単価を出すなら、VBAで処理するにしても、
=Range("V21")*Range("Z21")
あるいはセルにFormulaで式を入れる方法もある。
で良いのでは。
>小計・合計と入力すると
なぜこういう文字列を入れる必要があるのか。
ーー
私が質問の意味を、誤解しているかも知れないが、原因はデータ例の構成を(数行で良いが)を質問文に書かないからだと思う。
ーーー
これはどういう場面で計算するのか
1社の明細が入力を終わったとき?
1行のデータを入力が終わったとき?
何か合計ボタンに様なものをクリックしたとき?(<-小計、合計と入力したら、はこの意味か?)
ーーー
>3行ほどの見積もあれば100行を超える見積もあります
これは1社辺りのことか。
ひょっとしてSUMPRODUCT関数で出来ることを言っているのか
Σ単価X数量のいみで
単価X数量の行合計か?
No.4
- 回答日時:
ワークシート関数でもできる事をVBAで実現しようとしている事はご質問者がVBAをマスターしたいという事と想定すると質問の丸投げはやめて挫折しているコード等を質問すべきと思います。
No.3
- 回答日時:
VBAでなく、エクセルの普通の計算式を入れればいいですね。
AD21に「=V21*Z21」の数式を入れておけば、自動的に入りますが、普段は、非表示にしておくのであれば、IF関数を使います。
任意のG列を仮にG2とします。
それでAD21に次の式を入れます。
=IF(G2="小計",V21*Z21,"")
これは、G2に小計と入力された場合、V21とZ21をかけた答えを表示する、という意味です。
No.1
- 回答日時:
セル
G21 商品名
・・・・・AD21 金額(V21:数量*Z21:単価)
これは見出し行で、その下にデータが入力されるという事でいいのかな??
>エクセル2007でVBAを何度も挫折しています
ちなみに今回はどういうVBAを考えて、どこで挫折しているんでしょうか??
G行の最下段を選択して、その直情のデータ入力行(Ctrl+↑)へ飛んで
>任意のG行に小計・合計と入力すると
この位置を選び、そこから相対的に23セル右(ADxx)を選んで、AD22からの合計を出す式を入力する
・・・・・こんなんじゃ駄目かな??
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) グループの最後の行に書式、計算式なども同じ行を追加するマクロを教えてもらえませんか。 7 2022/05/18 10:13
- Excel(エクセル) エクセルの関数いれれますか? 1 2022/03/25 20:39
- Excel(エクセル) IF 関数で「〇〇 という文字を含む場合」の分岐処理で表示された数字はSUMで数字集計できますか? 3 2022/08/02 16:29
- Excel(エクセル) エクセルで値ではなく関数を参照する方法 6 2023/03/19 00:50
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Excel(エクセル) Excelで特定の文字列を判定し計算する数式を教えて下さい。 1 2022/05/01 12:04
- Visual Basic(VBA) VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お 6 2023/05/17 01:40
- Excel(エクセル) エクセルVBA 任意のセルの選択時、指定のセルの値を表示 1 2023/04/21 08:13
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Excel(エクセル) エクセルでセルに何らかの文字が入力されたらそれを任意の数値として認識させる方法がしりたいです。 3 2023/03/16 20:19
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
Excel VBA 「小計」と入力したら自動計算
Excel(エクセル)
-
Excelでセルに「小計」と入力したら自動に計算してくれる関数
Excel(エクセル)
-
EXCELでマクロを使って、小計、合計の出し方
Excel(エクセル)
-
-
4
エクセルで行を挿入し、小計、合計を出したい
Visual Basic(VBA)
-
5
エクセルでページ毎の小計から最終ページで合計を出したい。
Access(アクセス)
-
6
Excelの小計機能をVBAでやりたいです。
Excel(エクセル)
-
7
エクセル マクロで数値が変った時行挿入できますか
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
背景色の有無を判断をして別の...
-
Excelで全シートから検索し列で...
-
EXCELで2つの数値のうち大きい...
-
Excel元に戻す方法を教えてくだ...
-
Excelで隣のセルと同じ内容に列...
-
エクセルで二つの数字の小さい...
-
エクセルでオートフィルタのボ...
-
「B列が日曜の場合」C列に/...
-
2つのエクセルのデータを同じよ...
-
エクセルで時刻(8:00~20:00)...
-
エクセルで最初のスペースまで...
-
PowerPointで表の1つの列だけ...
-
Excelのオートフィル
-
SUMIFとCOUNTIFを合わせたよう...
-
A列がない・・・A列が非表示に...
-
エクセルのオートフィルタで最...
-
エクセルで、2種類のデータを...
-
【スプレッドシート】指定の日...
-
【エクセル】区切り位置で分割...
-
文字列に数字を含むセルを調べたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
背景色の有無を判断をして別の...
-
任意のセルに小計、合計と入力...
-
結合のループ処理のマクロ
-
Excelで全シートから検索し列で...
-
EXCELで2つの数値のうち大きい...
-
Excelで隣のセルと同じ内容に列...
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセルで最初のスペースまで...
-
2つのエクセルのデータを同じよ...
-
エクセルで、2種類のデータを...
-
エクセルで時刻(8:00~20:00)...
-
エクセルのオートフィルタで最...
-
エクセル 同じ値を探して隣の...
-
エクセルでオートフィルタのボ...
-
SUMIFとCOUNTIFを合わせたよう...
-
エクセル(勝手に太字になる)
-
「B列が日曜の場合」C列に/...
-
エクセル 文字数 多い順 並...
-
EXCELで 一桁の数値を二桁に
おすすめ情報