image

次の行を見つけることは、最後に使用された行+1を見つけることを意味します。最後に使用された行または列を見つけることは、VBAを使用したExcelの自動化の基本的かつ重要なタスクの1つです。シート、ワークブックを編集し、データを自動的に配置するには、シート上のデータの制限を見つける必要があります。

この記事では、Excelで最後の行と列を見つけるすべての方法を最も簡単な方法で説明します。

1. Range.Endを使用して、列の最後の非空白行を検索します。最初にコードを見てみましょう。その手紙を説明します。
Sub getLastUsedRow()

Dim last_row As Integer

last_row = Cells(Rows.Count, 1).End(xlUp).Row ‘This line gets the last row

Debug.Print last_row

End Sub

上記のサブは、列1の最後の行を検索します。

image

どのように機能しますか?

これは、シートの最後の行に移動して、CTRL + UPショートカットを押すのと同じです。

Cells(Rows.Count、1):この部分は列Aのセルを選択します。Rows.Countは1048576を示します。これは通常、Excelシートの最後の行です。

Cells(1048576、1).End(xlUp):Endは、シート内を最後までナビゲートするために使用される範囲クラスのメソッドです。 xlUpは、方向を示す変数です。一緒にこのコマンドは、データを含む最後の行を選択します。

Cells(Rows.Count、1).End(xlUp).Row:.rowは、選択したセルの行番号を返します。したがって、列Aにデータがある最後のセルの行番号を取得します。この例では、8です。

データを含む最後の行を見つけるのがいかに簡単かをご覧ください。このメソッドは、前の空白セルに関係なく、データの最後の行を選択します。画像では、セルA8のみにデータがあることがわかります。 A4を除いて、先行するすべてのセルは空白です。

列にデータがある最後のセルを選択するA列の最後のセルを選択する場合は、末尾から「.row」を削除して.selectと記述します。
Sub getLastUsedRow()

Cells(Rows.Count, 1).End(xlUp).Select ‘This line selects the last cell in a column

End Sub

「.Select」コマンドはアクティブセルを選択します。

最後のセルのアドレス列を取得するA列の最後のセルのアドレスを取得する場合は、末尾から「.row」を削除して、.addressを書き込みます。
Sub getLastUsedRow()

add=Cells(Rows.Count, 1).End(xlUp).address ‘This line selects the last cell in a column

Debug.print add

End Sub

Range.Address関数は、アクティブセルのアドレスを返します。

行の最後の非空白列を検索するこれは、列の最後の非空白セルを検索するのとほぼ同じです。

ここでは、行4のデータを含む最後のセルの列番号を取得しています。

Sub getLastUsedCol()

Dim last_col As Integer

last_col = Cells(4,Columns.Count).End(xlToLeft).Column ‘This line gets the last column

Debug.Print last_col

End Sub

image

画像では、行4の最後の空白でないセルの列番号が返されていることがわかります。これは4です。

どのように機能しますか?

メカニズムは、列にデータがある最後のセルを見つけることと同じです。列に関連するキーワードを使用しました。

VBAを使用してExcelでデータセットを選択するこれで、VBAを使用してExcelの最後の行と最後の列を取得する方法がわかりました。

これを使用して、テーブルまたはデータセットを簡単に選択できます。データセットまたはテーブルを選択した後、コピー&ペースト、フォーマット、削除など、それらに対していくつかの操作を実行できます。

ここにデータセットがあります。このデータは下方に拡張できます。開始セル、つまりB4のみが固定されます。最後の行と列は固定されていません。 vbaを使用してテーブル全体を動的に選択する必要があります。

image

空白のセルを持つテーブルを選択するためのVBAコード

Sub select_table()

Dim last_row, last_col As Long

'Get last row

last_row = Cells(Rows.Count, 2).End(xlUp).Row

'Get last column

last_col = Cells(4, Columns.Count).End(xlToLeft).Column

'Select entire table

Range(Cells(4, 2), Cells(last_row, last_col)).Select

End Sub

これを実行すると、テーブル全体がほんの一瞬で選択されます。新しい行と列を追加できます。常にデータ全体が選択されます。

image

この方法の利点:

。それは簡単です。データを含む最後の行を取得するために、文字通り1行だけを記述しました。これにより、簡単になります。

。速い。コード行が減り、時間がかかりません。

。わかりやすい。

。開始点が固定された不器用なデータテーブルがある場合は、完全に機能します。

Range.Endメソッドの短所:

。開始点を知っている必要があります。

。既知の行または列の最後の非空白セルのみを取得できます。

出発点が決まっていないとダメになります。これが発生する可能性は非常に低いです。

2. Find()関数を使用して最後の行を検索する最初にコードを見てみましょう。
Sub last_row()

lastRow = ActiveSheet.Cells.Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row



Debug.Print lastRow

End Sub

image

画像でわかるように、このコードは最後の行を正確に返します。

どのように機能しますか?ここでは、find関数を使用して、ワイルドカード演算子「*」を使用して任意のものを含むセルを検索します。アスタリスクは、テキストまたは数字を検索するために使用されます。

