Excel VBAでは、セルやセル範囲に対して直接値を入力(代入)することができます。
フォームの初期表示やデータ処理の一環として、決まったセルに値を書き込む処理は非常によく使われます。
この記事では、Range
オブジェクトの .Value
プロパティを用いて、単一セル・複数セルへの値の代入方法をご紹介します。
目次
単一セルに文字列を入力する
Range("B2").Value = "商品名"
- セル
B2
に文字列「商品名」を入力します。 .Value
を省略してRange("B2") = "商品名"
と書くことも可能です。
複数セルに同じ文字列を入力する
Range("B4:B6").Value = "在庫あり"
- 複数のセル(
B4
,B5
,B6
)に同じ値「在庫あり」が一括で入力されます。 .Value
を省略しても同様に機能します。
数値を入力する(省略記法)
Range("D2") = 150
Range("D4:D6") = 300
- 数値の場合も
.Value
を省略して記述可能です。 - 一括代入は「同じ数値」を複数セルに入力したいときに便利です。
注意点:異なる値を複数セルに設定したい場合
Range("E2:E4").Value = Array("A", "B", "C") ' これは意図通り動作しません
.Value
を使った一括代入は、すべてのセルに同じ値を代入する場合のみ機能します。- 異なる値を設定したいときは、以下のようにループや二次元配列を使います。
Dim i As Long
For i = 1 To 3
Range("E1").Offset(i, 0).Value = "データ" & i
Next
使用シーンの例
- フォームに初期値をセットする
- データ出力時に、見出しや定数を入力する
- テンプレートの自動整形処理で値を埋める
まとめ
処理内容 | コード例 |
---|---|
単一セルへ入力 | Range("B2").Value = "商品名" |
複数セルへ同一値入力 | Range("B4:B6") = "在庫あり" |
数値の代入(省略可) | Range("D2") = 150 |
複数異なる値 | For ループや配列を使用 |