最後の行、列、セルを見つけるにはどうすればよいですか?
最後の行、列、またはセルを検索するには、範囲の「End」プロパティを使用できます。 end プロパティを使用すると、データ範囲の末尾 (空ではない最後のセル) に移動できます。これにより、どの方向 (上下左右) に移動するかを決定するために使用できる定数が存在します。
VBA を使用して Excel の最後の行を検索する
- 最後の行に移動するセルまたは範囲を設定します。
- その後、ドットを入力してプロパティとメソッドのリストを取得します。
- 「End」を選択または入力し、開始括弧を入力します。
- 使用したい引数を使用してください。
- さらに、address プロパティを使用してセルのアドレスを取得します。
MsgBox Range("A1").End(xlDown).Address
上記のコードを実行すると、空ではない最後のセルの行番号を示すメッセージ ボックスが表示されます。
VBA を使用して最後の列を検索する
ここで、最後の列を検索するとします。この場合、「xlDown」定数を使用する代わりに「xlRight」を使用する必要があります。また、アドレスを持たせる代わりにそのセルを選択したい場合は、「select」メソッドを使用できます。次の方法を考えてみましょう。
Range("A1").End(xlToRight).Select
最後のセルを見つける
同じ方法を使用して、空ではない最後のセルを取得することもできます。このコードを記述するには、最後の行と最後の列を知っている必要があります。
Sub vba_last_row() Dim lRow As Long Dim lColumn As Long lRow = Range("A1").End(xlDown).Row lColumn = Range("A1").End(xlToRight).Column Cells(lRow, lColumn).Select End Sub
上記のコードを理解するには、コードを 3 つの部分に分割する必要があります。
- 最初の部分では、行番号と列番号を格納する2 つの変数を宣言しました。
- SECOND 部分では、「End」と「xlDown」を使用してから Row プロパティを使用して最後の行番号を取得し、同様に「End」と「xlToRight」を使用してプロパティを使用しました。 「Column」は最後の列の列番号を取得します。
- THIRD 部分では、最後の列番号と最後の行番号を使用して、最後のセルを参照して選択します。
注:最終行と最終列の方法を使用して別のワークシート内のセルを選択する場合は、最初にそのワークシートを有効にする必要があります。
Find メソッドを使用した最後の行、列、セル
range オブジェクトで find メソッドを使用して、ワークシートの最後の行、列、セルを取得することもできます。行番号を見つけるには、次のコードを使用します。
Sub vba_last_row() Dim iRow As Long iRow = Cells.Find(What:="*", _ After:=Range("A1"), _ LookAt:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Row MsgBox iRow End Sub
列番号の場合:
Sub vba_last_row() Dim iColumn As Long iColumn = Cells.Find(What:="*", _ After:=Range("A1"), _ LookAt:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByColumns, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Column MsgBox iColumn End Sub
最後のセルのセルアドレスを取得します。
Sub vba_last_row() Dim iColumn As Long Dim iRow As Long iColumn = Cells.Find(What:="*", _ After:=Range("A1"), _ LookAt:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByColumns, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Column iRow = Cells.Find(What:="*", _ After:=Range("A1"), _ LookAt:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Row Cells(iRow, iColumn).Address End Sub
VBAとは
関連するチュートリアル
- Excel で VBA を使用して行を数える
- Excel VBA フォント (色、サイズ、種類、太字)
- Excel VBA 列または行の表示と非表示を切り替える
- Excel VBA 範囲 – 範囲とセルの操作
- Excel で VBA を使用してセルに枠線を適用する