Home » Excel VBA Rangeオブジェクト » Offsetプロパティ » EntireRow・Offsetでアクティブセルの上や下に行を挿入する

EntireRow・Offsetでアクティブセルの上や下に行を挿入する

対象:Excel2010, Excel2013, Windows版Excel2016

「active cellの下に行を追加する vba」
という検索キーワードに気づきました。

いくつかの書き方がありそうですが、
RangeオブジェクトのEntireRowプロパティと、

VBAでアクティブセルの上や下に行を挿入する

RangeオブジェクトのOffsetプロパティを組み合わせるのが、

VBAでアクティブセルの上や下に行を挿入する

ひとつの方法です。

[スポンサードリンク]

アクティブセルの上に行を挿入するサンプルマクロ

「active cellの下に行を追加する vba」
ということですけれど、下への行挿入よりも簡単な、アクティブセルのに行を挿入するプロシージャから、確認しましょう。
Sub アクティブセルの上に行を挿入する()
 ActiveCell.EntireRow.Insert
End Sub

ActiveCellプロパティで取得したRangeオブジェクトのEntireRowプロパティで、アクティブセルの存在する行全体を表すRangeオブジェクトを取得できます。
  ActiveCell.EntireRow.Insert

「ActiveCell.EntireRow」で取得した、アクティブセルの存在している行全体を表すRangeオブジェクトのInsertメソッドを実行すると、アクティブセルの上に行が挿入されます。
  ActiveCell.EntireRow.Insert

VBAでアクティブセルの上や下に行を挿入する

アクティブセルの下に行を挿入するサンプルマクロ

アクティブセルの下に行挿入をする場合は、以下のようなプロシージャです。
Sub アクティブセルの下に行を挿入する_Offset()
 ActiveCell.Offset(1, 0).EntireRow.Insert
End Sub

先ほどのプロシージャとの違いは、ActiveCellプロパティの直後に「.Offset(1, 0)」というRange.Offsetプロパティを使った、Rangeオブジェクトを取得する式が存在するところです。

ActiveCellプロパティで取得したRangeオブジェクトのOffsetプロパティの、第1引数に「1」第2引数に「0」を指定することで、アクティブセルの1つ下のセルを表すRangeオブジェクトが取得できます。
  ActiveCell.Offset(1, 0) .EntireRow.Insert

「ActiveCell.Offset(1, 0)」で取得したアクティブセルの1つ下のセルを表すRangeオブジェクトの、EntireRowプロパティでアクティブセルの1つ下の行全体を表すRangeオブジェクトが取得できます。
  ActiveCell.Offset(1, 0).EntireRow.Insert

「ActiveCell.Offset(1, 0).EntireRow」で取得したアクティブセルの1つ下の行全体を表すRangeオブジェクトの、Insertメソッドで結果的にアクティブセルの下に行が挿入されます。
  ActiveCell.Offset(1, 0) .EntireRow.Insert

最終更新日時:2018-11-13 05:38

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » Offsetプロパティ » EntireRow・Offsetでアクティブセルの上や下に行を挿入する

「Offsetプロパティ」の記事一覧

検索


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

.