こんにちは、ユーキです。
今回は、Excel VBAでセルを指定するときのやり方を紹介します。
Excel VBAの起動については、Excel VBAで始めるプログラミング入門をご覧ください。
セルの指定
Excel VBAではセルの指定の書き方は2つの書き方があります。RangeとCellsです。
どちらの書き方で書いても指定は可能です。
最初のうちは使い分けも気にしなくてもよいと思います。
今回は値の設定しか紹介しませんが、セルの指定の仕方を覚えると背景色をまとめて設定したり、値をクリアしたりすることがやりやすくなります。
単一セルの指定
1つのセルにアクセスする書き方です。どちらの書き方をしても、B1セルに値が設定されます。
ActiveSheet.Cells(1, 2).Value = "あ"
ActiveSheet.Range("B1").Value = "あ"
Cellsを使う場合は、何番目の行、何番目の列の順に指定します。
Rangeを使う場合は、セル名の指定となります。通常はExcelの列、行で名前がついているので、その名前を指定します(1列目がA、行は数字)。セルに名前の定義がある場合、その名前でも指定可能です。
複数セルの指定(範囲指定)
複数セルを指定する書き方です。B3~D6までのセルに値が設定されます。
ActiveSheet.Range(Cells(3, 2), Cells(6, 4)).Value = "AA"
ActiveSheet.Range("B3:D6").Value = "AA"
Cellsを使う場合、始点となる左上のセルと、終点となる右下のセルを指定します。これでこの間に含まれるセルが指定対象となります。
Rangeを使う場合も始点と終点の指定で、コロンでつなぎます。カンマで区切り、複数指定することも可能です。
「ActiveSheet.Range(“B3:D6,E6,E7”).Value = “BB”」
行全体を指定
行全体のセルを指定する書き方です。3行目のセルに値が設定されます。複数行の指定も可能です。
ActiveSheet.Rows(3).Value = "い"
ActiveSheet.Range("3:3").Value = "い"
'複数行の指定に有効
ActiveSheet.Range(Rows(3), Rows(3)).Value = "い"
ActiveSheet.Range(Range("3:3"), Range("3:3")).Value = "い"
列全体を指定
列全体のセルを指定する書き方です。C列のセルに値が設定されます。複数行の指定も可能です。
※下記の処理を実行すると、メモリ不足の警告が出る可能性がありますので、ご注意ください。
ActiveSheet.Columns(3).Value = "う"
ActiveSheet.Range("C:C").Value = "う"
'複数行の指定に有効
ActiveSheet.Range(Columns(3), Columns(3)).Value = "う"
ActiveSheet.Range(Range("C:C"), Range("C:C")).Value = "う"
終わりに
今回、紹介したセルの指定の仕方を覚えておけば、できることの幅がぐっと広がります。
上記で紹介したすべてを覚える必要はなく、考え方の基本だけ抑えておけばOKです。