• ベストアンサー

エクセルマクロ、集計行の上に空白行挿入

エクセルデータがA、B、C、D、E列1000行まであります。 C列基準でE列を合計するマクロを作成しましたが(集計行はデータの下に挿入)、実行の結果、新たに挿入される集計行の上に空白行を1行挿入していくということを、作成したマクロに付加できるでしょうか? ご教授頂きたく、お願いします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

だいたい次のようなカンジになります Sub Macro1()  Dim i As Long ’集計を挿入する  Range("A1").RemoveSubtotal  Range("A1").Subtotal GroupBy:=3, Function:=xlSum, _   TotalList:=Array(5), Replace:=True, PageBreaks:=False, SummaryBelowData:=True ’集計行の前に空行を挿入する  For i = Range("A1").CurrentRegion.Rows.Count To 1 Step -1  If Cells(i, "A").EntireRow.Summary Then   Cells(i, "A").EntireRow.Insert shift:=xlShiftDown  End If  Next i End Sub が, >空白行を1行挿入していく そういうことは「しない」ことを強くお薦めします。 空白行を挿入すると範囲の連続がそこで途切れてしまい,続きの仕事(たとえば挿入した集計を削除するとか,再度集計するといった事を含めて)に色々な支障を来します。

ez6zdscq
質問者

お礼

早速のご回答ありがとうございました。 試してみたら思った通りにできました。助かります。 因みに行挿入は一番最後の工程なので後作業はありません。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

どういうVBAコードで集計しているのか、書かないで、この質問をするのはおかしいのでは。 コードとかやり方(ロジック)だけでも、など。他人には判るはずが無い。 例えばC列でキーが切れるごとに1行合計を挿入するなど下手なやり方だし、マクロの記録で「集計」でやったのなら、質問の件は難しいから、事後にするとか。 それに、データの小数例示もして質問すること。

ez6zdscq
質問者

お礼

集計は、操作のマクロ記録で行いました。 keithinさんの回答で解決しました。 ありがとうございました。

