終端セルを参照する(End プロパティ)
2015/08/26
End プロパティ
End プロパティは、基準となるセルが含まれる領域の指定した方向(左右上下)の終端に位置するセルを取得します。
戻り値は、単一のセルを表す Range オブジェクトです。
Object.End ( direction )
引数・戻り値
- object ・・・ 対象となる Range オブジェクト。
- direction ・・・ 終端の条件を示す定数(以下の表を参照)
【終端の条件を示す定数一覧表】定数 値 意味 xlToLeft -4159 左方向の終端 xlToRight -4161 右方向の終端 xlUp -4162 上方向の終端 xlDown -4121 下方向の終端
End プロパティの使用例
サンプルVBAソース その1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
Sub Sample_Endp1() 'セル「C6」からの上下左右それぞれの終端セルのアドレスを表示 Dim Laddress, Raddress, Uaddress, Daddress Range("C6").Activate '左終端セルを取得 Laddress = ActiveCell.End(xlToLeft).Address '右終端セルを取得 Raddress = ActiveCell.End(xlToRight).Address '上終端セルを取得 Uaddress = ActiveCell.End(xlUp).Address '下終端セルを取得 Daddress = ActiveCell.End(xlDown).Address MsgBox "左終端セルのアドレス:" & Laddress & Chr(13) & _ "右終端セルのアドレス:" & Raddress & Chr(13) & _ "上終端セルのアドレス:" & Uaddress & Chr(13) & _ "下終端セルのアドレス:" & Daddress & Chr(13) End Sub |
実行結果
サンプルVBAソース その2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
Sub Sample_Endp2() 'セル「E5」からの上下左右それぞれの終端セルのアドレスを表示 '途中に空白セルがある場合 Dim Laddress, Raddress, Uaddress, Daddress Range("E5").Activate '左終端セルを取得 Laddress = ActiveCell.End(xlToLeft).Address '右終端セルを取得しようとするが途中空白がある Raddress = ActiveCell.End(xlToRight).Address '上終端セルを取得 Uaddress = ActiveCell.End(xlUp).Address '下終端セルを取得しようとするが途中空白がある Daddress = ActiveCell.End(xlDown).Address MsgBox "左終端セルのアドレス:" & Laddress & Chr(13) & _ "右終端セルのアドレス:" & Raddress & Chr(13) & _ "上終端セルのアドレス:" & Uaddress & Chr(13) & _ "下終端セルのアドレス:" & Daddress & Chr(13) '空白セルを考慮して、右終端セルを取得できるように修正 Raddress = Cells(ActiveCell.Row, Columns.Count).End(xlToLeft).Address '空白セルを考慮して、下終端セルを取得できるように修正 Daddress = Cells(Rows.Count, ActiveCell.Column).End(xlUp).Address MsgBox "左終端セルのアドレス:" & Laddress & Chr(13) & _ "右終端セルのアドレス:" & Raddress & Chr(13) & _ "上終端セルのアドレス:" & Uaddress & Chr(13) & _ "下終端セルのアドレス:" & Daddress & Chr(13) End Sub |
実行結果
最終行までの間に、空白セルがある場合は、「VBAソース その1」の方法だと「データが入力されている範囲での正確な終端セル」を取得することができません。このような場合、下方向終端セルを取得するには、取得したい列の最終行から上方向に探査、右方向終端セルを取得するには、取得したい行の最終列から左方向に探査すると取得できます。
最終行は、Rows.Count で取得できます。
最終列は、Columns.Count で取得できます。
修正前
修正後
関連記事
-
セル・セル範囲に名前を定義・削除(Name プロパティ・Names コレクション)
セル・セル範囲に名前を定義(Name プロパティ) Range オブジェクトのN …
-
ハイパーリンク(Hyperlink オブジェクトのメソッド)
Hyperlink オブジェクトのメソッド Hyperlinks コレクション …
-
セルのロック(Locked プロパティ)
セルのロック(Locked プロパティ) Locked プロパティで、セルのロッ …
-
任意のセルを含む行または列全体を参照(EntireRow プロパティ,EntireColumn プロパティ)
EntireRow プロパティ・EntireColumn プロパティ Entir …
-
現在選択されているセルを参照(RangeSelection プロパティ)
RangeSelection プロパティ 実際に何が選択されているかにかかわらず …
-
2つ以上のセル範囲を1つにまとめて参照(Union メソッド)
Union メソッド Union メソッドは、2つ以上のセル範囲を1つにまとめて …
-
対象のセルが直接参照しているセル全てを取得(DirectPrecedents プロパティ)
DirectPrecedents プロパティ DirectPrecedents …
-
セルが結合セルの一部である場合、その結合セルの範囲を取得(MergeArea プロパティ)
MergeArea プロパティ MergeArea プロパティは、指定したセルが …
-
対象のセルを参照している全てのセルを取得(Dependents プロパティ)
Dependents プロパティ Dependents プロパティは、対象のセル …
-
ハイパーリンク(Hyperlink オブジェクト)
Hyperlink オブジェクト Hyperlinks コレクション のメンバー …