VBAのCellsとRangeの使い方 |範囲指定や変数の使用までわかりやすく解説

Cellsアイキャッチ

今回は、VBAでセルを選択する「Cells」の使用方法を解説します。また同じようにセルを選択する「Range」の使用方法ともに、Cellsとの違いや使い分け方をご紹介します。

こんな人におすすめ
  1. CellsやRangeの使い方やどう使い分けるのか知りたい方
  2. VBAでセルの選択をしたい方
  3. VBA初学者
目次

CellsとRangeの違い

VBAでセルを選択する方法には「Cells」と「Range」があります。この2つの使い分けは以下のようになります。

Cellsを使うとき
  • 単一のセルを選択するとき
  • シート全体を選択したいとき
  • 条件によって選択するセルが変わるとき(変数でセルを指定したいとき)
Rangeを使うとき
  • セルを範囲で選択したいとき(複数セル選択をしたいとき)
  • 選択するセル範囲が固定のとき
  • 名前を定義したセル範囲を選択するとき

セルを範囲で指定するときや定義した名前を使うときは「Range」を、変数を使うときは「Cells」を使うと覚えておきましょう。

それではそれぞれの使い方を見ていきましょう。

Cells

Cellsは単一のセルを選択するときに使用します。

Cells

Cells(行, 列)

Cellsの使い方をサンプルコードとともに見ていきます。

Cellsでセルを選択する

B5セルを選択するサンプルコード

Sub sample1_cells()
    Cells(5, 2).Select
End Sub

SelectでCellsで指定したセルを選択できます。

実行すると、B5セルが選択されます。

実行結果

ssample1結果

またCellsは列に列番号だけでなく、列の文字を指定することも可能です。

Sub sample1_cells()
    Cells(5, "B").Select
End Sub

シート全体を選択する

Sub sample2_cells()
     Cells.Select
End Sub

Cellsでは行・列を指定しないとシート全体を選択することができます。

実行結果

sample2実行結果

選択したセルに値を入力する

Sub sample3_cells()
    Cells(1, 1).Value = "Hello"
    Cells(2, 1).Value = 5
End Sub

セルに値を入力するときはCellsでセルを指定し、Valueでセルの値を変更します。また文字列を入力したいときは “(ダブルクオーテーション)で囲みます。

実行結果

sample3実行結果

また複数ワークシートが存在するときは、シートを指定することもできます。

Worksheets("Sheet1").Cells(1, 1).Value = "Hello"
Worksheets("Sheet2").Cells(2, 1).Value = 5

入力された文字のフォントや大きさを変更し太字にする

Sub sample4_cells()
   Cells(3, 2).Value = "Youseful"
   Cells(3, 2).Font.Bold = True
   Cells(3, 2).Font.Name = "Arial"
   Cells(3, 2).Font.Size = 12
End Sub

実行結果

sample4実行結果

このようにフォントやサイズを自由に変更できます。

clearで書式や値を消去できます。

Sub clear()
    Cells(3, 2).clear
End Sub

変数を使用する

Cellsは変数を使用して、セルを選択できます。For文のようなループ文と組み合わせて指定するセルを動かすことができます。

以下の表がシートに記入されている時、E列の売上が500,000を越えているセルに色を付けてみます。

ファイルはこちらから

表サンプル画像
Sub sample5_cells()
   Dim i As Integer
   For i = 3 To 22
      If Cells(i, 5) > 500000 Then
         Cells(i, 5).Interior.Color = vbRed
      End If
   Next i
End Sub

変数 iと if文を用いて、E列(5列目)の値を表の終端(3行目から22行目)まで探索し、値が500,000を越えているセルを赤に変更しています。

実行結果

sample5実行結果

For文の使い方はこちら!

Rangeの使い方

Rangeはセル範囲(複数セル)を選択するときに使用します(単一セルも選択できます)。また固定のセルを指定する(変数を使わない)ときやセル範囲に名前が定義されているときもCellsではなくRangeを用います。

単一セルを選択するとき

単一セルを選択

Range(“セル”)

Rangeで単一セルを選択する、値を入力するサンプルコード

Sub sample1_1_range()
    Range("C5").Select
End Sub

Sub sample1_2_range()
    Range("C5").Value = 100
End Sub

複数のセルを範囲指定する

またRangeはCellsと違い、セル範囲を選択できます。

複数セルを選択

Range(“始点セル:終点セル”)

A1セルからE10セルまで選択するサンプルコード

Sub sample2_range()
    Range("A1:E10").Select
End Sub

実行結果

rangesample2実行結果

CellsとRangeを組み合わせて範囲を選択

RangeはCellsと組み合わせてセルの範囲を指定できます。

Sub sample3_range()
    Range(Cells(1.1), Cells(10, 5)).Value = 10
End Sub

CellsでRangeの範囲を指定します。A1からE10セルまで値(上記サンプルコードでは10)を入力します。

実行結果

rangesample3実行結果

定義した名前でセルの範囲を指定する

セルの範囲に名前を付けた場合、Rangeでその名前を指定し、範囲を選択することができます。

名前を定義したセルの選択

Range(“定義した名前”)

今回はA3セルからD6セルに名前を付け、Rangeで選択してみます。A3セルからD6セルまでドラッグし、右クリックで「名前の定義」を選択し、名前を定義します。今回はsampleと定義します。

セル範囲名前定義

次のサンプルコードを実行するとA3セルからD6セルが選択できます。

Sub sample4_range()
    Range("sample").Select
End Sub

行全体・列全体を指定する(Rows・Columns)

行全体を指定するときは「Rows」を使います。

たとえば、3行目を選択したいときは
Rows(3)
と書きます。

複数行指定するとき、たとえば2~5行目を指定したいときは
Rows(“2:5”)
あるいは
Range(Rows(2), Rows(5))
と書きます。

Rangeを使って2~5行目に値を入力するサンプルコード

Sub sample_rows()
    Range(Rows(2), Rows(5)).Value = 5
End Sub

実行結果

sampleRows結果

2~5行目に値が入力されます。

列全体を指定するときは「Columns」を使います。たとえばB列を指定したいときは

Columns(2)

あるいは

Columns(“B”)

と書きます。

複数列指定するとき、たとえばB~E列を指定したいときは

Columns(“B:E”)

と書きます。複数列指定のときは引数に数値は使えません。

またRangeとColumnsを組み合わせて書く場合は

Range(Columns(2), Columns(5))

となります。

Rangeを使って、B~E列に値を入力するサンプルコード

Sub sample_columns()
    Range(Columns(2), Columns(5)).Value = 5
End Sub

実行結果

columns実行結果

RowsやColumnsはCellsと同様に変数で列番号や行番号を指定できます。

まとめ

今回はCellsとRangeの使い方を解説しました。
変数を使用してセルを選択するときはCellsを、複数のセルを選択したい場合はRangeを使います。

「もっとVBAを学んで日頃の業務に活かしたい!」
「独学でVBAを学ぶのは少し不安・・・」
「VBAを効率的に学ぶにはどの講座が良いのだろう・・・」

そんな方にはユースフルの公式LINEがオススメです!元伊藤忠商事経理でExcel実務のプロ、長内孝平(おさ)が運営しており

  • VBAを含むExcel無料講義動画480分
  • ExcelPro講座VBAコースにも使える!講座割引クーポン

などLINE会員限定の豪華4大特典を無料でプレゼント中です!ぜひコチラ↓の画像をタップして受け取ってくださいね!

気に入ったらシェア!
  • URLをコピーしました!
目次