「処理するセルは何行目の何列目」と決まっていれば、RangeやCellsが使えます。しかし、「サイズがわからない表の、とにかく一番下に挿入」などの処理は、RangeやCellsだけでは対応できません。何行目が「一番下」なのかが状況によって変化するとき、「領域の端」を調べるのに便利なのがEndです。
目次
入力したデータを表の最後にコピーする

Sub A2に入力されたレコードを最下行に追加()
Range("B2:D2").Copy Range("B5").End(xlDown).Offset(1)
End Sub
・Endプロパティ → 領域の端のセルを取得する
書式:Rangeオブジェクト. End(方向)
解説:方向で指定した方向の、対象領域内での端のセルを返します。
方向 | 定数 | 値 |
上 | xlUp | -4162 |
下 | xlDown | -4121 |
左 | xlToLeft | -4159 |
右 | xlToRight | -4161 |
関連知識
Endプロパティを駆使すれば、さまざまなセル範囲を取得することができます。まず次の例は、データがあるアクティブセルに続く一番右端の値をMsgBoxで表示します。
MsgBox ActiveCell.End(xlToRight).Value
次の例は、セル「C2」とセル「D1」に続く最下端のセルで囲まれたセル範囲を選択します。
Range("C2", Range("D1"). End(xlDown)). Select
次の例は、領域の最下行を削除します。
ActiveCell. End(xlDown). EntireRow. Delete
次の例は、アクティブセルと同じ列で、領域の一番上のさらに1つ上の行に「タイトル」と入力します。
ActiveCell. End(xlUp). Offset(-1). Value ="タイトル"
コメント