アクセス上位ページ
 
最近の更新内容
(6)-r.AutoFilter メソッド ⇐ [PREV]
[NEXT] ⇒ (6)-t.Hidden プロパティ

Excel VBA ≫ 1.基礎編 - セル・レンジ(6)-s.End プロパティ

End プロパティ

基点となるセルから値や数式の入力されたセルの終端を取得するには End プロパティを使用します。 引数には終端を調べる方向を指定します。 Endプロパティを使用すると終端のセルオブジェクトが返却されます。



  • Endプロパティの使用例
  • B6セルを起点として下方向の終端セルを取得し、そのセルアドレスを表示する例です。
    Sub sample6_43()
        With Range("B6")    '基点セル
            '基点セルと終端セルのアドレスを表示
            MsgBox "基点セル・・・" & .Address & vbLf & _
                   "方向  ・・・xlDown" & vbLf & _
                   "終端セル・・・" & .End(xlDown).Address
        End With
    End Sub
    
    ⇒ サンプルマクロ集 へ


    <実行イメージ> sample6_39の実行前
    <実行結果> sample6_39の実行結果

Endプロパティの引数に設定できる定数
定数 説明
xlDown 下方向
xlToLeft 左方向
xlToRight 右方向
xlUp 上方向
Endプロパティの使用イメージ


  • 表の途中に空白セルを含む場合の終端セル取得方法
  • 下表のような場合にB列の終端セルを取得する方法を考えます。
    表の途中に空白セルを含む場合 B3セルを基点に下方向へ終端セルを探すと、B5セルが返ってきてしまいます。
    B3セルを基点に下方向へ終端セルを探す sample6_39の実行結果
    このような場合はB列の最終行から上方向へ終端セルを探します。
    最終行はRows.Countで取得しておくと、エクセルの最終行が増えた際にマクロを修正する必要がなくなります。
    最終行を基点に上方向へ終端セルを探す
    Sub sample6_44()
        With Range("B" & Rows.Count)    '基点セル
            '基点セルと終端セルのアドレスを表示
            MsgBox "基点セル・・・" & .Address & vbLf & _
                   "方向  ・・・xlUp" & vbLf & _
                   "終端セル・・・" & .End(xlUp).Address
        End With
    End Sub
    
    ⇒ サンプルマクロ集 へ

    sample6_40の実行結果

<サイト内関連リンク> 関連リンクもチェック!!
- Endプロパティで最終行を取得する例
Endプロパティを使用するときはオートフィルターに注意!!
オートフィルターにより非表示となっている行については、例え値が入力されていてもEndプロパティの探索対象外となります。この場合は非表示の行を表示させてからEndプロパティを使用する必要があります。
  • 最終行が表示されている場合
  • 行が非表示になっていない状態
    <sample6_40の実行結果>
    終端セルが正しく取得できます。
    sample6_40の実行結果
  • オートフィルターにより最終行が非表示になっている場合
  • 行が非表示になっている状態
    <sample6_40の実行結果>
    最終行が表示されていないため、終端セル(B13セル)が正しく取得できません。 sample6_40の実行結果
    この場合に終端セルを正しく取得するには、Endプロパティ使用前に非表示行をすべて表示するように設定します。
    Sub sample6_45()
        With ActiveSheet
            'オートフィルターが設定されているかチェック
            If .AutoFilterMode Then
                '非表示行をすべて表示
                .AutoFilter.ShowAllData
            End If
        End With
    
        With Range("B" & Rows.Count)    '基点セル
            '基点セルと終端セルのアドレスを表示
            MsgBox "基点セル・・・" & .Address & vbLf & _
                   "方向  ・・・xlUp" & vbLf & _
                   "終端セル・・・" & .End(xlUp).Address
        End With
    End Sub
    

    <sample6_41の実行結果> sample6_41の実行結果
カテゴリ内ページ



Page
Top