終端セルを参照する(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 で取得できます。
修正前
修正後
関連記事
-
-
対象のセル・セル範囲に数式があるかどうか調べる(HasFormula プロパティ)
HasFormula プロパティ HasFormula プロパティは、対象のセル …
-
-
列名を取得、列番号を取得(Address プロパティ,Column プロパティ)
列番号を取得する セル番地(「A1」や「B3」)や列名(「A」「B」「C」 …
-
-
フリガナの設定(SetPhonetic メソッド)
フリガナの設定(SetPhonetic メソッド) SetPhonetic メソ …
-
-
セルの位置を取得(Left プロパティ、Top プロパティ)
Left プロパティ・Top プロパティ Left プロパティは、「A列」の左端 …
-
-
セル内部を参照(Interior プロパティ)
Interior プロパティ Interior プロパティで、セルの内部を参照し …
-
-
直前のセル・直後のセルを参照する(Previous プロパティ・Next プロパティ)
Previous プロパティ・Next プロパティ Previous プロパティ …
-
-
セルの値を置換(Replace メソッド)
Replace メソッド 任意のセル範囲内から特定の値を一括して置換します。Fi …
-
-
列幅を取得・設定・する(ColumnWidth プロパティ)
ColumnWidth プロパティ ColumnWidth プロパティは、対象セ …
-
-
任意の行または列を参照(Rows プロパティ,Columns プロパティ)
Rows プロパティ・Columns プロパティ Rows プロパティは、オブジ …
-
-
行の高さを取得・設定・する(RowHeight プロパティ)
RowHeight プロパティ RowHeight プロパティは、対象セルの高さ …