関連するQ&A

  • エクセルマクロ、空白行(セル)の挿入

    データがA、B、C、D、E列100行まであります。 このうちD、E列を除き、エクセルのマクロで1行ごとに空白で10行挿入したいです。 (A、B、C、D列のデータに空白セルを10行分挿入し、下にシフトするイメージ。D、E列はそのまま。) ご教授頂きたく、お願いします。

  • エクセルで1行ごとに空白行を挿入し、挿入した空白行に色をつけたいです

    タイトルの通りです。 エクセル(2000)で、データはシート毎に件数が違います。 各シート毎にそれぞれ1行毎、空白行を挿入し、挿入した空白行のA列~G列までに薄いグレーの色をつけるマクロを入れたいのですが、うまくいきません。 詳しい方、教えて下さい。

  • エクセル 集計行をデータの次の行に表示させたい。空白セルを削除したい。

    基準となるグループの最後のグループの集計行はなぜか、選択範囲の下に表示されます。 例えば  1行目  会社 サービス 単価  回数  合計金額  2行目   A    1   100   2    200  3行目   A    2   150   3    450  4行目   B    4   1000   4    4000  5行目   C    3   500   10   5000     以下空白   :   :   :    :  (20行目)   ここまで空白 以上のような任意の表(1行目から20行目までデータが入力されています。上記のような3社で4行で終わる場合もあれば、5社で10行という場合もあります)で会社ごとの合計金額を集計したい時に、(1行~20行を選択し、グループの基準:会社 集計の方法:合計 集計するフィールド:合計金額 集計行をデータの下に挿入という設定)  1行目  会社 サービス 単価  回数  合計金額  2行目   A    1   100   2    200  3行目   A    2   150   3    450  4行目     A集計            650  5行目   B    4   1000   4    4000  6行目     B集計            4000  7行目   C    3   500   10   5000      以下空白   :   :   :    :  23行目     C集計            5000  24行目     総計             9650 となってしまいます。上記の参考データならば 8行目から22行目までが無駄に空白ができてしまいます。 これを、8行目にC集計を表示させることはできるのでしょうか? 集計後の表をコピーして他シートに貼り付けるマクロを組んでいます。 データによっては、1つの会社の集計が表示されません。宜しくお願いいたします。上記を満たすマクロでも結構です。

  • excel マクロ ○○集計 の下に空白行を2行入れる

    Win XP Office2000 マクロ初心者です。 エクセル集計機能を使って作った表の太字で表示される○○集計の 行の下に空白行を2行挿入したいのです。 普通に行の挿入をすると○○集計の上に入ってしまいます。 Sub 行の挿入() Selection.SpecialCells(xlCellTypeFormulas,).Select Selection.EntireRow.Insert End Sub このマクロに何かを加えるとできると思うのですが、よろしくお願いします

  • エクセルのマクロ(行を挿入し連番を振る)

    ボタンを押すと以下のことを実行するマクロを作成することはできますか? A列2行目から 書類a 書類b 書類c 書類d 書類e C列2行目から 5 3 2 4 3 と入っています。C列は各書類の枚数です。 ボタンを押すと書類aと書類bの間に4行空白行が挿入され、A列とC列は増やした4行にそれぞれ書類a、5がコピーされ、B列には2列目から6列目まで1.2.3.4.5と連番が振られる。 というマクロです。 B列C列で1/5 2/5 3/5 4/5 5/5 であるという表現がしたいのです。(/は入りません) 書類が1枚の場合はB列C列共に空白で1/1とは入りません。 C列に入る書類の枚数により行が挿入されその書類の枚数分の連番が振られるようなマクロが作りたいです。 毎日何百行も手作業で挿入しコピーし連番を振る作業をしています。 決まった行数を増やすとか上の行をコピーするマクロならわかるのですが、C列の値を見て挿入する行数を判断するようなマクロができるのかわかりません。 どなたか教えて頂けないでしょうか。

  • excelのマクロで条件による行の挿入

    列AとBがあり列Aに学校のクラス名A組、B組、C組・・・(20クラスほど)と氏名が 入るエクセルシートがあるのですが 先頭行はA組から始まり5行区切りで数え、(A組も5行のうちに入る) その5行内に次のB組が入らないように空白行を挿入したいです もし、5行以内にB組がない場合、次の5行でまたB組があるか判定しなければ氏名5つ あれば空白をいれてというのを20クラスぶん作るマクロは可能でしょうか? VBAの知識がさっぱりないので途方にくれています。 元のデータの例   マクロ実行後 列A   列B      列A   列B A組           A組   氏名1 111      氏名1 111  氏名2 222      氏名2 222 B組           空白行挿入 氏名3 333      空白行挿入 氏名4 444      B組 氏名5 555      氏名3 333 氏名6 666      氏名4 444 氏名7 777      氏名5 555 C組 氏名6 666              氏名7 777              空白行挿入              空白行挿入              空白行挿入              空白行挿入              C組  

  • Excelで集計したとき、集計行にその上の行の文字データを表示させたい

     Excelで集計したとき、合計行には数字などの列データは合計されますが、文字列データの列は数字が出てくるので、折りたたんだときに、たとえば(顧客名の列でAさんだとたら)合計行にも、Aさんという文字を表示させたいです。  手順としては集計させたあとに、マクロで合計行にもその上の文字列を単純にコピーできたらいいです。  手作業でもいいのですが、顧客名が多くて大変です。よろしくお願いします。

  • Excelの集計機能

    エクセルの集計機能についてお聞きしたいと思います。 A~Fまで300行ほど空白セルなしで作成したシートがあります。 (1行目は項目名としています) そこから操作手順として、 (1)F列を昇順で並び替え (2)集計機能にて、グループの基準:B列、集計の方法:合計、集計するフィールド:E列、他のオプションは無効として実行 (3)同じく集計にて、グループの基準のみC列に変更して実行 (4)同じく集計にて、グループの基準のみD列に変更して実行 すると、(2)の時点で上部に総計がありその下に集計があり、集計の下に集計がありさらに下に集計がある、入れ子になってぶら下がる状態になるはずなんです。 ところが私の環境では最上部の集計のみ上側に入れ子になってしまいます。 わかりづらいかと思いますが、 A列|B列|C列|D列|E列|F列|   |総計|  |  |  |  |   |(2) |  |  |  |  |   |  |(3) |  |  |  |   |  |  |(4) |  |  | とならなければならないのに、 A列|B列|C列|D列|E列|F列|   |  |  |(4) |  |  |   |  |(3) |  |  |  |   |総計|  |  |  |  |   |(2) |  |  |  |  | となってしまうのです。 Microsoftのホームページにてレジストリ(Excel97Subtotals)を追加すると修正されるとあったので実施してみました。 ですが2番目の集計以降は正常なのですが、最上部だけやはり上側に入れ子されているような状態です。 Excelのバグなのでしょうか? 環境は、 WindowsXP SP2 Office2003 SP2 です。 おわかりになられる方がいらっしゃればご助力お願いいたします。

  • Excel 空白行を上に詰めるマクロ

    関数を使用して、sheet1からsheet2に必要なデータを抜き取りました。 sheet2のセルには関数が入っています。 sheet2の抽出データには1行単位(まれに2~3行続けて)空白が発生します。 この行を削除し、かつ上に詰めて表示をしたいのですが、下記の条件で実行可能でしょうか? (例) sheet1 ⇒ sheet2   A   B   C     A  B  C 1 あ  い  う   1 あ  い  か 2        か   2 (空白行) 3 き  く   け    3 き  く  し   4 こ  さ   し   4 (空白行) ●2行目、4行目を削除し、且つ5行目以降に入力されている関数は削除したくない ●空白行削除のマクロは自動?(sheet1のデータを変更したら)で実行できるようにしたい よろしくお願いします。

  • 特定文字のある行の前に空白行を挿入したい

    5000行ほどあるエクセルファイルで、 「■」の文字がある行の直前に空白行を挿入したいと思っています。 「■」のある行が1500行ほどあるので、 手作業は大変かと思い、マクロでやるのはどうかな?と おもったのですが、既存のマクロを少し修正することはあっても 初めからマクロを組んだことがないので、 どう書けばよいかわかりません。 データはA列にしか無い状態で、 「■」がある行の直前に空白行を挿入するマクロは どのように書けばよいのでしょうか? ご教授のほどお願いします。

専門家に質問してみよう