並べ替え機能を使って、一行おきに空白行を挿入する方法をご紹介しました。
Excelの並べ替え機能について理解していれば、VBAをご存知ない方でもできてしまうところが最大の利点です。
選択されたセル範囲に一行おきに空白行を挿入するサンプルマクロ
もちろん、空白行を挿入する操作が頻繁に行われ、VBAを理解している方ならば、マクロを作成してしまうほうが、やはり便利です。
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
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
という処理です。
- Newer:PowerPoint 2010・2007で均等割り付け
- Older:シートを削除する-Alt→E→L
Home » エクセルマクロ・Excel VBAの使い方 » マクロのサンプル » 一行おきに空白行を挿入するExcelマクロ