終端セルを参照する(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 で取得できます。
修正前
修正後
関連記事
-
-
セルの値を置換(Replace メソッド)
Replace メソッド 任意のセル範囲内から特定の値を一括して置換します。Fi …
-
-
セルの文字列を取得(Text プロパティ)
Text プロパティ セルに表示されている文字列を取得します。Text プロパテ …
-
-
VBA で、ワークシート関数を使用(WorksheetFunction プロパティ)
VBA で、ワークシと関数を使用 VBA から、ワークシート関数を呼び出す場合、 …
-
-
対象のセルを参照している全てのセルを取得(Dependents プロパティ)
Dependents プロパティ Dependents プロパティは、対象のセル …
-
-
セルが結合セルの一部である場合、その結合セルの範囲を取得(MergeArea プロパティ)
MergeArea プロパティ MergeArea プロパティは、指定したセルが …
-
-
入力規則(リストで制限する)Validation.Add メソッド
ドロップダウンリストで入力値を制限 Validation.Add メソッド(また …
-
-
指定したセルへ移動(Goto メソッド)
指定したセルへ移動 指定したシートの指定したセルへジャンプするには、Goto メ …
-
-
列名を取得、列番号を取得(Address プロパティ,Column プロパティ)
列番号を取得する セル番地(「A1」や「B3」)や列名(「A」「B」「C」 …
-
-
オートフィルタ(抽出件数の取得・結果集計)AutoFilter メソッド
ワークシート関数の Subtotal 関数 の使い方 VBA には、オートフィル …
-
-
文字列の縦位置を取得・設定する(VerticalAlignment プロパティ)
VerticalAlignment プロパティ VerticalAlignmen …



