Home » ExcelVBA 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

取得した、アクティブセルの存在している行全体を表す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

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

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

[スポンサードリンク]

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

TrackBack:0

TrackBack URL
[スポンサードリンク]

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

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

検索

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

.