RangeオブジェクトにInsertメソッド セルや行を挿入する マクロ講座22回

セルや行を挿入するマクロ

エクセルで表を作成してから、1行抜けていたとか、1つセルがずれていたというようなことがあるかもしれません。 そんな時には、必要な数の行を挿入したり、セルを挿入したりする必要があります。 今日のメニューは、マクロの記録で必要なマクロを作成することです。
(1)1行を挿入するマクロ、(2)2行を挿入するマクロ、(3)セルを挿入するマクロ
の3つを記録マクロで作ります。その後、コードの解説予定となっています。
(サンプルファイルは、こちらから マクロ講座22回サンプルデータ

マクロの記録の手順

行を挿入するマクロの記録をしてみましょう。
さあ、今日もおきまりの実習ですよ。
(1)マクロの記録を開始、
(2)B3:C4のセル範囲を選択し、
  [挿入]メニューから[行]を実行します。
(3)選択した2行分の行が挿入されます。
マクロの記録を終了します。Excel2013で記録マクロを作成する手順は以下の動画をご覧ください。

行を挿入するマクロを記録する

Excel2003の画面で解説(1)マクロの記録を開始
(2)B3:C4のセル範囲を選択し、
  [挿入]メニューから[行]を実行します。
(3)選択した2行分の行が挿入されます。
 
マクロの記録を終了します。
記録されたマクロのコードです。選択範囲は2行分ですが、コードは、Selectionに対して、Insertメソッドを使っています。
同様に、1行挿入するマクロの記録をしましょう。
(1)マクロの記録を開始(2)B3セルだけを選択し、[挿入]メニューから[行]を実行します。
1行挿入されていますマクロの記録を終了します。。
1行挿入のマクロをVBEで表示したところです。Range("B3")に対してInsertメソッドを使っています。
作成した2行分の行を挿入するマクロを見てみましょう。
Sub Macro2()
    Range("B3:C4").Select
    Selection.EntireRow.Insert
End Sub
と記録されていますが、実用的なコードとしては、Range("B3:C4").Selectは、なくても先に範囲を選択しておけば、 必要な行が挿入されます。

Selection.EntireRow.Insert

コードの説明です。

Range("B3:C4").Select

       B3:C4の2行選択しています。 

Selection.EntireRow.Insert

     Selectionの行全体に空白行を挿入します。

EntireRowは、対象のRangeオブジェクトを含む行全体を表すプロパティです。

もし、1行挿入したいのであれば、選択するのは、1行分のセルだけでいいことになります。
 
汎用的に行を挿入するマクロコードは、以下のようになります。
Sub 行挿入マクロ()
    '先に行を選択しておくこと
    Selection.EntireRow.Insert
End Sub    
スポンサーリンク
スポンサーリンク