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

VBA セルの値を取得する

はじめに

Excel VBA のセルの値を取得する方法を紹介します。

Range.Value プロパティか Cells.Value プロパティからセルの値を取得できます。

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

セルの値を取得する

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

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

Dim s As String
s = Range("A1").Value
Debug.Print(s)

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

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

Dim s As String
s = Cells(1, 1).Value ' A1
s = Cells(2, 1).Value ' A2
s = Cells(1, 2).Value ' B1
s = Cells(2, 2).Value ' B2
Debug.Print(s)

セルの範囲の値を取得する

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

値は (行, 列) の二次元配列で取得されます。最小インデックスは 1 からスタートします。

受け取る変数の型は Variant 型にします。

Dim v As Variant
v = Range("A1:B2").Value
v = Range("A1", "B2").Value
Debug.Print(v(1, 1)) ' A1
Debug.Print(v(2, 1)) ' A2
Debug.Print(v(1, 2)) ' B1
Debug.Print(v(2, 2)) ' B2
2

指定したシートのセルの値を取得する

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

' どちらも同じコード
Dim s As String
s = Range("A1").Value
s = ActiveSheet.Range("A1").Value

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

1

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

Dim s As String
' Sheet1 のセル「A1」の値を取得
s = Sheets("Sheet1").Range("A1").Value
s = Sheets(1).Range("A1").Value
Debug.Print(s)

' Sheet2 のセル「A1」の値を取得
s = Sheets("Sheet2").Range("A1").Value
s = Sheets(2).Range("A1").Value
Debug.Print(s)

関連ページ