dポイントプレゼントキャンペーン実施中!

   A , B
1: 1月,1000円
2: 2月,2000円
3: 計,SUM(B1:B2)
4: 月,  円

という表があります。
4行目を常に計行(上記の場合は3行目、仮に3月分まで入力している場合は4行目になる)の上に挿入し、合計は挿入行分も含まれる、というマクロは可能でしょうか?
ご存知の方おられましたらご教授願います。

A 回答 (4件)

こうかな?



Sub aaa()

  Dim ws As Worksheet
  Dim rge As Range
  Dim r As Long
  
  
  Set ws = ActiveSheet
  
  Set rge = ws.Range("A:A").Find("計") 'A列で検索
  If rge Is Nothing Then Exit Sub '見つからない場合は中断
  r = rge.Row '見つかったら行番号を取得
  '計というセルに挿入
  ws.Range("A" & r & ":B" & r).Insert xlDown
  'コピーする
  ws.Range("A" & (r + 2) & ":B" & (r + 2)).Copy
  '値だけ貼り付け
  ws.Range("A" & r & ":B" & r).PasteSpecial xlPasteValues
  '合計欄の更新も忘れずに
  ws.Range("B" & (r + 1)).Formula = "=sum(B1:B" & r & ")"

End Sub
    • good
    • 0
この回答へのお礼

自力ではc列に補助的に関数使ってようやく完成できた・・・と思ってたのですが、

phoenix343さんの構文で完璧です!感動しました!
本当にありがとうございます。

お礼日時:2009/03/07 14:06

質問内容に矛盾点が


>4行目を常に計行の上に挿入

質問文の例にこの動作を行うと合計行が4行目になりますよね、次にマクロを実施すると4行目の合計行の上に合計行を挿入する形になってしまいます。
   A , B
1: 1月,1000円
2: 2月,2000円
3: 3月,3000円
4: 計,SUM(B1:B2)SUMの引数がどう変化するかは不明ですが
5: 計,SUM(B1:B2)
こんな形になりますが、これが目的ですか?

この回答への補足

説明不足ですいません。
初期の状態では4行目ですが、マクロを行うごとに1行ずつ下がりますので1回行うと5行目、2回行うと6行目をコピーして挿入、といった形になります。ですので1回行った場合の表示が
   A , B
1: 1月,1000円
2: 2月,2000円
3: 3月,3000円
4: 計,SUM(B1:B3)
5: 月,円
で、次は5行目を4行目の上に挿入して
   A , B
1: 1月,1000円
2: 2月,2000円
3: 3月,3000円
4: 4月,4000円
5: 計,SUM(B1:B4)
6: 月,円
という形にしたいのです。

補足日時:2009/03/07 11:48
    • good
    • 0

Sub aaa()


Dim i As Integer, j As Integer
Dim kei As Long
i = Cells(Rows.Count, 1).End(xlUp).Row

Rows(i - 1).Insert
Rows(i + 1).Cut Rows(i - 1)

For j = 1 To i - 1
kei = kei + Cells(j, 2).Value
Next j
Cells(i, 2).Value = kei
Cells(i + 1, 1).Select

End Sub

ご質問の意図に合ってますでしょうか。

この回答への補足

あと、マクロ実行後、計行の合計値がsum関数でなく、数値になってしまうのですが、これはsum関数で残しておくのは無理なんでしょうか?

補足日時:2009/03/07 12:08
    • good
    • 0
この回答へのお礼

6行目をcutでなくcopyにすると期待していたものに近くなりました!
マクロは記録しかしたことがなくてVBA(?)はさわった事なかったんですが勉強になりました。まだ内容そのものは理解しきれてないんですが、解読してみます。
ありがとうございました。

お礼日時:2009/03/07 12:08

おはようございます。


無理ですよ。マクロ(VBA)といっても万能ではありません。
ぜひ勉強して試してみてください。無理なことがわかります。
合計行の上を空けておけば、行挿入するだけで合計に含まれますから、ぜひそうしてください。
    • good
    • 0
この回答へのお礼

PCの苦手な上司達にマクロボタンで簡単に、と思ったもので・・・
でもどうにかなるものですね、マクロ・・・奥が深いです。

お礼日時:2009/03/07 14:07

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