KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Excel で一定の間隔ごとに指定した行数を挿入するには、どうすればよいですか?

著者Xiaoyang変更日

Excel ワークシートでは、組み込みの「挿入」機能を使えば、既存の行の間に手動で空白行を簡単に追加できます。しかし、大量のデータを扱う場合や、たとえば3 行ごと(または任意の n 行ごと)に2 つの空白行を定期的に挿入したいようなケースでは、手作業では時間がかかり、非効率です。こうした作業を固定間隔で自動化すれば、時間の節約だけでなくミスも最小限に抑えられ、ワークフローをよりスムーズで効率的なものにできます。以下では、このタスクをスピーディーかつ簡単に実行する方法をご紹介します。VBA を使う方法と使わない方法の両方を紹介し、特定の条件に基づく空白行の挿入や行の繰り返しなどにも対応します。


VBA コードで固定間隔ごとにデータ範囲に指定した数の空白行を挿入する

次の VBA コードを使えば、既存のデータ範囲内に自動で「n 行ごと」に指定した数の空白行を挿入できます。この方法は、マクロに慣れており、中規模~大規模なデータセットを効率よく処理したいユーザーに最適です。このソリューションを実行するには、以下の手順に従ってください。

1。Excel でAlt + F11キーを押すと、Microsoft Visual Basic for Applicationsウィンドウが開きます。

2。[挿入]>[モジュール]をクリックし、表示されるモジュールウィンドウに次のコードを貼り付けてください。

VBA コード:固定間隔でデータに指定した数の行を挿入する

Sub InsertRowsAtIntervals()
'Updateby Extendoffice
Dim Rng As Range
Dim xInterval As Integer
Dim xRows As Integer
Dim xRowsCount As Integer
Dim xNum1 As Integer
Dim xNum2 As Integer
Dim WorkRng As Range
Dim xWs As Worksheet
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
xRowsCount = WorkRng.Rows.Count
xInterval = Application.InputBox("Enter row interval. ", xTitleId, 1, Type:=1)
xRows = Application.InputBox("How many rows to insert at each interval? ", xTitleId, 1, Type:=1)
xNum1 = WorkRng.Row + xInterval
xNum2 = xRows + xInterval
Set xWs = WorkRng.Parent
For i = 1 To Int(xRowsCount / xInterval)
    xWs.Range(xWs.Cells(xNum1, WorkRng.Column), xWs.Cells(xNum1 + xRows - 1, WorkRng.Column)).Select
    Application.Selection.EntireRow.Insert
    xNum1 = xNum1 + xNum2
Next
End Sub

3。コードを貼り付けたら、F5キーを押して実行してください。するとプロンプトボックスが表示され、空白行を挿入したいデータ範囲を選択するよう促されます(下図参照)。

データ範囲を選択

4。「OK」をクリックすると、別のプロンプトボックスが表示されます。ここでは、行間隔を入力してください(例:3 を入力すると、3 行ごとに空白行が挿入されます)。

行間隔の数を入力

5。「OK」をクリックし続けると、コードがプロンプトを表示するたびに、挿入したい空白行の数を入力できます(例:「2」と入力すると、2 行が挿入されます)。

挿入する空白行の数を入力

6。選択を確定すると、指定した間隔でデータに空白行が挿入されます。以下の前後比較をご覧ください。

元のデータ右矢印既存のデータに一定の間隔で空白行が挿入されます

ヒントと注意点:

  • このマクロを使えば、データ範囲を柔軟に選択でき、行の間隔や挿入する空白行の数を自由に指定できます。
  • バックアップを取得するか、サンプルシートで事前に試してから実行してください。行の挿入は、直ちに元に戻す(Undo)コマンドを使用しない限り、取り消すことはできません。

トラブルシューティング:エラーが発生した場合は、データにフィルターがかかっていないことと、選択範囲内にテーブルが重複していないことをご確認ください。予期しない結果が出た場合は、すぐに元に戻す(Undo)機能で変更を元に戻してください。


セルの値に基づいてデータ範囲に指定した数の空白行を VBA コードで挿入する

ワークフローによっては、たとえば隣接列の値に基づいて各レコードの後に空白行を挿入するなど、事前に定義されたセル値のリストに従って空白行を挿入する必要がある場合があります。この VBA ソリューションは、空白行の挿入ロジックが固定間隔ではなく、隣接列内の値に基づいている場合に最適です。

