はじめに
Excelで作業をしていると、
「このセルの値を取り出して処理に使いたい」
「入力された値を読み取って、次の動作につなげたい」
そんな場面がよくあります。
VBAでは、セルの値を取得する方法がいくつかあり、
目的に合わせて使い分けることで、コードがより読みやすく、扱いやすくなります。
ここでは、セルの値を取得する基本のコードと、そのしくみを解説します。
まずはコードを確認
Dim value As Variant
value = Range("A1").Value
もっともシンプルな書き方です。
A1セルの値を取得して、変数に入れています。
コードのしくみを解説
Range(“A1”).Value で値を取得する
Range(“A1”).Value は、A1セルの値をそのまま返します。
- 数値
- 文字列
- 日付
- 空白
どんな値でも受け取れるように、変数は Variant型 にしておくと安心です。
Cells(row, column) を使う方法
value = Cells(1, 1).Value 'A1
- 行番号と列番号で指定する方法
- ループ処理と相性が良い
- 列番号は 1=A, 2=B, 3=C…
シートを指定して取得する
value = Worksheets("データ").Range("B2").Value
複数シートを扱う場合は、シート名を明示すると安全です。
あわせて知っておきたいポイント
数値として扱いたい場合
Dim num As Long
num = CLng(Range("A1").Value)
CLng や CDbl を使うと、型を明確にできます。
文字列として扱いたい場合
Dim text As String
text = CStr(Range("A1").Value)
文字列処理を行うときに便利です。
空白セルを判定したい場合
If Range("A1").Value = "" Then
'空白のときの処理
End If
空白チェックは実務でよく使います。
セルの値を変数に入れずに直接使うことも可能
MsgBox Range("A1").Value
ちょっとした確認に便利です。
使うときに気をつけたいこと
- セルの値がエラー値の場合は注意
→ #N/A や #DIV/0! などは Variant 型で受け取る必要があります。
- 日付はシリアル値として扱われることがあります
→ 表示形式と実際の値が異なる点に注意。
- シート名の指定漏れに注意
→ アクティブシートが変わると意図しない値を取得することがあります。
まとめ
- Range(“A1”).Value でセルの値を取得できる
- Cells(row, column) はループ処理と相性が良い
- 数値・文字列・空白など、目的に応じて型を使い分けると安全
- シート名を明示すると、実務でのトラブルを防げる
セルの値を正しく取得できると、VBAの処理がぐっと扱いやすくなります。

decopon
セルの値を取得する処理は、VBAの中でも特に基本となる部分です。
小さな一歩ですが、ここを押さえておくと、後の自動化がとてもスムーズになります。

moco
セルの中身をそっと読み取るのは、VBAの得意技。
人は、次の判断に集中できるね。

コメント