
Excel VBAで、
- セルの値を取得したい
- 入力データを使って処理したい
- RangeとCellsの違いが分からない
と思ったことはありませんか?
VBAでは、セルの値を取得することで、
- 計算処理
- 条件分岐
- データ集計
- 自動転記
などができるようになります。
特に、Range().Value は、Excel VBAで最もよく使う基本コードの1つです。
本記事では、セルの値を取得する方法を初心者向けにわかりやすく解説します。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 命令の意味は分かるけど、何に使うのか分からないと感じている方へ。 データ分割を題材に、実務の流れの中で理解できる講座です。 ↓↓↓↓↓
30万人が読んだ記事をもとに再構成。
▶ 自分で作れるレベルへ(こちらから閲覧できます)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Excel VBAでセルの値を取得する基本
- Range
- Cells
Rangeでセルの値を取得する
Rangeは、もっとも基本的な方法です
サンプルコード
Sub セルの値を取得()
Dim cellValue As Variant
cellValue = Range("A1").Value
MsgBox cellValue
End Sub

| コード | 内容 |
|---|---|
| Range("A1").Value | A1セルの値を取得 |
| cellValue | 取得した値を変数へ代入 |
| MsgBox | 値を表示 |
Cellsでセルの値を取得する
Cellsは、行番号・列番号で指定します。
サンプルコード
Sub Cellsで取得()
Dim cellValue As Variant
cellValue = Cells(1, 1).Value
MsgBox cellValue
End Sub

| 行 | 列 | セル |
|---|---|---|
| 1 | 1 | A1 |
RangeとCellsの違い
初心者が最も迷うポイントです。
| 方法 | 特徴 |
|---|---|
| Range | A1形式で分かりやすい |
| Cells | ループ処理向け |
実務ではどう使い分ける?
固定セル向け
Range("A1")
繰り返し処理向け
Cells(i,1)
セルの値を変数へ代入する
取得した値は、変数へ保存して利用できます。
サンプルコード
Option Explicit
Sub セルの値を変数へ代入する()
Dim userName As String
userName = Range("A1").Value
If Range("A1").Value = "" Then
MsgBox "空白です"
End If
End Sub

数値・文字列・日付の注意点
セルには、以下の様々な型があります。
- 数値
- 文字列
- 日付
様々な型を判断してコードを記述するより、初心者は、Variant を使うのがおすすめです。
サンプルコード
Dim valueData As Variant
実務でよく使う例
最終行までループして値取得
サンプルコード
Option Explicit
Sub 最終行までループして値取得()
Dim i As Long
For i = 1 To 10
Debug.Print Cells(i, 1).Value
Next i
End Sub

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 命令の意味は分かるけど、何に使うのか分からないと感じている方へ。 データ分割を題材に、実務の流れの中で理解できる講座です。 ↓↓↓↓↓
30万人が読んだ記事をもとに再構成。
▶ 自分で作れるレベルへ(こちらから閲覧できます)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
VBAでセルに値を入れる方法
サンプルコード
Range("A1").Value = "テスト"
よくあるエラー
シート指定漏れで発生しやすいです。
シート指定する方法
Worksheets("Sheet1").Range("A1").Value
よくある質問
できます。Range("A1")でも取得可能です。ただし初心者は .Value を付ける方が分かりやすいです。
固定セルならRange、繰り返し処理ならCellsです。
Empty、または空文字になります。
まとめ
Excel VBAでセルの値を取得する基本は、Range("A1").Value です。
まずは、
- Range
- Cells
- Value
- 変数代入
の4つを理解するのがおすすめです。
特に実務では、Cells(i,1).Value を使ったループ処理が非常によく使われます。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 命令の意味は分かるけど、何に使うのか分からないと感じている方へ。 データ分割を題材に、実務の流れの中で理解できる講座です。 ↓↓↓↓↓
30万人が読んだ記事をもとに再構成。
▶ 自分で作れるレベルへ(こちらから閲覧できます)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

