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

VBA セルの値を取得する

はじめに

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

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

Worksheets から指定したシートのセルの値を取得できます。

  • 目次
    • セルの値を取得する
    • セルの範囲の値を取得する
    • 指定したシートのセルの値を取得する

セルの値を取得する

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

セルの範囲の値をまとめて取得または設定すると高速に操作できます。

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

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

Sheet1 を指定するにはWorksheets("Sheet1")またはWorksheets(1)を入力します。

sheet1

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

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

Sheet1 に Range や Cells を入力すると、自身のシートのセルになります。自身を表すMe.が省略されています。


' どちらも同じコード
Range("A1").Value = "Sheet1"
Me.Range("A1").Value = "Sheet1"

標準モジュールに Range や Cells を入力すると、アクティブなシートのセルになります。アクティブシートを表すActiveSheet.が省略されています。


' どちらも同じコード
Range("A1").Value = "アクティブ"
ActiveSheet.Range("A1").Value = "アクティブ"
  • 目次
    • セルの値を取得する
    • セルの範囲の値を取得する
    • 指定したシートのセルの値を取得する