即効テクニック

セル操作関連のテクニック

セル/行/列を挿入する

(Excel 2000)
対象セル範囲の場所に、対象セル範囲と同サイズの空白セル範囲を挿入します。引数<Shift>で元のセル範囲の移動方向を指定します。省略した場合、セル範囲が縦長の場合には右方向に横長か正方形の場合には下方向に移動します。列が対象の場合には必ず右方向、行が対象の場合には必ず下方向に移動します。
次のサンプル1は3行目以降の行に1行おきに空白行を挿入します。
●サンプル1●
Sub InsertSamp1()
    Dim myLastRow As Long
    Dim i As Long

    myLastRow = Range("A65536").End(xlUp).Row
    '最終行から上方向にループする
    For i = myLastRow To 3 Step -1
       Rows(i).Insert Shift:=xlDown
    Next i
End Sub
セル範囲の挿入により、それ以降のセル範囲のアドレスが、対象セル範囲の行数/列数分だけずれていきます。したがって、セル範囲の挿入を繰り返し行う場合にはコメントのように番号が大きい方から小さい方へ処理をするようにしてください。
次のサンプル2はRangeプロパティを使用し、連続したセル範囲を複数の領域として処理させています。対象となる領域が複数の場合には、それぞれの領域に対して一括に挿入の処理が行われるため、行番号の不整合が発生しません。
●サンプル2●
Sub InsertSamp2()
    Range("3:3,4:4,5:5,6:6").Insert Shift:=xlDown
End Sub