Excel VBAで8行毎に行を挿入する方法

このQ&Aのポイント
  • Excel VBAを使用して、指定の表に8行毎に行を挿入する方法について教えてください。
  • 現在の表は担当者ごとに売上区分A-Hを持ち、全体で100名の担当者がいます。
  • ボタンを押すと、担当者ごとにデータの下に新しい行が挿入され、A+B、C+D、E+F、G+Hという形式でデータが入力されるようにしたいです。繰り返し処理はすべての担当者に適用されます。
回答を見る
  • ベストアンサー

EXCEL VBA 自動で8行毎に行を挿入したい

お世話になります。 添付左図のような表があります。 この表をボタンをクリックしたら右図の表の様にするためのVBAロジックをご教授いただけませんでしょうか?(右図の黄色部分の行を自動で挿入したいのです) この表は担当者一人に対して売上区分というものをA-Hまで設けているため、一人のデータが必ず8行になります。 担当者数は現在は100名程度ですが、その都度変わるため可変にしたいです。 この担当者毎に8行あるデータを、ボタンを押したら新規に下行を挿入して[A+B]、続けて下行を挿入して[C+D]、[E+F]、[G+H]という具合に行を挿入する動作を全担当者のデータに全てに対して実施したいのです。 どなたかご教授いただけますでしょうか? よろしくお願い致します。 環境 windows XP SP3 Excel2003

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

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

>一人のデータが必ず8行になります。 これが事実である前提で。 sub macro1()  dim LastRow as long  dim r as long  lastrow = range("A65536").end(xlup).row + 1  cells(lastrow, "A").resize(4,3).formular1c1 = "=R[-1]C"  cells(lastrow, "D").formular1c1 = "=R[-8]&""+""&R[-7]C" ’若しくは単に ="A+B"  cells(lastrow + 1, "D").formular1c1 = "=R[-7]&""+""&R[-6]C" ’以下同じ  cells(lastrow + 2, "D").formular1c1 = "=R[-6]&""+""&R[-5]C"  cells(lastrow + 3, "D").formular1c1 = "=R[-5]&""+""&R[-4]C"  for r = lastrow - 8 to 3 step -8   range("A65536").end(xlup).offset(-3).resize(4,1).entirerow.copy   cells(r, "A").insert  next r ’必要に応じて生かす ’range("A1").currentregion.value = range("A1").currentregion.value end sub

yakkun2338
質問者

お礼

keithinさん、早速のご回答ありがとうございます! ご教授いただきました方法で完璧に実現できました!! いつもご丁寧なご説明誠にありがとうございます。 本当にありがとうございました。

その他の回答 (1)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! D列は 「A+B」のような文字列表示でよい訳ですよね? (足し算ではないという解釈) >ボタンをクリックしたら・・・ とありますので、コマンドボタンを挿入したとしての一例です。 Private Sub CommandButton1_Click() Dim i As Long, k As Long For i = Cells(Rows.Count, 1).End(xlUp).Row To 9 Step -8 Rows(i + 1 & ":" & i + 4).Insert For k = 1 To 4 With Cells(i + k, 1) .Value = .Offset(-1) .Offset(, 1) = .Offset(-1, 1) .Offset(, 2) = .Offset(-1, 2) .Offset(, 3) = .Offset(-9 + k, 3) & "+" & .Offset(-8 + k, 3) End With Next k Next i End Sub こんなんではどうでしょうか?m(_ _)m

yakkun2338
質問者

お礼

tom04さん、早速のご回答ありがとうございます! ご教授いただきました方法で完璧に実現できました!! いつもいつもご丁寧なご説明本当にありがとうございます!!! 本当に助かりました(^^)。 ありがとうございました。

