Home » Excel VBA Rangeオブジェクト » Endプロパティ » VBAで空白セルまでを選択する

VBAで空白セルまでを選択する

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

「a列の空白まで選択する vba」
という検索で、このサイト・インストラクターのネタ帳へのアクセスが、ありました。

A列にデータが入力されているときにデータの入力されているセル範囲を選択するには、Excel VBA(Visual Basic for Applications)でどのようなコードを書けばいいのかを探している方による検索でしょうか。

そもそも、本当に選択する必要があるのかという疑問は残りますが、とりあえず、選択するマクロをご紹介しておきましょう。
[スポンサードリンク]

空白セルの一つ上のセルまでを選択するサンプルマクロ

以下のようなマクロで、A列の空白セルの一つ上のセルまで・データの入力されているセル範囲を選択することができます。

Sub Sample1()

 Range("A1", Range("A1").End(xlDown)).Select

End Sub

Rangeプロパティに引数を2つ指定したときは、2つの引数で表されるセル範囲を表すRangeオブジェクトを取得できます。

例えば、
 Range("A1", "A10").Select
というコードにすると、A1:A10セルを選択できます。

上記マクロの、
 Range("A1", Range("A1").End(xlDown)).Select
というコードは、このRangeプロパティの第2引数に
「Range("A1").End(xlDown)」
というオブジェクト式を指定したものです。

「Range("A1").End(xlDown)」は、データの入力されている最終行を取得する際に利用する、Excel VBAで定番のRange.Endプロパティを使ったオブジェクト式です。

空白セルの一つ上のセルまでを選択するサンプルマクロ2

一般的な、実務で作られるデータの場合、上記のような、
 Range("A1", Range("A1").End(xlDown)).Select
というコードで、A列のデータの入力されているセル範囲を選択することができますが、A1セルにしかデータが存在していない場合はアウトです。
A1セルにしかデータが存在しないようなケースが想定されるのなら、以下のようなマクロです。

Sub Sample2()

 Range("A1", Cells(Rows.Count, "A").End(xlUp)).Select

End Sub

先ほどのマクロとは、Rangeプロパティの第2引数が異なっています。

「Cells(Rows.Count, "A").End(xlUp)」は、途中に空白セルが存在するような場合に最終行を取得する際に利用する定番のオブジェクト式です。

空白のセルまで選択するサンプルマクロ

「a列の空白まで選択する vba」
という検索キーワードを杓子定規に解釈すると、空白セルも含んで選択するということになります。

その場合は以下のようなマクロです。

Sub Sample3()

 Range("A1", Range("A1").End(xlDown).Offset(1, 0)).Select

End Sub

先にご紹介した一つ目のマクロとよく似ていますが、Rangeプロパティの第2引数が少しだけ違います。

「Range("A1").End(xlDown)」はA1セルから下方向の終端セルを取得するオブジェクト式です。

このA列のデータの入力されている一番下のセルから、もう一つ下の空白セルを取得するためにOffsetプロパティを使って、
「Range("A1").End(xlDown).Offset(1, 0)」
としています。

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » Endプロパティ » VBAで空白セルまでを選択する

Copyright © インストラクターのネタ帳 All Rights Reserved.

.