✅ 使用するタイミング:

  • データが部門やプロジェクトフェーズ、営業担当者などのカテゴリ別に整理されており、グループ間にスペースや空白行を挿入したい場合に最適です。
  • 選択範囲が正確であることをご確認ください。マクロは、選択されたセルに基づいて行を挿入する位置を決定します。

1。Excel でALT + F11キーを押しながらクリックすると、Microsoft Visual Basic for Applicationsウィンドウが開きます。

2。「挿入」>「モジュール」をクリックし、モジュールウィンドウに次のコードを貼り付けてください。

VBA コード:数値リストに基づいて指定した数の空白行を挿入する:

Sub Insertblankrowsbynumbers ()
'UpdatebyExtendoffice
Dim xRg As Range
Dim xAddress As String
Dim I, xNum, xLastRow, xFstRow, xCol, xCount As Long
On Error Resume Next
xAddress = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Select the spefic number column to use(single column):", "Kutools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
xLastRow = xRg(1).End(xlDown).Row
xFstRow = xRg.Row
xCol = xRg.Column
xCount = xRg.Count
Set xRg = xRg(1)
For I = xLastRow To xFstRow Step -1
xNum = Cells(I, xCol)
If IsNumeric(xNum) And xNum > 0 Then
Rows(I + 1).Resize(xNum).Insert
xCount = xCount + xNum
End If
Next
xRg.Resize(xCount, 1).Select
Application.ScreenUpdating = True
End Sub

3F5キーを押してコードを実行するには、貼り付け後に表示されるダイアログボックスで、空白行を挿入する基準となる数値リスト(または該当セル)を選択してください。

空白行を挿入する基準となる数値リストを選択

4。次に、OKをクリックすると、以下のスクリーンショットのように目的の結果が表示されます。

元のデータ右矢印セルの値に基づいて空白行が挿入されます

エラーのお知らせ:参照リストに空のセルや数値以外のデータが含まれている場合は、マクロを実行する前にデータをクリーンアップするか、コードのロジックをご確認ください。


便利な機能で、固定間隔に特定の数の空白行をデータ範囲に挿入します

VBA を使いたくない方や、より視覚的でインタラクティブな操作をご希望の場合は、Kutools for Excelに搭載された専用の空白の行/列を挿入機能がおすすめです。簡単なクリック操作で、データ範囲内の任意の間隔に空白行または空白列をサッと追加可能。特に繰り返しの多いレポート作成や書式設定タスクにおいて、生産性が大幅にアップします!

Kutools for Excelは300 以上の高度な機能を提供し、複雑な作業を効率化して、創造性と生産性を高めます。AI 機能と統合されたKutools は、正確にタスクを自動化し、データ管理を簡単にします。Kutools for Excel の詳細情報。。。         無料トライアル。。。

Kutools for Excel をインストールした後は、次の手順に従ってください。Kutools for Excel

1。定期的に空白行を挿入したいデータ範囲を選択してください。

2。下図のように、「Kutools > 挿入 > 空白の行/列を挿入」を選択します。

Kutools の「空白行・列を挿入」機能をクリック

3。「行と列の挿入」ダイアログボックスで、空白行挿入タイプの下から選択し、挿入する間隔と空白行の数を指定してください(下図参照)。

ダイアログボックスでオプションを指定

注:設定は柔軟に対応可能です。データ行を4 行ごとに入力し、その間に2 行の空白行を挿入したい場合は、間隔を「4」、空白行の数を「2」に設定してください。

4。次に、OKボタンをクリックします。指定した間隔で空白行が選択範囲内に挿入され、下図のように表示されます。

元のデータ右矢印選択した範囲に特定の間隔で空白行が挿入されます

メリット:このソリューションは、直感的なユーザーインターフェースを備え、コーディング不要。行や列の構造を頻繁に調整する必要がある方に特に役立ちます。

Kutools for Excel を今すぐダウンロードして無料トライアル!


Excel 数式で固定間隔に特定の数の空白行を挿入します

マクロやアドインが使えない環境でも、補助列とExcel の組み込み関数()MODおよびROW)を使えば、固定間隔で空白行を挿入できます。この方法は、スクリプトが制限されているものの、基本的な数式と並べ替えが可能な環境で特に有効です。

✅ 使用するタイミング:マクロを使わないワークブックを維持したい方、広範な互換性が求められる場合、またはインポート/エクスポートワークフローで空白行による視覚的な区切りが必要なデータ準備に最適です。

