Excel VBA セルの値を取得する方法|Range・Cellsの使い方を解説

 

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

 

Excel VBA セルの値を取得する方法|Range・Cellsの使い方を解説-1

コード 内容
Range("A1").Value A1セルの値を取得
cellValue 取得した値を変数へ代入
MsgBox 値を表示

 

Cellsでセルの値を取得する

 

Cellsは、行番号・列番号で指定します。

サンプルコード

Sub Cellsで取得()

    Dim cellValue As Variant

    cellValue = Cells(1, 1).Value

    MsgBox cellValue

End Sub

 

Excel VBA セルの値を取得する方法|Range・Cellsの使い方を解説-2

セル
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

 

Excel VBA セルの値を取得する方法|Range・Cellsの使い方を解説-3

数値・文字列・日付の注意点

 

セルには、以下の様々な型があります。

  • 数値
  • 文字列
  • 日付

 

様々な型を判断してコードを記述するより、初心者は、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

 

Excel VBA セルの値を取得する方法|Range・Cellsの使い方を解説-4

 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

命令の意味は分かるけど、何に使うのか分からないと感じている方へ。
30万人が読んだ記事をもとに再構成。

データ分割を題材に、実務の流れの中で理解できる講座です。

↓↓↓↓↓
自分で作れるレベルへ(こちらから閲覧できます)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 

VBAでセルに値を入れる方法

 

サンプルコード

Range("A1").Value = "テスト"

 

よくあるエラー

 

オブジェクト変数エラー

シート指定漏れで発生しやすいです。

シート指定する方法

Worksheets("Sheet1").Range("A1").Value

 

よくある質問

Valueは省略できますか?

できます。Range("A1")でも取得可能です。ただし初心者は .Value を付ける方が分かりやすいです。

RangeとCellsはどちらを使うべき?

固定セルならRange、繰り返し処理ならCellsです。

空白セルの場合はどうなりますか?

Empty、または空文字になります。

 

まとめ

 

Excel VBAでセルの値を取得する基本は、Range("A1").Value です。

まずは、

  • Range
  • Cells
  • Value
  • 変数代入

の4つを理解するのがおすすめです。

特に実務では、Cells(i,1).Value を使ったループ処理が非常によく使われます。

 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

命令の意味は分かるけど、何に使うのか分からないと感じている方へ。
30万人が読んだ記事をもとに再構成。

データ分割を題材に、実務の流れの中で理解できる講座です。

↓↓↓↓↓
自分で作れるレベルへ(こちらから閲覧できます)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━