セルの範囲選択と可変式選択

前回セルやワークシートの指定の応用として、範囲指定をする方法を説明したいと思います。

まずは例題としてA1からC3までの範囲を選択するVBAを紹介します。

例)Range("A1:C3").Select

これはExcelの関数を使える人ならすぐにわかりますよね?
単純に「:」を間に入れてあげることで範囲を選択します。
その後の「.Select」を入力する事で、「その範囲を選択してください」ということになります。

では行や列を選択する場合はどうするかというと

例1)Rows(1).Select
例2)Columns(1).Select

まずは例1の【Rows】から説明するとRowsとは行を意味しますので、括弧の中にある1番目の行という事で1行目を選択します。

次に例2の【Columns】ですがこちらは列を意味しますので、括弧の中にある1番目の列という事でA列を選択します。

では少し難しくして可変式の範囲選択をする方法を紹介します。
が、その前に2つのポイントを覚えないといけません。

まず覚えて欲しいのが【Row】と【Column】です。
Rowは行数、Columnは列数を表します。
この時、先程のRowsやColumnsの様にsは付いていない事に注意してください。

2つ目に【End(xl○○)】です。
この○○にはDownやUp、ToRightやToLeftが入ります。
意味は○○の方向の最後を意味します。
ちなみに最後と言っても入力があるセルの最後を取得しますので、もし空白のセルの最後を取得したらExcelの一番最後の数字を取得してしまうので注意してください。

では上記の2つのポイントをRangeと組み合わせて文字が入ってる一番下の行まで範囲選択するコードを書くと
Cells(Range("A1").End(xlDown).Row, 1).Select
となります。

例えばA1からA20のセルまで何かの文字が入っていた時、上記のコードではA1からA20のセルを選択します。
この「.End(xlDown).Row」は、後ほど解説している繰り返し【For】と組み合わせる事で「入力のあるセルの数だけ繰り返す」という使い方も出来るようになるので覚えておいた方がいいかと思います。

では最後にRangeの中にCellsを入れた範囲選択を紹介します。

例)Range(Cells(1, 1), Cells(3, 3)).Select

上記の例だとA1からC3の範囲を選択します。
Rangeの中にCells(1, 1)=A1のセルとCells(3, 3)=C3のセルを「,」で区切る事でその範囲を指します。
最後に「.Select」をつけることで範囲選択をするという事になります。

ただ、この方法を使うなら1番目に紹介した【Range("A1:C3")】の方が簡単なのであまり使うことはないと思いますが、稀に繰り返し【For】等を使用する時にセルの選択に変数を使用する場合があり、その際に活用する事があるので、また使う時があればこのサイトへ来て頂けたらと思います。