関連するQ&A

  • EXCEL VBA 行のコピー

    お世話になります。 添付の表1のデータがあるのですが、これをボタンが押されたら自動で表2のようにしたいのです。 やりたい事・・・ 表1のA3から最下行までREADして品番(A??)と品名(B??)の空白セルを埋めたいのです。(表2黄色部分)各商品は最低でもデータ行が1行あり、各商品の行数は可変です。 最大でも10行程度だと思います。 どなたかご教授いただけますでしょうか? よろしくお願い致します。 環境 Windows XP SP3 Excel2003

  • EXCELVBA 自動で表にカンマ・罫線を入れたい

    お世話になります。 添付の左図の様な表があります。 この表に対して「罫線」というマクロのボタンをクリックしたら右図のようにしたいのです。 列は[担当者]・[区分]+該当月のカレンダー分あります。(1日~30日or31日) やりたいこと ・一人の担当者につき区分がA~Jまであります(固定)。A~Fまでカンマ表示させたい。 (添付左図はすでにカンマ表示になっていますが、本当はカンマ表示されていません) このA~Fのカンマ処理を人数分繰り返す(人数は可変) ・担当者毎(A~J)に太枠で囲みたい お忙しいところ恐縮ですが、どなたかロジックをご教授いただけますでしょうか。 よろしくお願い致します。 環境 EXCEL2013 Windows7

  • EXCEL VBA 条件による行の自動挿入

    お世話になります。 EXCEL VBAを使用して自動で行の挿入処理を実施したいと思っております。 やりたい事は添付図の表1を処理ボタンを押せば自動で表2のようにしたいのです。 表2の黄色部分が自動挿入させたい部分です。 例えば「表2作成」というボタンを押したら・・ [sheet1]にある表1をC1からC??の最終行までREADしてC??の文字列が [定価番販売実績]であれば・・ (1)[定価販売実績]の上の行に[定価販売予定]という行を挿入 (2)[定価販売実績]の下の行に[定価差異]という行を挿入 [得売販売実績]であれば・・ (3)[特売販売実績]の上の行に[特売販売予定]という行を挿入 (4)[特売販売実績]の下の行に[特売差異]という行を挿入 という作業を全商品に対して実施したいのです。 図では3商品ですが実際には変動ですが100~200品位です。 出来上がった新しい表2は別シートに表示できれば最高です! どなたか方法をご教授いただけませんでしょうか? よろしくお願い致します。 環境 Windows XP SP3 EXCEL2003

  • Excelの行挿入で

    Excelのシートにデータがつまっているのですが(これから新しく表を作るということではないということです。)、行の挿入をしたいのです。 このとき、行を選択して、右クリックで「挿入」を選べば挿入自体はできます。 しかし、 既にある表は、行が、A列とB列が結合されているのですが、 単に上記のように挿入すると、 A列B列が分かれている行が挿入されてしまいます。 新しく挿入された行のA列とB列を選択して、「セルの書式設定」の「配置」でセルを結合させてもいいのですが、 いちいちそうしなくても 挿入時点ですでに結合されているようにするにはどうすればよいですか。 (Excel2000)

  • Excel VBA で行挿入

    Excel2002を使っています。 質問させていただきます。 VBAで行を挿入したいのですが、たとえば以下のようにデータがあります。  A列  東京  東京  東京  大阪  大阪  名古屋 予めデータはソートされています。 この状態で、東京と大阪の間、大阪と名古屋の間に1行挿入(空行)したいです。 コマンドボタンをクリックしたときの動作の一つとして実現したいのですが方法がわかりません。 ご指導いただければ幸いです。

  • エクセル 行の自動挿入

    下のようなエクセルの表で、 1  平成24年5月 2  Aの枚数  Bの枚数  Cの枚数   合計 3 4 ・ ・ ・ 70 71    計      計      計    合計 表の行数を常に固定したいので、3行目から70行目の中の行を1行削除した時に 71行目の上に自動的に行を挿入する方法を教えて下さい。 挿入行のセルはすべて空白で、罫線のみ引いてある状態がベストです。 よろしくお願いします。

  • EXCEL VBA条件による行の上下段へのコピー

    EXCEL VBA 条件による上や下段への行コピー お世話になります。 質問させていただきます。 添付図ようなの表1があります。 この表は各商品につき6行あって[品名]と[区分]だけは6行すべてデータが入っていますが、その他の[納品日]や[担当者]フィールドには6行全てには入っていません。(ピボットテーブルで集計した表のため) このほうが表としては見易くて良いのですが、オートフィルターをかけると空白行が抽出されずに不便で困っています。 そこで表1を表2のように全ての行にデータを入れればオートフィルターでもうまく抽出できるので、このようにしたいのです。(表2の緑色セル部分) 以下表1の条件です (1)品名、区分は必ず入っている (2)品番は各商品データの2行目(1行目ではなく)に必ず入っている (3)納品日~問屋名までは同一データが続く場合、先頭データの2行目(1行目ではなく)にしか入っていない (4)商品データは1商品につき6行表示されていて、可変ですが1000行ほどあります やりたい事・・・ [データ挿入]というボタンを作成して、ボタンを押したら表1が表2の緑色セルを埋めるような動作をさせたいです お忙しいところ恐縮ですがどなたかお知恵をお借りできますでしょうか? 何卒よろしくお願い致します。 環境 Windows XP SP3 Excel2003

  • エクセル2003での自動行追加について

    マクロを使わずに自動行追加する方法を探しています。 条件:マクロや右クリックでの行又はセルの挿入を使わずに、各最終行の次にから 3行追加を繰り返す A1 B1 AAA 111 AAA 222 AAA 333 (ここに3行追加) SSS 777 SSS 444 SSS 888 (ここに3行追加) アルファベットは同一日付データ 数値は氏名データ データは都度可変します マクロを修得しておりませんので、何とかこの条件下でエクセルで可能な方法を探しております。 皆さま、ご教授をお願い致します。

  • VBAでの行挿入について

    Excel VBAの条件に合った場合、行挿入&挿入した行のセルに特定の値を入力 VBA初心者です。Excel2007、XPを使用しています。 A列からCK列、平均100行程度の顧客データがあります。 このデータは列数は変わりませんが、行数は毎回異なり、 1行1顧客ではなく、同じ顧客で数行で入ることがあります。 しかしA列の顧客番号で判別できるようにはなっています。 目標は下記の点です。 「BC列」に値がある場合、 1行下へ空白行を挿入(できればA~X、Z~AA、AD~CKは1行上と同じ)。 但し挿入する位置は、顧客情報の一番下(1行の場合は2行目、2行の場合は3行目と)です。 挿入した行のY列に「ポイント利用」と入力。 挿入した行のAC列に「BC列の値」を入力。 挿入した行のAB列に「1」を入力。 「BJ列」に値がある場合、 1行下へ空白行を挿入(できればA~X、Z~AA、AD~CKは1行上と同じ)。 但し挿入する位置は、顧客情報の一番下(1行の場合は2行目、2行の場合は3行目と)です。 挿入した行のY列に「送料」と入力。 挿入した行のAC列に「BJ列の値」を入力。 挿入した行のAB列に「1」を入力。 以降に必要な処理はマクロで作成できたのですが、 その後に上記項目を手作業で処理しているのも限度があるので、 最初に挿入処理できればと思ってます。 分かりづらい説明だとは思いますが、 何卒ご教授頂きたくお願い致します。

  • excelで行挿入について

    excel97を使っているのですが、まず下の表を見てください。 行/列   A  B  C   1  メーカ      2  あ           3  い             4  合計           5  う         6  え           7  お              8  か                このような表があるのですが、行1~4で一つのグループなんです。 同じように  行4と行5の間に「メーカ」  行6と行7の間に「合計」 というふうに「メーカ」挿入、2行空けて「合計」挿入、「メーカ」挿入・・・を約千行分繰り返して 行/列  A  B  C  1  メーカ      2  あ      3  い      4  合計      5  メーカ      6  う      7  え      8  合計      9  メーカ     10  お     11  か     12  合計     このようにしたいのですが、簡単な方法は無いでしょうか?

専門家に質問してみよう