Excel VBAで、入力されている最終のセル位置を取得する

入力されている最終のセル位置を取得するのは、既存のデータの次に新規データを追加したい場合などに必要になる処理です。




Homeに戻る > Excel セルのTipsへ

色々な方法がありますが、今回は最終のセル位置を検索するのに、RangeオブジェクトのFindメソッドを使います。

構文は下のようになります。

Object.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection,MatchCase, MatchByte, SearchFormat)

  • Object Rangeオブジェクト
  • What 語句を指定 [省略不可]
  • After 開始するセルを指定 [省略可能]
  • LookIn 種類を指定 数式(xlFormulas)、値(xlValues)、コメント(xlComments) [省略可能]
  • LookAt 条件を指定  完全に同一なセルだけを検索(xlWhole)、一部分でも一致するセルの検索(xlPart) [省略可能]
  • SeachOrder 行列の検索方向を指定します。列方向に検索する(xlByColumns)、行方向に検索する(xlByRows) [省略可能]
  • SearchDirection セルの検索方向を指定 前方に検索(xlNext:規定値)、後方に検索(xlPrevious)[省略可能]
  • MatchCase 大文字と小文字を区別する(True)、区別しない(False) [省略可能]
  • MatchByte 半角と全角を区別する(True)、 区別しない(True) [省略可能]
  • SearchFormat Trueを指定するとFindFormatプロパティで指定された書式を使用します。Falseで使用しません。[省略可能]

LookIn、LookAt、SearchOrder、MatchByte、MatchCaseを、省略した場合には前回処理で使用された値を使用します。

繰り返し検索を行うには、Object.FindNext(After)、Object.FindPrevious(After) を使用します。

同様の最終位置を取得するVBA「入力されている最終位置、先頭位置の取得」を掲載しています、参考にしてください。



Findメソッドを使用し、入力されている最終のセル位置を取得するVBA

Excelの標準モジュールにVBAコードを作成

'最終セル位置を取得する
Public Sub GetLastCell()
    Dim s1 As String

    'Findを実行
    'What:="*"空でないセル、LookAt:=xlWhole:完全一致、
    'SearchOrder:=xlByRows:行方向
    'SearchDirection:=xlPrevious:前のセル
    ActiveSheet.Cells.Find(What:="*", LookAt:=xlWhole, _
        SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Select

    s1 = "セル位置:" & ActiveCell.Address & _
        " 行:" & ActiveCell.Row & " 列:" & ActiveCell.Column

    MsgBox "最終位置は " & s1

End Sub

Excel VBAの実行結果

最終位置のアドレスと行列の位置が表示されます。

シートに何も入力されていない場合はエラーになりますので、必ず何か入力しておいてください。

VBAの実行結果


Homeに戻る > Excel セルのTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved