Home » ExcelVBA Rangeオブジェクト » Cellsプロパティ » Cellsで範囲指定を行うには

対象:Excel2007, Excel2010, Excel2013

「excel vba cells 範囲」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがあることに気づきました。

Cellsプロパティを使って、セル範囲指定を行うExcel VBA(Visual Basic for Applications)のコードを探している方による検索でしょうか。

[スポンサードリンク]

Cellsプロパティで取得できるのは1個か全部

まず、Cellsプロパティで取得できるRangeオブジェクトは、1個か全部ということを理解しましょう。

以下のサンプルマクロを実行してみてください。

Sub Sample_1()

 Cells.Select
 Stop

 Cells(1, 2).Select
 Stop

End Sub

途中に出てくるStopステートメントは、ブレークポイントと同じ動きをするコードで、マクロを一時停止させます。
一時停止したときにワークシートでどこが選択されているかを確認したら、VBEで[F5]キーを押して再度実行してください。

はじめに登場する
 Cells.Select
が全部を取得する例です。

Cellsプロパティに引数を指定しないと、アクティブシートの全Rangeオブジェクトを取得できます。

次に登場する
 Cells(1, 2).Select
が一般的によく見かけるCellsプロパティに引数を2つ指定する例です。

第1引数に行番号、第2引数に列番号を指定することで1個のセルを表すRangeオブジェクトを取得できます。

範囲指定を行うにはRangeプロパティを組み合わせる

範囲指定を行うには、Cellsプロパティだけではダメで、Rangeプロパティを組み合わせる必要があります。

Sub Sample_2()

 Range("A1", "G8").Select
 Stop

 Range(Cells(2, 1), Cells(8, 7)).Select
 Stop

 Range("A3", Cells(8, 7)).Select
 Stop

End Sub

まず、Rangeプロパティに引数を2つ指定できることをご存じなかった方は、はじめの
 Range("A1", "G8").Select
を、よくご確認ください。

Rangeプロパティで引数を2つ指定した場合、その2つで指定されたセル範囲全体を表すRangeオブジェクトが取得できます。
「Range("A1", "G8")」というオブジェクト式で、A1:G8セルを表すRangeオブジェクトが取得でき、それをSelectしています。

このRangeオブジェクトの引数に、先のCellsプロパティを指定できます。それが、
 Range(Cells(2, 1), Cells(8, 7)).Select
です。

Rangeプロパティの、第1引数にA2セルを表す「Cells(2, 1)」、第2引数にG8セルを表す「Cells(8, 7)」がそれぞれ指定されていて、
 Range(Cells(2, 1), Cells(8, 7)).Select
というコードで、A2:G8というセル範囲が選択できます。

またRangeプロパティには、文字列とCellsプロパティを組み合わせて指定することもできます。その例が、
 Range("A3", Cells(8, 7)).Select
です。

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » Cellsプロパティ » Cellsで範囲指定を行うには

「Cellsプロパティ」の記事一覧

検索


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

.