⚠️ 注意事項:この方法では、実際には空白行を挿入せず、追加行と補助列の数式を使って空白をシミュレートします。その後、データを並べ替えて、シミュレートされた空白行を正しい位置に配置する必要があります。これは小規模~中規模のデータセットに最適な回避策です。

手順:

  1. データがA2:B11にあると仮定します。新しい補助列(例:列 C の C2 セルから)に、次の数式を入力してください:
    =INT((ROW()-ROW($A$2))/(n+1))
    n」は、空白行を挿入したい間隔の数値に置き換えてください。たとえば、3 行ごとに1 つの空白行を挿入する場合は、次のようにします:
    =INT((ROW()-ROW($A$2))/3)
  2. データセットの横に沿って数式を下までドラッグし、グループ番号を割り当てます。
  3. 最終データ行の下に、列 A および B が空白の追加行を挿入します。列 C(補助列)には既存のグループ番号と同じ番号を入力し、これらの空白行が正しくグループ化されるようにしてください。
  4. 全範囲(元のデータ+追加した行)を選択し、補助列で並べ替えて、必要に応じて二次ソートを適用します。これにより、空白行がn 行ごとのデータの後に表示されます。

🟡 エラーのお知らせ:

  • 必ず空白行に正しいグループ番号を割り当ててください。そうでないと、意図しない場所に表示されてしまいます。
  • この方法では、並べ替え後に物理的な行のみが追加されることにご注意ください。保存またはエクスポートする前に、必ず最終的なレイアウトをご確認ください。

概要とヒント:VBA やKutoolsこのようなツールほど効率的ではありませんが、この数式ベースの方法は汎用性に優れ、スクリプトに依存しません。頻度が低く軽量なタスクには、シンプルで柔軟な代替手段を提供します。


VBA コードで特定の数に基づいて行のコピーと挿入を複数回複製

単に行を挿入するだけでなく、既存のデータ行を特定の回数(別途用意した数値リストに基づく場合も含む)複製して挿入したい場合には、以下の VBA コードが実用的な自動化手法を提供します。販売オーダー、シナリオ、リソース計画などのエントリを効率的に複製する際に特に役立ちます。

元のデータ右矢印特定の数値に基づいて行を複数回コピーして挿入

これを実装するには、次の詳細な手順に従ってください。

1。Excel でALT + F11を押すと、Microsoft Visual Basic for Applicationsウィンドウが開きます。

2。「挿入」>「モジュール」をクリックし、下記のコードをモジュールウィンドウに貼り付けてください。

VBA コード:特定の数に基づいて行のコピーと挿入を複数回複製する方法:

Sub CopyRows()
'UpdatebyExtendoffice
Dim xRg As Range
Dim xCRg As Range
Dim xFNum As Integer
Dim xRN As Integer
On Error Resume Next
SelectRange:
xTxt = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Select the list of numbers to copy the rows based on: ", "Kutools for Excel", xTxt, , , , , 8)
If xRg Is Nothing Then Exit Sub

If xRg.Columns.Count > 1 Then
MsgBox "Please select single column!"
GoTo SelectRange
End If
Application.ScreenUpdating = False
For xFNum = xRg.Count To 1 Step -1
Set xCRg = xRg.Item(xFNum)
xRN = CInt(xCRg.Value)
With Rows(xCRg.Row)
.Copy
.Resize(xRN).Insert
End With
Next
Application.ScreenUpdating = True
End Sub

注意事項:重複行を処理する VBA スクリプトを実行する前に、必ずデータのバックアップを取ってください。データが急激に増加し、簡単に元に戻せなくなる可能性があります。

3。コードを配置したら、F5キーを押してマクロを実行します。ダイアログボックスが表示されたら、各行を何回複製・挿入するかを指定する数値リストを選択してください。

データ行をコピーおよび挿入する基準となる数値リストを選択

4。「OK」をクリックすると、指定された数の行が各元の行の直下にコピー・挿入され、下図のように表示されます。

元のデータ右矢印指定された数の行が各元の行の下にコピー&ペーストされます

ヒント:このソリューションはデータ準備タスクに最適ですが、VBA マクロは実行後に無関係な操作が行われると元に戻せないため、リアルタイム入力には向いていません。


驚異的な機能で特定の数に基づいて行のコピーと挿入を複数回複製

複製や行の挿入をより直感的に行い、プログラミングスキルを必要としない方法をお探しですか?その場合は、Kutools for Excel指定されたデータに基づいて行/列をコピーまたは挿入する機能が、効率的な代替手段になります。このツールを使えば、参照セルの値やリストに基づいて、どの行または列を何回複製するかを、簡単な選択操作だけで指定できます。

