Excel VBAの基本的な設定方法やtipsをあげていきます。
今回は「Cells」と「Range」です。これらはセル値を取得したりする際に頻繁に使用しますが、利用する場面が似ているため、使い分けがいまいちわかりにくいと思います。この二つについてその特徴や使用方法をまとめました。
目次
Cellsは、一つのセルを指定する場面で用います。
Cells でできること
1. セルの行・列として変数を与えて指定する
「どのセルに着目するかを変数によって指定できる」というこの特徴が、Cellsを用いる最大のメリットといっても過言ではないでしょう。For〜NextやLoopを使って、指定するセルを変動させたい場合などに用います。
Cells(i, 2).Select | B列i行目 のセルを選択 (行を変動させるとき) |
Cells(3, j).Select | j列目3行目 のセルを選択 (列を変動させるとき) |
Cells(m, n).Select | n列目m行目 のセルを選択 (行・列を変動させるとき) |
2. シート全体の範囲をあらわす
Cells.Clear | シート全体の書式・値をクリア |
3. Rangeで指定したセル範囲内における相対位置を指定する
Range(“B2:D20”).Cells(2,2).Select | “B2:C10″の範囲で 2行目2列目 の相対位置、 つまりC3セルを指定します。 |
Rangeは、エクセルに表示されるセル名(”A1″など)で指定したり、複数セルからなるセル範囲を指定する際に用います。
Range でできること
1. 名前でセルまたはセル範囲を指定する
Range(“A1“).Select | セルA1を選択 |
Range(“A1:E5“).Select | セルA1からE5の範囲を選択 |
Range(“1:3“).Copy | 1行目〜3行目の範囲をコピー |
Range(“A:C“).Delete | A列~C列の範囲を削除 |
Range(“日時“).Select | 「日時」と名前定義したセルを選択 |
2. それぞれ独立したセルまたは範囲を複数指定する
Range(“A1, E5“).Select | セルA1とE5をそれぞれ選択 |
Range(“A1:B5, D1:F3“).Select | A1からB5 と D1からF3 の範囲をそれぞれ選択 ※カンマの前後は範囲を指定する |
3. 開始セルと終了セルによってセル範囲を指定する
左上端セルと右下端セルで範囲を指定します。
※上の「Range(“A1:B5, D1:F3“).Select」の例と混同しないように
Range(“A1”, “F5”).Select | セルA1からF5の範囲を選択 |
Range(Range“A1”, Range“F5”).Select | セルA1からF5の範囲を選択 |
Range(Cells(1, 1), Cells(5, 6)).Select | セルA1からF5の範囲を選択 |