「excel vba cells 範囲」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがあることに気づきました。
Cellsプロパティを使って、セル範囲指定を行うExcel VBA(Visual Basic for Applications)のコードを探している方による検索でしょうか。
Cellsプロパティで取得できるのは1個か全部
まず、Cellsプロパティで取得できるRangeオブジェクトは、1個か全部ということを理解しましょう。
以下のサンプルマクロを実行してみてください。
Cells.Select
Stop
Cells(1, 2).Select
Stop
途中に出てくるStopステートメントは、ブレークポイントと同じ動きをするコードで、マクロを一時停止させます。
一時停止したときにワークシートでどこが選択されているかを確認したら、VBEで[F5]キーを押して再度実行してください。
はじめに登場する
Cells.Select
が全部を取得する例です。
Cellsプロパティに引数を指定しないと、アクティブシートの全Rangeオブジェクトを取得できます。
次に登場する
Cells(1, 2).Select
が一般的によく見かけるCellsプロパティに引数を2つ指定する例です。
第1引数に行番号、第2引数に列番号を指定することで1個のセルを表すRangeオブジェクトを取得できます。
範囲指定を行うにはRangeプロパティを組み合わせる
範囲指定を行うには、Cellsプロパティだけではダメで、Rangeプロパティを組み合わせる必要があります。
Range("A1", "G8").Select
Stop
Range(Cells(2, 1), Cells(8, 7)).Select
Stop
Range("A3", Cells(8, 7)).Select
Stop
まず、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
です。
- Newer:テキストボックスだけを選択するPowerPointマクロ
- Older:ページ指定印刷するWordマクロ
Home » Excel VBA Rangeオブジェクト » Cellsプロパティ » Cellsで範囲指定を行うには