• ベストアンサー

複数行に空白行を一括で挿入したいのですが

エクセルに関する質問です。 セルA列の14行目から30000行まである数字が入力されています。 各行間に一行ずつ空白行を挿入したのですが マクロを使ったやりかたでもかまいませんので 一括でする方法があれば教えていただけないでしょう?

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

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

#1です。for~nextを試したところ非常に時間がかかりそうだったので、自分の回答をもとにマクロを作ってみました。 Sub 行を1行とびにする() Application.ScreenUpdating = False   Dim i As Long '変数定義   i = Cells(Rows.Count, 1).End(xlUp).Row 'A列の最終行の行番号   Columns("A:A").Insert Shift:=xlToRight 'A列追加   Range("A14") = 1 'A14セルに1 'フィル 加算1   Range("A14").DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, _     Step:=1, Stop:=i - 13, Trend:=False   Range("A" & i + 1) = 1 'A列の最終行+1セルに1 'フィル 加算1   Range("A" & i + 1).DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, _     Step:=1, Stop:=i - 13, Trend:=False '並べ替え   Range("A14").CurrentRegion.Sort Key1:=Range("A14"), Order1:=xlAscending, Header _     :=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom _     , SortMethod:=xlPinYin, DataOption1:=xlSortNormal 'A列削除   Columns("A:A").Delete Shift:=xlToLeft Application.ScreenUpdating = True End Sub

fansasad
質問者

お礼

ありがとうございます。 一発でできました。 たすかりました。

その他の回答 (5)

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

こんにちは! VBAで最終行からループさせる方法が一番簡単だと思いますが そこそこ時間がかかると思いますので、他の方法の一例です。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub 行挿入() 'この行から Dim i As Long, j As Long i = Cells(Rows.Count, 1).End(xlUp).Row Application.ScreenUpdating = False Columns(1).Insert Range(Cells(14, 1), Cells(i, 1)).Formula = "=row(A1)" Range(Cells(14, 1), Cells(i, 1)).Copy Cells(Rows.Count, 1).End(xlUp).Offset(1).Select Selection.PasteSpecial Paste:=xlValues i = Cells(Rows.Count, 1).End(xlUp).Row j = UsedRange.Columns.Count Range(Cells(14, 1), Cells(i, j)).Sort key1:=Cells(13, 1), order1:=xlAscending Columns(1).Delete Cells(14, 1).Select Application.ScreenUpdating = True End Sub 'この行まで こんな感じではどうでしょうか?m(_ _)m

fansasad
質問者

お礼

いろいろやり方があるのですね 教えていただいたやり方も一度ためしてみます。 ありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

A列のセルには30000行まで空白のセルが無いものとします。 例えば表はF列まで使用されているとしたらG1セルには次の式を入力します。 =IF(A1<>"",ROW(A1),IF(ROW(A1)>COUNTA(A:A),ROW(A1)-COUNTA(A:A)+14,"")) G1セルをコピーしてから名前ボックスにはG1と表示されているところをG:Gのように変更し、Enterキーを押します。G列が選択状態になりますので右クリックして「貼り付け」を行います。 これによって数値がG列に表示されますので、そのG列を選択してから右クリックして「コピー」し、そのままの状態で再び右クリックして「形式を選択して貼り付け」で「値」にチェックをして貼り付けます。 これで今まではG列のセルに式が入力されていたのですが式が消えてなくなります。 次にA列からG列までを選択してから「ホーム」タブの「並べ替えとフィルター」から「ユーザー設定の並べ替え」を選択します。 最優先されるキーをG列にして昇順にしてOKします。 最後にG列を選択して削除すれば完成です。

fansasad
質問者

お礼

いろいろやり方があるのですね 教えていただいたやり方も一度ためしてみます。 ありがとうございました。

回答No.3

Sub By2() Dim i As Long For i = Range("A" & Rows.Count).End(xlUp).Row + 1 To 15 Step -1 Rows(i & ":" & i).Insert shift:=xlDown Next End Sub

fansasad
質問者

お礼

