• ベストアンサー

excel で自動で行を挿入する

マクロ、関数等を使って、 1行ごとに指定行を挿入することは可能でしょうか? たとえば、以下のようデータがあった場合。 1行AAA 2行BBB 3行CCC これに3行挿入マクロ(関数)を実行した場合 以下のようになる感じです。 1行AAA 2行 3行 4行 5行BBB 6行 7行 8行 9行CCC

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

  • ベストアンサー
回答No.1

こんな内容ではいかがでしょうか。 とりあえず考えてみましたので、バタバタしていますが。。。 標準モジュールに書き込みます。 Sub 行挿入() Dim TopRow As Integer, CntRow As Integer, InstRows As Integer Dim i As Integer, ii As Integer TopRow = ActiveCell.Row CntRow = Selection.Rows.Count InstRows = InputBox("挿入する行数を指定してください") For i = 1 To CntRow Rows(TopRow + (i - 1) * (InstRows + 1)).Select For ii = 1 To InstRows Selection.EntireRow.Insert Next ii Next i End Sub 例えばA1:A10に連続しているデータを A1、A5、A9、A13 …… とするの でしたら、A2:A10 を選択した状態で実行し、挿入する行数に 3 を指定 します。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

たぶん、関数でも出来るはずですが、マクロのほうが簡単ですね。VBEは、標準モジュールでも、該当するシートモジ ュールでも構いません。 '該当するセルの一部にカーソルを置いてください。 Sub Row_Insert()  Dim r As Range  Dim i As Long  Const Insert_Row As Integer = 3 '挿入行の数を入力  Set r = ActiveCell.CurrentRegion.Resize(, 1)  If r Is Nothing Then Exit Sub  For i = r.Count To 2 Step -1 '2行目までで終わり   r.Cells(i, 1).Resize(3).Insert Shift:=xlDown  Next End Sub

