サイトについて      連絡先   検索

VBA セルに値を設定する

はじめに

Excel VBA のセルに値を設定する方法を紹介します。

Range.Value プロパティか Cells.Value プロパティでセルに値を設定できます。

Sheets オブジェクトで指定したシートのセルに値を設定できます。

セルに値を設定する

Range の引数にセル名を指定するとそのセルに値を設定できます。

セル「A1」に値を設定するには Range("A1").Value のように指定します。

Range("A1").Value = "マクロ"
Range("B1").Value = 123
Range("C1").Value = Now
4

Cells の引数にセルの行と列の番号を指定すると、そのセルに値を設定できます。

行「2」、列「A」に値を設定するには Cells(2, 1).Value のように指定します。

Cells(1, 1).Value = "A1"
Cells(2, 1).Value = "A2"
Cells(1, 2).Value = "B1"
Cells(2, 2).Value = "B2"

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

セルの範囲「A1」~「B2」に同じ値を設定するには Range("A1:B2").Value または Range("A1", "B2").Value のように指定します。

Range("A1:B2").Value = "マクロ"
Range("A1", "B2").Value = 123
1

セルの範囲に別の値を設定するには (行, 列) の二次元配列を設定します。

Dim s(1, 1) As String
s(0, 0) = "A1"
s(1, 0) = "A2"
s(0, 1) = "B1"
s(1, 1) = "B2"
Range("A1:B2").Value = s
2

二次元配列の最小インデックスはいくつでも構いません。配列の最小インデックスが行と列の最小の番号に自動で対応します。

Dim s(1 To 2, 1 To 2) As String
s(1, 1) = "A1"
s(2, 1) = "A2"
s(1, 2) = "B1"
s(2, 2) = "B2"
Range("A1:B2").Value = s

一行に設定するときは一次元配列で設定できます。

Dim s(2) As String
s(0) = "A"
s(1) = "B"
s(2) = "C"
Range("A2:C2").Value = s
3

指定したシートのセルに値を設定する

Range.Value とコードに書くと、アクティブなシートのセルに値を設定します。これは ActiveSheet.Range.Value の ActiveSheet が省略されています。

' どちらも同じコード
Range("A1").Value = "マクロ"
ActiveSheet.Range("A1").Value = "マクロ"

シートを指定するには Sheets の引数にシート名またはインデックスを指定します。

1

Sheet1 のシートを指定するには、Sheets("Sheet1") か Sheets(1) と書きます。

Dim s As String
' Sheet1 のセル「A1」に値を設定
Sheets("Sheet1").Range("A1").Value = "Sheet1 の A1"
Sheets(1).Range("A1").Value = "Sheet1 の A1"

' Sheet2 のセル「A1」に値を設定
Sheets("Sheet2").Range("A1").Value = "Sheet2 の A1"
Sheets(2).Range("A1").Value = "Sheet2 の A1"

関連ページ