VBAでセル操作をするには2種類の方法があります。

1つは Cells を使用する方法、もう1つは Range を使用する方法です。

Cells は主として、単一のセルを選択して操作し、Rangeは、セルを範囲で選択して操作をするのに使用します。

ここでは以下について説明します。





01.セルの選択をするには?

Cellsによるセルの選択

Cells は以下の書式で、任意のセルを指定することができます。

Cells(行番号, 列番号)

セルを指定したら、Selectメソッドを使用して選択します。

例えば、B1セルを選択したい場合は以下のようにします。

    'B1セルの選択
Cells(1, 2).Select

'以下のようにも指定可能
Cells(1,"B").Select



Rangeによるセルの選択

Range は以下の書式で、任意のセルを指定することができます。

Rabge("セル")

セルを指定したら、Selectメソッドを使用して選択します。

例えば、B1セルを選択したい場合は以下のようにします。

    'B1セルの選択
Range("B1").Select



セルの範囲選択

Range を使用することで、範囲選択をすることができます。

Cellsでは範囲を指定することはできないので注意してください。

Rangeでの範囲指定は以下の書式を使用します。

Range("選択開始セル:選択終了セル")
  または
Range("選択開始セル","選択終了セル")

セルを指定したら、Selectメソッドを使用して選択します。

例えば、A1からD5の範囲を選択したい場合は以下のようにします。

Range("A1:D5").Select

Range("A1", "D5").Select

'以下のように範囲をCellsで指定することもできる
Range(Cells(1, 1), Cells(5, 4)).Select



02.セルの値を取得するには?

行と列を指定してセルの値を取得する

行と列を指定して値を取得するには以下の書式を使用します。

Cells(行, 列).Value

例えば、B1のセルの値を取得するには以下のようにします。

    MsgBox Cells(1, 2).Value


セル名を指定してセルの値を取得する

セル名を指定して値を取得するには以下の書式を使用します。

Range("セル名").Value

例えば、B1のセルの値を取得するには以下のようにします。

MsgBox Range("B1").Value


アクティブなセルの値を取得する

アクティブなセルの値は以下で取得することができます。

MsgBox ActiveCell.Value


セル範囲の値を取得する

セルを範囲指定して値を取得するには以下の書式を使用します。

Range("選択開始セル:選択終了セル").Value
  または
Range("選択開始セル","選択終了セル").Value

取得した値は(行, 列)の2次元配列になります。

例えば、以下のようにA1からC2まで値が入っている場合で見てみましょう。



              

以下のコードでA1からC2までの範囲を取得してウォッチ式で参照した結果を示します。

Dim data As Variant data = Range("A1:C2").Value


03.セルに値を設定するには?

行と列を指定してセルの値を設定する

行と列を指定して値を設定するには、以下の書式を使用します。

Cells(行, 列).Value = 値

以下はB1のセルに「あいうえお」を設定します。

Cells(1,2).Value = "あいうえお"


列名を指定してセルの値を設定する

列名を指定して値を設定するには、以下の書式を使用します。

Range(列名).Value = 値

以下はB1のセルに「あいうえお」を設定します。

Range("B1").Value = "あいうえお"


指定範囲にセルの値を設定する

指定範囲に値を設定するには、以下の書式を使用します。

Range("範囲").Value = 配列
  または
Range("選択開始セル","選択終了セル").Value = "配列"

1行の範囲に設定する例を以下に示します。

'1行に設定する場合
Dim data1D(2) As String

data1D(0) = "A"
data1D(1) = "B"
data1D(2) = "C"

Range("A1:C1").Value = data1D



複数行の範囲に設定する例を以下に示します。

    '複数行に設定する場合
Dim data2d(1, 1) As String

data2d(0, 0) = "A3"
data2d(0, 1) = "B3"
data2d(1, 0) = "A4"
data2d(1, 1) = "B4"

Range("A3:B4").Value = data2d




04.セルに数式を設定するには?

セルに数式を設定するには、以下の書式を使用します。

expression.Formura = 値

expressionには、ActiveCellやRannge, Cellなどを指定します。

以下はD1のセルに「=A1*B1」という式を設定します。

Range("D1").Formula = "=A1*B1"

実行例を以下に示します。

D1のセルに「=A1*B1」という式が設定されて、計算されていることがわかります。