関連するQ&A

  • excel で自動で行を挿入する(コピー)

    先ほど、似たような質問をしたばかりなのですが、 マクロ、関数等を使って、 1行ごとにその行を指定行分コピーして挿入することは可能でしょうか? ※先ほどは空の行挿入でした たとえば、以下のようデータがあった場合。 1行AAA 2行BBB 3行CCC これに3行挿入マクロ(関数)を実行した場合 以下のようになる感じです。 1行AAA 2行AAA 3行AAA 4行AAA 5行BBB 6行BBB 7行BBB 8行BBB 9行CCC 10行CCC 11行CCC 12行CCC

  • エクセル / 重複する文字の行番号を抜き出す。

    お世話になります。 XP/2003 使用です。 エクセルで下記のようなケースの行番号を抜き出したいです。 できれば、関数のみがありがたいのですが、 マクロでもOKです。 ----------- 抽出したい行番号  重複する文字が入力された 「先頭の行」 と 「最後の行」 の行番号 ----------- 例 同じ列に、重複する単語が入力されています。 重複する単語は、必ず上下に並んでいますが、 1単語のみ場合もあります。 1  AAA 2  AAA 3  AAA 4  AAA 5  BBB 6  BBB 7  CCC 8  CCC 9  CCC 10 DDD 上記の場合の抽出した行番号 単語 → 先頭の行/最後の行 AAA → 1/4 BBB → 5/6 CCC → 7/9 DDD → 10/10 行番号は、B列、C列などに抽出できれば良いです。 何卒よろしくお願いします。

  • 複数行書き込むにはどうしたら良いのでしょうか?

    <?php exec("sh -c 'echo \"aaa\" > write.txt'", $result); ?> で、ファイルにaaaと書き込めるようですが、 このようなシェルをexec、system関数から実行する方法で、aaaではなく、 aaa bbb ccc と複数行のデーターをファイルに書き込みたい場合は、どのようにしたら良いのでしょうか?

    • ベストアンサー
    • PHP
  • EXCELで行の先頭データが同じ行の削除方法について

    EXCELで次のようなことをしたいのですがどうしたら簡単にできるでしょうか?  AAA   AAA  AAA  AAA  AAA  BBB  BBB  BBB  CCC  DDD  DDD  DDD  DDD 上ようのなデータで重複している部分を削除し、  AAA  BBB  CCC  DDD としたいのですが。 今は一行々々で確認しながら削除してます。3000行程あり困ってます。 どうしたら簡単にできるでしょうか?  

  • エクセルマクロ 特定の文字列を含む行を削除

    エクセルマクロ 特定の文字列を含む行を削除 エクセルのマクロについて教えてください。 下の中から列を限定せず、すべての行でAAA、CCCのいずれかがある場合、 その行ごと、すべて削除したいのです。 時に削除したい特定の文字列が数十種類になるため、 マクロ起動時に削除したい特定の文字を記述したファイルを読み込み、それから 削除できるようにしたいのです。場合によってはそのファイルを編集し、 削除したい文字列を変更したいのです。 ご教示いただだけないでしょうか A列 B列 C列 1 AAA BBB CCC 2 BBB CCC FFF 3 DDD BBB FFF 4 AAA CCC DDD 5 GGG RRR UUU 行中にAAA、BBBがある場合、削除したい ↓ A列 B列 C列 5 GGG RRR UUU マクロを実行し、上記の結果にしたい。

  • ExcelのVBAで複数行削除を行う場合

    Excel2007のVBAで複数行を削除する方法を教えて下さい。 Excel2003で使用していたマクロが使えなくなってしまいました・・・。 下記のようなExcelシートに対して複数行ずつ行を削除し、削除対象が無くなるまで 削除処理を行うか、指定した行まで削除処理を行うという事をしたいのですが うまく動きません。 例      A列   B列   C列   D列   E列 1行目 aaa1   bbb1  ccc1 2行目             ccc2 3行目             ccc3 4行目             ccc4 5行目 aaa2   bbb2  ccc1 6行目             ccc2 7行目             ccc3 8行目             ccc4 例に対しての結果      A列   B列   C列   D列   E列 1行目 aaa1   bbb1  ccc4 2行目 aaa2   bbb2  ccc4 例に対して、複数行(指定した行数ここでは3行)の削除を行いたいのですが、 単純に複数行(3行)ずつ削除していくのではなく。 1行目や5行目にあるように文字や情報が入力されているA列とB列の情報は 残しつつ、4行目のC列以降の列の情報はすべて活かしていくという事をしたいのです。 Excel2003の時に使用していたVBAは以下のものです。 Sub 行を削除するマクロ() Workbooks("xxxx.xlsx").Activate '処理を行いたいExcel ※1 n = n + 0 LastRow = 2138           '処理を終了させたい行 ※2 Sheets("Sheet1").Select '処理を行いたいシート ※3 Do Until (n > LastRow) Rows(n + 4).Delete Shift:=xlsiftUp '削除したい行指定 ※4 n = n + 3 Loop End Sub 皆様の良いアドバイスやお知恵をお貸しください。 よろしくお願いします。

  • 繰り返しの置き換えマクロで困っています。

    繰り返しの置き換えマクロで困っています。 マクロ初心者です。 aaa@bbb_123 111 112 33 240 111_15 220 245 bbb@ccc_111 111 22 33 260 11 220_40 270 上記の場合に、@行の次の行の一番最後の値に、プラス5して置き換えるマクロを作成したいです。 マクロを実行すると下記になる様にしたいです。(240が245、260が265) aaa@bbb_123 111 112 33 245 111_15 220 245 bbb@ccc_111 111 22 33 265 11 220_40 270 @行の次の行の一番最後の値 と プラス5 という形で置き換えしたいです。 どなたか、教えて頂けませんでしょうか

  • 条件にあてはまる場合、行挿入+値を移動させるマクロ

    Excel2003、WindowsXPを使用しています。 説明が分かり難いところがあるかもしれませんが、よろしくお願いいたします。 1.C列に値が入っていた場合、下に行を挿入。 2.挿入した行のB列に、C列に入っていた値を移動。 3.D列に値が入っていた場合、さらにその下に行を挿入。 4.挿入した行のB列に、D列に入っていた値を移動。 5.E列に値が入っていた場合、さらにその下に行を挿入。 6.挿入した行のB列に、E列に入っていた値を移動。 というように、C-E列に値が入っていた場合、下に行を挿入し、 挿入行にその値を移動させるマクロを教えてください。 (実行前)    A列     B列  C列  D列  E列   F列 ああああ  AAA  BBB  CCC  DDD  12222 うううう    EEE                   544 くくく     FFF  GGG  VVV        8 すす     TTT   BBB            4300 (実行後)  A列     B列   C列 ああああ  AAA   12222 ああああ  BBB   12222 ああああ  CCC   12222 ああああ  DDD   12222 うううう    EEE    544 くくく     FFF    8 くくく     GGG   8 くくく     VVV    8 すす     TTT    4300 すす     BBB   4300 上記実行後のように、マクロで出来たら…と思っています。 どうぞよろしくお願いいたします。

  • エクセルで教えて下さい。

    同じような質問があったらごめんなさい。 エクセルでシート1にデータを入力してシート2に データを整理したいのです。 シート1には重複した行があります、これを シート2には重複した行を省いた表にしたいのですが どうしたら出来るのですか? 出来ればマクロは使いたくない(使い方がわからないです) のですが。 やりたい事 シート1 --------------- AAA|45 AAA|30 AAA|20 BBB|50 CCC|30 CCC|20 シート2 ---------------- AAA| BBB| CCC| ---------------- AAAとCCCの重複している 行を省いてシート2に入力されるように したいです。 宜しくお願いします。

  • エクセルマクロで行挿入

    エクセルマクロで行挿入 マクロ初心者です。 仕事で、受注した内容をエクセルで管理しているのですが、頻繁にキャンセルや日程変更があり、1日単位でデータを管理しているものですから、かなりデータ入力に労力が取られている状況です。 キャンセルや日程変更になったデータに関しては、行ごと削除するのではなく、行単位で取り消し線と文字を赤にして、見た目で無くなったということがわかるようにしています。 また、受注したら行を挿入して新しいデータを入力しています。 そこで、赤字で取り消し線にて入力されている行の一つ上の行に挿入、ということをマクロでできないかと思っています。 赤字に取り消し線の行に関しては、何行目になっているかはその日によって違うので、その指定と、書式を指定する方法がわからない状況です。 マクロで上記のことができるのであれば、ご教授いただけると助かります。 宜しく御願いいたします。

専門家に質問してみよう