Home » エクセルマクロ・Excel VBAの使い方 » マクロのサンプル » 一行おきに空白行を挿入するExcelマクロ

一行おきに空白行を挿入するExcelマクロ

対象:Excel2003, Excel2007, Excel2010

並べ替え機能を使って、一行おきに空白行を挿入する方法をご紹介しました。

Excelの並べ替え機能について理解していれば、VBAをご存知ない方でもできてしまうところが最大の利点です。

[スポンサードリンク]

選択されたセル範囲に一行おきに空白行を挿入するサンプルマクロ

もちろん、空白行を挿入する操作が頻繁に行われ、VBAを理解している方ならば、マクロを作成してしまうほうが、やはり便利です。

Sub 選択範囲のセルに一行おきに空白行を挿入する()
 Dim col_1st As Long
 Dim col_end As Long
 Dim row_1st As Long
 Dim row_end As Long
 Dim i As Long

 col_1st = Selection(1).Column
 col_end = Selection(Selection.Count).Column
 
 row_1st = Selection(1).Row
 row_end = Selection(Selection.Count).Row

 For i = row_end To row_1st + 1 Step -1
  Range(Cells(i, col_1st), Cells(i, col_end)).Insert xlShiftDown
 Next i
End Sub

セル範囲を選択しておいてから上記のマクロを実行すると、選択されていた範囲のみ、一行おきに空白行が挿入されます。

サンプルマクロの解説

まず、
 col_1st = Selection(1).Column
で選択範囲の左端の列番号を変数・col_1stに
 col_end = Selection(Selection.Count).Column
で選択範囲の右端の列番号を変数・col_endに 
 row_1st = Selection(1).Row
で選択範囲の上端の行番号を変数・row_1stに
 row_end = Selection(Selection.Count).Row
で選択範囲の下端の行番号を変数・row_endに 
それぞれ格納します。

ループ処理
 For i = row_end To row_1st + 1 Step -1
では、選択範囲の一番下の行から、選択されている選択範囲の上から2行目に向け、下から上に一行ずつ処理しています。

一行おきに空白行を挿入したいという場合、一番上の行は動かしたくないという要望が多いと思われますので
 To row_1st + 1
としていますが、もしも、一番上の行の上にも空白行を挿入したいのならば、「+ 1」を削除して
 To row_1st
としてください。

ループの中でやってるのは、行を挿入して下方向にシフトする
 Range(Cells(i, col_1st), Cells(i, col_end)).Insert xlShiftDown
という処理です。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » マクロのサンプル » 一行おきに空白行を挿入するExcelマクロ

「マクロのサンプル」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.