VBA Range.End (xlDown, xlUp, xlToRight, xlToLeft)
In this Article
このチュートリアルでは、VBAでRange.Endプロパティを使用する方法について説明します。
Excelのワークブックやワークシートで手動で行うほとんどのことは、VBAコードで自動化することができます。
Excelで空白でないセルが並んでいる状態でCtrl+下矢印キーを押すと、現在いる列の最後の空白でないセルに移動します。 Ctrl+上矢印キーを押すと、カーソルは最初の空白でないセルに移動します。 同様に、Ctrl+右矢印キー、 Ctrl+左矢印キーを使用すると、その行の先頭または末尾に移動することができます。 これらのキーの組み合わせはすべて、End関数を使ってVBAコード内で使用することができます。
Range Endプロパティの文法
Range.Endプロパティは、現在作業している領域(アクティブセル領域)内の特定のセルに移動することができます。
expression.End (Direction)
このexpressionは、開始したいセルのアドレス(Range)で、Range(“A1”)のように表します。
Endは、制御対象のRangeオブジェクトのプロパティです。
Directionは、使用できるExcelの定数です。 xlDown、xlToLeft、xlToRight、xlUpの4種類から選択可能です。
最後のセルへの移動
以下のプロシージャは、現在の領域の最後のセルに移動させます。
Sub GoToLast()
'現在の領域で占有されている最後のセルに移動する
Range("A1").End(xlDown).Select
End Sub
行のカウント
以下の手順では、定数xlDownとRange Endプロパティを使用して、現在の領域に何行あるか数えることができます。
Sub GoToLastRowofRange()
Dim rw As Integer
Range("A1").Select
'現在の領域内の最後の行を取得する
rw = Range("A1").End(xlDown).Row
'何行使用されているかを表示する
MsgBox "この範囲で使用されている最後の行は " & rw & " です"
End Sub
一方、以下のものは、xlToRight定数を使用して、範囲内の列をカウントします。
Sub GoToLastCellofRange()
Dim col As Integer
Range("A1").Select
'現在のリージョン内の最後の列を取得する
col = Range("A1").End(xlToRight).Column
'何列目が使用されているかを表示する
MsgBox "この範囲で使用されている最後の列は " & col & " です"
End Sub
範囲指定配列の作成
以下の手順で、セル範囲の最初のセルから始めて、End(xlDown)プロパティを使って、セル範囲の最後のセルを見つけることができます。 そして、Rangeの合計行数で配列をReDimすることで、セル範囲内をループさせることができます。
Sub PopulateArray()
'配列を宣言する
Dim strSuppliers() As String
'行を数えるための整数を宣言する
Dim n As Integer
'行をカウント
n = Range("B1", Range("B1").End(xlDown)).Rows.Count
'配列の初期化と入力
ReDim strCustomers(n)
'ループのための整数を宣言する
Dim i As Integer
'配列に値を入れる
For i = 0 To n
strCustomers(i) = Range("B1").Offset(i, 0).Value
Next i
'配列の値をメッセージボックスに表示する
MsgBox Join(strCustomers, vbCrLf)
End Sub
このプロシージャを実行すると、次のようなメッセージボックスが返されます。
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!Learn More!