Kutools for Excelは300 以上の高度な機能を提供し、複雑な作業を効率化して、創造性と生産性を高めます。AI 機能と統合されたKutools は、正確にタスクを自動化し、データ管理を簡単にします。Kutools for Excel の詳細情報。。。         無料トライアル。。。

Kutools for Excel をインストールした後は、Kutools for Excel 次の手順に従ってください。

1。下図のように、「Kutools > 挿入 > 指定されたデータに基づいて行/列をコピーまたは挿入する」を選択します。

Kutools の「セルの値に基づく行/列の複製」機能をクリック

2。「行/列のコピーと挿入」ダイアログボックスで、行のコピーと挿入を種類として選択し、複製したいデータ範囲を指定して、複製回数の基準となる値リストを設定します(下図参照)。

ダイアログボックスでオプションを設定

ヒント:テスト用サンプルの生成、取引テンプレートの複製、または複雑なスクリプトを使わずに設定やレコードを素早く複数作成する際にご利用ください。

4。最後に、OKまたは適用をクリックすると、下図のように出力が生成されます。

元のデータ右矢印指定された数の行が各元の行の下にコピー&ペーストされます

注:期待通りの結果を得るには、値リストがデータと正確に一致していることを確認してください。

今すぐKutools for Excel をダウンロードして、無料トライアルをお試しください!

関連記事をもっと見る:

  • 行を複数回コピーして挿入する、または行を X 回複製する
  • 日常業務で、特定の行や各行をコピーし、現在のデータ行の直下に複数回挿入したいと思ったことはありませんか?たとえば、あるセル範囲について、各行をコピーしてその次の行に3 回貼り付けたい場合(以下のスクリーンショット参照)、Excel ではどのように操作すればよいでしょうか?
  • Excel で値が変化した際に空白行を挿入する
  • データ範囲内で値が変化する箇所に空白行を挿入し、1 列に並ぶ連続する同じ値を分離したい場合(下記スクリーンショット参照)、本記事ではその課題を解決するためのいくつかのテクニックをご紹介します。
  • 条件に基づいて複数のワークシートから行を新しいシートにコピーする
  • 3 つのワークシートを持つブックがあり、それらはすべて以下のスクリーンショットのように同じ書式になっているとします。このとき、列 C に「Completed」というテキストを含むすべての行をこれらのワークシートから新しいワークシートにコピーしたい場合、手動で1 つずつコピーアンドペーストせずに、迅速かつ簡単にこの問題を解決するにはどうすればよいでしょうか?

最高の Office 業務効率化ツール

🤖KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行     コード生成  カスタム数式作成    データ分析とチャート生成  拡張機能呼び出し
人気の機能検索・ハイライト、または重複をマーキング     空白行を削除する     データを失うことなく列の結合またはセルを     数式を使用しない四捨五入...
スーパー LOOKUP複数条件 VLookup    複数値 VLookup     複数シート間 VLookup      ファジーマッチ....
高度なドロップダウンリストドロップダウンリストをすばやく作成     連動型ドロップダウンリスト     複数選択可能なドロップダウンリスト....
列マネージャー指定した数の列を追加列の移動非表示列の表示状態を切り替え範囲および列の比較...
注目の機能グリッドフォーカス     デザインビュー   強化された数式バー    ワークブックとシートマネージャー     リソースライブラリ(オートテキスト)  日付ピッカー     ワークシートの統合    暗号化/セルの復号化    リストからメール送信     スーパーフィルター      特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。
トップ15 ツールセット12 テキストツールテキストの追加特定の文字を削除、...)   50+チャートタイプガントチャート、...)   40+実用的関数誕生日に基づいて年齢を計算します、...)   19 挿入ツールQR コードを挿入パスから画像を挿入、...)   12 変換ツール単語に変換する為替レートの変換、...)   7 結合と分割ツール高度な行のマージセルの分割、...)さらに多数
Kutools はお好みの言語でご利用いただけます。英語、スペイン語、ドイツ語、フランス語、中国語、および40+の他の言語をサポートしています!

Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。


Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします

  • Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
  • 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
  • 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!

すべてのKutools アドインが、たった1 つのインストーラーで完結。

Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。

ExcelWordOutlookTabsPowerPoint
  • オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
  • インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
  • 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
  • 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
  • 最高のお得感— 個別アドイン購入よりお得