【Excel VBA】セルの値取得

【Excel VBA】セルの値取得

Excel VBAでセルの値を取得するというのは基本中の基本です。
今回はRangeオブジェクトとCellsオブジェクトでセルの値を取得するための方法を紹介します。

1つのセルの値を取得する方法(Range編)

セルの値を取得する方法にRangeオブジェクトを使用する方法があります。
まずはサンプルプログラムとその結果を見てみましょう。

Sub Sample01()
    MsgBox Range("B3").Value
End Sub

Sample01の実行結果

「MsgBox」はエクセル上でダイアログを表示するためのおまじないみたいなものなので、今回は気にしないでください。

ここで特筆すべきは「Range(“B3”)」の記述です。
RangeはA1形式でセルを指定すると、そのセルを参照します。
今回は「B3」という文字列で指定しているので、B3セルを参照しています。
また、Rangeオブジェクトの「.Value」のプロパティを使用することで、セルの値を取得することができます。

1つのセルの値を取得する方法(Cells編)

セルの値を取得する方法はRangeオブジェクト以外にもCellsオブジェクトを使用する方法もあります。
これもサンプルプログラムとその実行結果を見てみましょう。

Sub Sample02()
    MsgBox Cells(2, 3).Value
End Sub

Sample02の実行結果

このポイントは「Cells(2, 3)」の記述です。
Cellsは引数に(行, 列)のようにR1C1形式でセルを指定すると、そのセルを参照します。
今回は「2, 3」という値で指定しているので、2行3列のセル、つまりC2セルを参照しています。
また、Rangeオブジェクト同様に「.Value」のプロパティを使用することで、セルの値を取得することができます。

まとめ

セルの値取得はRangeオブジェクトとCellsオブジェクトのいずれかで行うことができます。
セルの値を取得するには以下の切り分けで考えるといいでしょう。

A1形式 R1C1形式
Range(A1).Value Cells(R1, C1).Value

RangeオブジェクトもCellsオブジェクトも変数を使用することが可能ですが、それはまた今度!
では、Excel VBAを使用した自動化ライフを楽しみましょう♪

Excelでの自動化や省力化に関するお問い合わせはこちらからお待ちしております。
LancersMENTAでも活動していますので、そちらからお仕事を依頼して頂けます。