行ごとに検索順序を設定します(searchorder:= xlByRows)。また、Excel vbaに検索の方向をxlPrevious(searchdirection:= xlPrevious)として指示します。

シートの端から行方向に検索する検索機能を作成します。

何かを含むセルが見つかると、停止します。 Range.Rowメソッドを使用して、アクティブセルから最後の行をフェッチします。

データを含む最後のセルを取得するためのFind関数の利点:

。出発点を知る必要はありません。それはあなたに最後の列を与えるだけです。

。これは汎用であり、変更なしで任意のシートのデータを含む最後のセルを見つけるために使用できます。

。シート上の特定のテキストまたは番号の最後のインスタンスを見つけるために使用できます。

Find()関数の短所:

。醜いです。あまりにも多くの引数。

。遅いです。

。最後の空白でない列に到達できません。技術的には可能です。しかし、遅くなりすぎます。

3. SpecialCells関数を使用して最後の行を取得するxlCellTypeLastCell引数を指定したSpecialCells関数は、最後に使用されたセルを返します。最初にコードを見てみましょう

Sub spl_last_row_()

lastRow = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row

Debug.Print lastRow

End Sub

image

上記のコードを実行すると、最後に使用されたセルの行番号が取得されます。

どのように機能しますか?

これは、ExcelのショートカットCTRL + Endに相当するvbaです。最後に使用したセルを選択します。 Ctrlキーを押しながらEndキーを押しながらマクロを記録すると、このコードが表示されます。

Sub Macro1()

'

' Macro1 Macro

'

'

ActiveCell.SpecialCells(xlLastCell).Select

End Sub

これを使用して、最後に使用されたセルの行番号を取得しました。

注:上記で述べたように、このメソッドは、データを含む最後のセルではなく、最後に使用されたセルを返します。最後のセルのデータを削除しても、上記のvbaコードは「最後に使用されたセル」であるため、同じセル参照を返します。この方法を使用してデータを含む最後のセルを取得するには、最初にドキュメントを保存する必要があります。

VBA Microsoft Excel2010で次の行を見つける方法に関するこの記事が説明的であることを願っています。 IF条件式に関するその他の記事はここにあります。

あなたが私たちのブログが好きなら、Facebookであなたのfristartsとそれを共有してください。また、TwitterやFacebookでフォローすることもできます。私たちはあなたから話を聞くのが大好きです、私たちがどのように私たちの仕事を改善、補完、または革新し、あなたのためにそれをより良くすることができるかを私たちに知らせてください。 [email protected]までご連絡ください。

関連記事:

link:/ applications-word-outlook-in-vba-getting-started-with-excel-vba-userforms [ExcelVBAユーザーフォーム入門]:Excelでフォームを作成する方法、VBAの使用方法を説明しますツールボックス、ユーザー入力の処理方法、そして最後にユーザー入力の保存方法。これらのトピックについて、1つの例とステップバイステップガイドを使用して説明します。

link:/ general-topics-in-vba-vba-variables-in-excel [ExcelのVBA変数]:VBAはVisual Basic forApplicationsの略です。

これは、Microsoftのプログラミング言語です。これは、MSExcel、MS-Word、MS-AccessなどのMicrosoft Officeアプリケーションで使用されますが、VBA変数は特定のキーワードです。

link:/ general-topics-in-vba-excel-vba-variable-scope [Excel VBA Variable Scope]:すべてのプログラミング言語には、定義された変数にアクセスできる場所を定義する変数アクセス指定子があります。 ExcelVBAも例外ではありません。 VBAにもスコープ指定子があります。

link:/ cells-ranges-rows-and-columns-in-vba-what-is-the-difference-between-byref-and-byval-arguments-vba-interview-question [ByRef and ByVal Arguments]:いつ引数がByRef引数として別のサブまたは関数に渡されると、実際の変数の参照が送信されます。変数のコピーに加えられた変更は、元の引数に反映されます。

人気のある記事:

link:/ Tips-if-condition-in-excel [ExcelでIF関数を使用する方法]:ExcelのIFステートメントは、条件をチェックし、条件がTRUEの場合は特定の値を返し、FALSEの場合は別の特定の値を返します。 。

link:/ forms-and-functions-introduction-of-vlookup-function [ExcelでVLOOKUP関数を使用する方法]:これは、さまざまな範囲から値を検索するために使用される、Excelで最も使用され人気のある関数の1つです。とシート。

link:/ excel-formula-and-function-excel-sumif-function [ExcelでSUMIF関数を使用する方法]:これはもう1つのダッシュボードの必須関数です。これは、特定の条件で値を合計するのに役立ちます。

link:/ Tips-countif-in-microsoft-excel [ExcelでCOUNTIF関数を使用する方法]:この驚くべき関数を使用して条件付きの値をカウントします。特定の値をカウントするためにデータをフィルタリングする必要はありません。ダッシュボードを準備するには、Countif関数が不可欠です。