今回は、VBAのRangeの使い方について紹介していきます。
Rangeとは、1セルに対して値を設定するのではなく、セルの範囲に対して設定を行いたいときなどに利用します。
複数のセルを一度に設定したいときとても便利です。特に、Cellsを利用したRangeの使い方を押さえておきましょう。
Rangeを利用したセルの値設定
基本的な、Rangeの使い方を見てみましょう。
Range("開始セル", "終了セル").Value = 設定したい値
このように、「開始セル」と「終了セル」を指定することで、Rangeを使うことができます。
例を見てみましょう。
「A1」から「B3」のセルの範囲に、「1」を設定してみましょう。
Range("A1", "B3").Value = "1"
「開始セル」 = 「A1」
「終了セル」 = 「B3」
結果
指定した範囲に「1」が入力されていることが確認できました。
あまり使用しませんが、少し違う書き方も紹介しておきます。
Range("A1:B3").Value = "1"
こちらも同じ結果になります。
Range Cellsを利用する
先ほどは「開始セル」と「終了セル」の指定を「A1」、「B3」と指定しましたが、次はCellsを利用することもできます。
Cellsの使用方法は、こちらを参考にしてみてください。
それではさっそく例を見てみましょう。
Range(Cells(1, 3), Cells(3, 5)).Value = "ABC"
「開始セル」=「C1」もしくは「Cells(1,3)」
「終了セル」=「E3」もしくは「Cells(3,5)」
結果
このように、Cellsを利用してRangeの範囲設定を使用することができます。
このやり方を一番よく使用するので、必ず押さえておきましょう!
なぜなら、Cellsを利用することで「行」と「列」の値を変数にして使用することができるからです。
Dim row1 As Integer
Dim col1 As Integer
Dim row2 As Integer
Dim col2 As Integer
row1 = 1
col1 = 3
row2 = 3
col2 = 5
Range(Cells(row1, col1), Cells(row2, col2)).Value = "ABC"
結果
先ほどと同じ結果になっています。
このように、変数を利用することで「for文(繰り返し)」「if文(条件分岐)」を使用することができるので、
汎用性が格段に上がりますので、Rangeを使用するときはこのやり方で基本的には記載しましょう。
まとめ
Rangeは、指定したセルの範囲に値を一括で設定することができます。
基本的には、汎用性の高い、Cellsを利用した方法で記載するのがおすすめです。