• ベストアンサー

エクセル2010で合計の一行上に行の追加をしたい

会社に提出する精算書を作っています。 ボタンフォームで「行を追加する」を押すと 合計のある一行上の、日付から始まる9項目の空行がコピーされる、 というマクロを作りたいのですが Range("合計").EntireRow.Insert では入りません。 行には行番号はふっておらず、9項目すべて空で 合計行の金額セルにのみSumが入っています。 シートには結合セルはありません。 合計行より下には印鑑を押す欄などがあり、 セル幅や書式設定はそのままにしておきたいのですが 何かよい方法はありませんでしょうか。 どうぞよろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • hananoppo
  • ベストアンサー率46% (109/235)
回答No.2

合計行のどこかのセルまたはセル範囲に、「合計」という名前が定義されていればそのコードでよいですよ。 ただ、合計行に行を挿入しただけだと、SUM関数のセル範囲に挿入行は含まれません。 そこで次のようなコードにしてはどうでしょう。 Dim SumRow As Long SumRow = Range("合計").Row Rows(SumRow - 1).Insert Rows(SumRow).Copy Rows(SumRow - 1) Rows(SumRow).ClearContents

enjoyeveryday
質問者

お礼

ご回答ありがとうございました! SUM関数のセル範囲に挿入行は含まれないのですね。 おっしゃる通りでした。 Range関数のgrobalエラーが出ましたので、Cells.Find("合計")と組み合わせたところ動きました! 些末なことですが、一晩寝ずに試していたので助かりました! 本当にありがとうございました!!!

その他の回答 (1)

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.1

Range( ) の中に書くのはアドレスであって、値ではありませんよ。 とりあえず Cells.Find("合計").EntireRow.Insert ではどうですか?