いろいろやり方があるのですね 教えていただいたやり方も一度ためしてみます。 ありがとうございました。

  • mar00
  • ベストアンサー率36% (158/430)
回答No.2

Sub Macro1() For i = Cells(Rows.Count, 1).End(xlUp).Row To 15 Step -1 Range("A" & i).EntireRow.Insert Next i End Sub という感じでどうでしょうか>

fansasad
質問者

お礼

いろいろやり方があるのですね 教えていただいたやり方も一度ためしてみます。 ありがとうございました。

回答No.1

0. A列のデータに空白がないものとして 1. A列を挿入 2. A14セル1 3. A15セル2 4. A14:A15セルを選択して 5. フィルハンドルをダブルクリック 6. [Ctrl]+[C]そのままコピー 7. [Ctrl]+[↓]再下端へ移動 8. [↓]もう一つ下 9. [Ctrl]+[V]貼り付け 10. A列のセルを1つ選択して 11. 昇順で並べ替え 12. A列削除

fansasad
質問者

お礼

いろいろやり方があるのですね 教えていただいたやり方も一度ためしてみます。 ありがとうございました。

関連するQ&A

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

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

  • エクセルで空白行を挿入するには

    一つの列に200ほどデータがあるとします。 そこで1行おきに空白行を挿入していきたいのですが手でいちいち空白行を挿入していてはらちがあきません。 関数等も含めて、なにか良い方法はないでしょうか。 例 セルA1   セルA2   セルA3 以下続く    ↓   セルA1   空白行(セル)   セルA2   空白行(セル)   セルA3   空白行(セル) 以下続く   といった具合です。

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

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

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

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

  • 特定の条件の時に行を挿入したい

    EXCEL2000使っています。A列データがあるとして、A3セルに特定の数字(例えば1)があるときは、その上の行、このときは 2行に1行挿入したいのですが、各行ごとに挿入するのは大変なので、簡単に、できるだけ一度に挿入する方法はないですか?

  • エクセルの空白を求めたいのですが。

    エクセルの空白を求めたいのですが。 例えば、 ・・A B C D E 1 4 2 3 8 4 5 6 4 7 8 9 2 10 A列の数字入力があるセルから、次のセルの入力値まで の空白の個数を関数で出来ますでしょうか? A9~A6 は空白が2個となります。 A6~A3 は空白が3個となります。 A列の 各行 には他のセルで計算された値を出しているので、 各行に現れる数値は、その時によって違います。(現れる数値は整数です) わかる方いましたら、宜しくお願いします。

  • Excelで一行おきに2行の空白行を挿入したい

    400行ほどデータの入ったエクセルシートがあります。 行番号 A列  1  山田  2  鈴木  :   :  400 田中 このシートで、一行おきに2行の空白行を追加したいのですが、  1  山田  2  3  4  鈴木  5    6  :  : マウスで2行選択して右クリックメニューで挿入..を400行分やるのが大変なので 一気にやる方法を教えてください。

  • マクロにて空白のセルを一括して消去でなく削除したい

    空白のセルを一括して、空白セルについた色も含めてマクロで全て削除したい。 現在のデータ(仕様)について 1.Sheet2に列ごとにセルに色をつけ、データもあるとします。 2.A列10行・B列6行・C;列18行というように、列によってデータの入った範囲が違います。 3.どの行も途中に空白セルはなく、詰めたデータです。 以上です マクロで一括処理したいと思いますが、このようなことができるコードを教えて頂けませんか。よろしくお願いします。

  • EXCEL2007 複数セルに一括文字挿入

    こんにちわ EXCEL2007で質問ですが、 複数の空白ではないセルを選択して、一括で文字を挿入する方法を教えてください。 たとえば、、、セルA1に「あ」 セルA2に「い」 とあり、その頭にAと挿入したいのですが・・・・結果セルA1「Aあ」セルA2「Aい」となるように一括で処理できる方法があれば教えてください。

  • EXCELで指定範囲に一括して行を挿入

    EXCELで指定範囲のセルに、一括して一行置きに行を挿入出来る関数があれば教えてください。

専門家に質問してみよう