【Excel VBA入門】セルの参照

プログラミング

VBA(Visual Basic for Applications)でセルやセル範囲を表すために使用されるオブジェクトRangeオブジェクトといいます。

Rangeオブジェクトを取得するRangeプロパティCellsプロパティSelectionプロパティActiveCellプロパティでセルを参照する方法を説明します。


Rangeプロパティ

単一セルを参照

まずは、Rangeプロパティで単一セルを参照する方法を見てみましょう。

以下の例は、ExcelのA1セルに「おはよう」という文字を格納するRangeプロパティです。

マクロコードを入力する方法は、「【Excel VBA入門】マクロコードの入力と実行」を参考にしてください。

Sub Test()
    Range("A1").Value = "おはよう"
End Sub


マクロを実行すると以下のようになります。

VBA-02-01


ひとつのセルに文字を入れるには、以下のように入力します。

Range(“セルの番地“).Value = “入力文字”



複数のセルを参照

次に複数セルを参照する方法を見てみましょう。

以下の例は、ExcelのA1セルからB2セルまでに「おはよう」という文字を格納するRangeプロパティです。

Sub Test()
    Range("A1:B2").Value = "おはよう"
End Sub


マクロを実行すると以下のようになります。

VBA-02-02


連続した複数のセルに文字を入れるには、コロン(:)で区切ります。

Range(“先頭セルの番地:最終セルの番地“).Value = “入力文字”

A1セルとB2セルにのみ、文字を入れるには、カンマ(,)で区切ります。

Range(“A1,B2“).Value = “入力文字”



列全体を参照

以下の例は、ExcelのA列全体に「おはよう」という文字を格納するRangeプロパティです。

Sub Test()
    Range("A:A").Value = "おはよう"
End Sub


行全体を参照

以下の例は、Excelの1行目全体に「おはよう」という文字を格納するRangeプロパティです。

Sub Test()
    Range("1:1").Value = "おはよう"
End Sub


名前付き範囲のセルを参照

Excelでは、ある範囲のセルに名前を付けて、関数のセル指定時に利用することができます。

以下の例は、ExcelのA1セルからA2セル範囲に「挨拶」という名前をつけ、そこに「おはよう」という文字を格納するRangeプロパティです。

Sub Test()
    Range("A1:A2").Name = "挨拶"
    Range("挨拶").Value = "おはよう"
End Sub


マクロを実行すると以下のようになります。

VBA-02-03


名前付き範囲のセルに文字を入れるには、以下のように入力します。

Range(“名前付き範囲のセル“).Value = “入力文字”



Cellsプロパティ

単一セルを参照

それでは、Cellsプロパティで単一セルを参照する方法を見てみましょう。

以下の例は、Excelの行番号1、列番号1のセルに「おはよう」という文字を格納するCellsプロパティです。

Sub Test()
    Cells(1, 1).Value = "おはよう"
End Sub


マクロを実行すると以下のようになります。

VBA-02-01


ひとつのセルに文字を入れるには、以下のように入力します。

通常、セルの指定は「A1」のように、列、行の順であるため、指定順が逆となりますので注意してください。

Cells(行番号,列番号).Value = “入力文字”



指定された範囲でのセルの参照

Cellsプロパティに比べ、Rangeプロパティの方がさまざまな範囲選択が可能ですが、Cellsプロパティにしかできないことがあります。

選択されている範囲の中からセルを選択することができます。

以下の例は、1行目でExcelのA2からB3までのセルを選択します。

2行目は、選択されている範囲の1行2列目のセルに「おはよう」という文字を格納するCellsプロパティです。

Sub Test()
    Range("A2:B3").Select
    Selection.Cells(1, 2).Value = "おはよう"
End Sub


マクロを実行すると以下のようになります。

VBA-02-04


Selectionプロパティ(選択されたセルを参照)

「Cellsプロパティ」の例として説明しましたが、Selectionとは、選択されたセルを表します。

以下の例は、1行目でExcelのA2からB3までのセルをSelectメソッドで選択します。

2行目は、選択されているセルに「おはよう」という文字を格納するプロパティです。

Sub Test()
    Range("A2:B3").Select
    Selection.Value = "おはよう"
End Sub


マクロを実行すると以下のようになります。

VBA-02-05


ActiveCellプロパティ(現在アクティブなセルを参照)

ActiveCellプロパティは、現在アクティブなセルを表すプロパティです。

以下の例は、1行目でExcelのA2のセルをActivateメソッドでアクティブセルにします。

2行目は、アクティブセルに「おはよう」という文字を格納するプロパティです。

Sub Test()
    Range("A2").Activate
    ActiveCell.Value = "おはよう"
End Sub


マクロを実行すると以下のようになります。

VBA-02-06