終端セルを参照する(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 で取得できます。
修正前
修正後
関連記事
-
-
ハイパーリンク(Hyperlink オブジェクトのメソッド)
Hyperlink オブジェクトのメソッド Hyperlinks コレクション …
-
-
セル・セル範囲を切り取る(Cut メソッド)
Cut メソッド Cut メソッドは、指定したセル範囲を切り取り、引数に指定した …
-
-
任意の行または列を参照(Rows プロパティ,Columns プロパティ)
Rows プロパティ・Columns プロパティ Rows プロパティは、オブジ …
-
-
フリガナ(Phonetic プロパティ)
Phonetic プロパティ 文字列(漢字など)をキーボードから入力した時の「読 …
-
-
セル範囲を結合・結合を解除(MergeCells プロパティ)
MergeCells プロパティ MergeCells プロパティは、指定したセ …
-
-
入力規則(エラーメッセージの設定)Validation オブジェクト
無効値を入力時に、エラーメッセージの表示 Validation.ShowErro …
-
-
セルの幅・高さの自動調整(AutoFit メソッド)
AutoFit メソッド AutoFit メソッドは、指定したセル・セル範囲(R …
-
-
セルの位置を取得(Left プロパティ、Top プロパティ)
Left プロパティ・Top プロパティ Left プロパティは、「A列」の左端 …
-
-
セルを挿入する(Insert メソッド)
Insert メソッド Insert メソッドで、指定した場所に新規の空白セルを …
-
-
セル・セル範囲を貼り付ける(Paste メソッド)
Paste メソッド Paste メソッドは、クリップボードの内容を指定したセル …



