【Excel VBA】セル指定のやり方アレコレ

当ページのリンクには広告が含まれている可能性があります。
VBAセル指定

こんにちは、ユーキです。

今回は、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です。

スポンサーリンク
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

旅好き職業プログラマ。文系大学卒業後、ITソフトウエア開発会社に勤務してプログラミング言語を学ぶ。現在は転職し、プロジェクトマネージャ的ポジションで生産管理システムの開発にあたる。
得意言語は、VB、VB.NET、C#.NET、Java、SQLなど。

目次