関連するQ&A

  • EXCELで一行間隔の数値の合計をする関数?教えて

    タイトルの通りなのですが、一行間隔の数値データを合計する関数を教えてください。一行間隔以外のセルには他のデータが入っているのでSUM関数は使えません。

  • insertとupdateを一行で。

    postgreSQL8.0を使っています。 こういうことは可能でしょうか? 通常の流れでいえばselectで検索し、すでに項目があればupdateで、 なければinsertという3行になってしまうものを可能であれば一行で書きたいのです。 もし可能であればどのような書式になるのでしょうか? よろしくお願いします。

  • エクセル 行を挿入しても正しい合計値を出す方法。

    添付のようなエクセルの表を作成して管理台帳としています。 (実データは載せられないため、簡易版にしています。) 今、B9セルには(=SUM(B3:B8)が入っています。 8行目と9行目の間に行を挿入しても、合計値がきちんと(=SUM(B3:B9)の値を持ってくるようにしたいです。 過去の質問 http://okwave.jp/qa/q4644868.html 参考にして、『あ』ではできたのですが、『い』、『う』、『え』、『お』でも同様に合計値を出したいのです。 『あ』で行を挿入すると、『い』、『う』、『え』、『お』の各項目の行がずれて、 さらに『い』、『う』、『え』、『お』でも行の挿入を行います。 (挿入する行は、『あ』、『い』、『う』、『え』、『お』すべて合計値の前の行に挿入します。) きちんと、『あ』、『い』、『う』、『え』、『お』の各合計値を出す方法はありますでしょうか。 私が使っているのはエクセル2007ですが、エクセル2000を使っている人に渡すデータです。

  • Excelで、セル範囲(自分の1行下:空白セルの上)、を求めることできますか?

    Excelで、セル範囲(自分の1行下:空白セルの上)、を求めることできますか? A列 ────── 2004年   3 ← =sum(A2:A3) 2004/11  1 2004/12  2        ← 空行 2005年  5 ← =sum(A6:A8) 2005/1  3 2005/2  2 2005/3  0        ← 空行 sum()の引数(合計範囲)を求めることできますか? 手作業で"A6:A8"等入力していかないとできないのでしょうか?

  • エクセルで表示行の値だけの合計を求めるには?

    たとえばSUM関数を使うと、指定したセル範囲の中に非表示の行があった場合、その行の値も合計に含まれますが、それを含まない合計(非表示の行を無視する合計)を求めるにはどうしたらよいですか。 よろしくお願いします。

  • 該当する数字の一行上のセルの間の合計を求めたい

    該当する数字の一行上のセルの間の合計を求めたいです. 具体的に説明します. (1) 横長の表(C3:L4)の2行目から、A1の値と同じ値のセルを探したいです.(図の場合だと、F4) (2) (1)で探したセルの一行上のセルを探したいです.(図の場合だと、F3) (3) (1)と同様に、A2の値と同じ値のセルも探したいです.(図の場合だと、I4) (4) (2)と同様に、(3)で探したセルの一行上のセルを探したいです.(図の場合だと、I3) (5) (1)のセルから(4)のセルまでの合計を出したいです.(図の場合だと、sum((2)で求めたセル番号:(4)で求めたセル番号)) 補足 表の1行目のセルの値は、0または、整数でない値です. A1とA2の値は、0でない正の整数です. A1はA2よりも小さい値です. 表の行数は2行で、列数はA2の値よりも必ず多いです. A1とA2と表の組み合わせは、約5000個あります. どうか、関数を小分けにして教えて下さい. どうぞよろしくお願いします.

  • Excelマクロの繰り返しの書き方

    Excelマクロで、下記のような操作を、B4行から、B100まで 繰り返したいです。 このような行を、100行まで書くのは、面倒なので、 For Nextや、Do loopを使いたいのですが、 いろいろな指南書を読んでも、セル内の書式がイマイチ理解できないので、 申し訳ないのですが、どなたか、ご指南いただけないでしょうか? Range("B4").Select Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove Range("B6").Select Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove 同様な問題ですが、下記を50行繰り返したい、 上記のご回答をいただければ、下記も理解できると思うのですが 下記も作れないで困っています。できれば、これも教えていただければ助かります。 Range("A5").Select Selection.EntireRow.Delete Range("A6").Select Selection.EntireRow.Delete Excelのversionは2019です。 以上、よろしくお願いします。

  • 結合されているセル行の中から1行だけを非表示にするマクロ

    結合されているセル行の中の1行だけを非表示したいと思っています。 例えばA1:A5が結合していて、B1:E5までは一切結合されていない状態で、3行目だけを非表示にしたいのですが、 Rows("3:3").Select Selection.EntireRow.Hidden = True とすると、1~5行目まで全てが非表示になります。 マクロを自動記録すると Rows("3:3").Select Range("B3").Activate Selection.EntireRow.Hidden = True となるのですが、この通りにコーディングしても、やはり1~5行目が非表示になります。 1行だけを非表示にしたい場合は、どのように記述すれば良いのでしょうか? よろしくお願いします。

  • エクセルのマクロで行選択

    現在、エクセルでマクロを組んでいます。 行いたい内容としては 1.行6~1765までを選択 2. 1.で選択した行を非表示 3. 行6~"セルH2の値"までをを選択 4. 3.で選択した行を再表示 3の段階で失敗してしまいます。 Rangeメソッドに失敗しました、と出ます ソースは以下のとおりです ----- Private Sub CommandButton2_Click() Dim x As Integer Range("6:1765").EntireRow.Select Selection.EntireRow.Hidden = True x = Range("H2").Value Range("6:x").EntireRow.Select Selection.EntireRow.Hidden = False End Sub ---- 解決法がわかる方、教えてください よろしくお願いします。

  • エクセルで、合計関数

    sumで合計するのはわかりますが 「a2 a5 a8 a11・・・・」というように3つ跳びのセルをa334まで合計する方法をお教えください。 sum(a2+a5+a8+a11・・・・)は項目が多すぎて記述できません。 sum(a2:a334)は、関係ないセルまで合計に入ってしまいます。

専門家に質問してみよう