終端セルを参照する(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 で取得できます。
修正前
修正後
関連記事
-
-
数式を設定・取得する(Formula プロパティ・FormulaR1C1 プロパティ)
Formula プロパティ(FormulaR1C1 プロパティ) Formula …
-
-
セルが選択されているか確認する(TypeName 関数)
セルが選択されているか確認する方法と使用例 TypeName 関数の引数に、Se …
-
-
対象のセルが配列数式の一部かどうか(HasArray プロパティ)
HasArray プロパティ HasArray プロパティは、対象のセルが配列数 …
-
-
入力規則(入力時メッセージの設定)Validation オブジェクト
入力規則の入力時メッセージを表示する Validation.ShowInput …
-
-
文字列の縦位置を取得・設定する(VerticalAlignment プロパティ)
VerticalAlignment プロパティ VerticalAlignmen …
-
-
文字の向きを表す値を取得・設定する(Orientation プロパティ)
Orientation プロパティ Orientation プロパティで、文字列 …
-
-
指定した条件に一致するセルを取得(SpecialCells メソッド)
SpecialCells メソッド SpecialCells メソッドは、指定し …
-
-
文字列をセル幅で折り返す(WrapText プロパティ)
WrapText プロパティ WrapText プロパティは、セルに表示されてい …
-
-
セル・セル範囲に名前を定義・削除(Name プロパティ・Names コレクション)
セル・セル範囲に名前を定義(Name プロパティ) Range オブジェクトのN …
-
-
直前のセル・直後のセルを参照する(Previous プロパティ・Next プロパティ)
Previous プロパティ・Next プロパティ Previous プロパティ …



