Excelのマクロを学習する中で、他の人が作ったVBAコードを見ると、
「Value」という単語を見かけることも多いかと思います。
- 「Value」っていったい何なの?
- 「Value」を使ってできることを知りたい
- 「Value」の使い方や書き方を知っておきたい
このような考えに至ったのではないでしょうか。
この記事を読むことで、下記のことがわかります。
- VBAの「Value」について学べる
- 「Value」の使い方・書き方を学べる
- 「Value2」との違いを知れる
-著者情報-
名前:Utatane
VBA(マクロ)歴:3年
Excel使用歴:15年以上
ひとこと:初心者だった当時に戻った気持ちになって解説いたします
※わかりやすさを重視しております。厳密には解釈が異なる場合がありますことをご了承ください。
VBA(Excelマクロ)での「Value」とは?

「Value」はセルの値を示すプロパティです。
上図でいうところの「Utatane」がValueです。
プロパティとは、「セルの値」や「シートの名前」など、
「○○の●●」という熟語の●●にあたります。
「セルの値」なら「Range(“A1”).Value」、「シートの名前」なら「Worksheets(1).name」など、
「.●●」という表記で表されます。
オブジェクトに関する情報だと思ってください。
オブジェクトとは、セルやシート・ブックなどのことです。
例えばセルは、値の他にも書式や位置などの情報も含んでいます。
ひとことに「セルを操作する」と言っても、セルの何を操作するのがを示さなくてはなりません。
細かな説明を必要とするのがオブジェクトだと思ってください。
「セルの値を変更する」「セルの色を変更する」などのように「オブジェクトのプロパティを~する」
と記述する必要があります。
※「セル(オブジェクト)の値(プロパティ)」=「Range(“A1”).Value」
では、「Value」の使い方を紹介するとともに、「Value」でできることを見ていきましょう。
「Value」でできること
セルの値を取得
プロパティ「Value」を指定することで、セルの値を取得することができます。
下図が元データです。

A1セルの値「Utatane」を取得してみましょう。
下記のVBAコードを見てください。
Sub セルの値を取得()
Debug.Print Range("A1").Value
End Sub
2行目でセルの値を取得しています。
今回は、取得した値を「Debug.Print」で表示させました。

前提知識{マクロの基礎・作り方から実行まで}
前提知識{「Debug.Print」で値を表示させる方法}
【 Range(“A1”).Value 】でA1セルの値を取得できます。
「Range(“A1”)」がA1セル、「.Value」が値にあたります。
セルの値を取得するにもいろいろな方法がありますので、下記記事をご参考ください。
セルへ値を書き込み
今度はセルへ値を書き込みしてみましょう。
下記のVBAコードを見てください。
Sub セルへ値を書き込み()
Range("A1").Value = "Utatane"
End Sub
2行目でセルに値を書き込みしています。
前項にて【 Range(“A1”).Value 】は、「セルA1の値」を指すとお伝えしました。
その後ろに「= “値”」を付けることで、「値」をセルA1に書き込みすることができます。

書き込みするのもいろいろな方法がありますので、下記記事をご参考ください。
前項の取得と連携することで、A1セルの値を取得してB1セルにコピーすることもできます。
「Value2」との違い
「Value」の他にも「Value2」というものがあります。
「Value2」は「Value」の簡略版といったところでしょうか。
【Value】
取得する内容:表示形式が考慮される場合がある
(例:日付データ=日付型として処理される)
速さ:普通
【Value2】
取得する内容:表示形式の影響を受けない
(例:日付データ=シリアル値(日付を数値に換算した値)として処理される)
速さ:高速
日付や通貨表示などの値を取得した場合、「Value」は表示形式を考慮して取得される場合があります。
対して「Value2」は表示形式の影響を受けず、値そのものを取得します。

Sub バリュー2との違い()
Debug.Print Range("A1").Value
Debug.Print Range("A1").Value2
End Sub

通常であれば「Value」問題ありませんが、速度や正確性を求める場面では「Value2」も検討してみてください。
うまく動作しないときの対処法
エラーが発生する
コンパイルエラー・実行時エラー
コードに問題がある場合が多いです。
「”」や()など、2つセットの記号が片方だけになっていないかなど、コードを再確認しましょう。
セル名を「”」で囲っていない場合でもエラーが発生します。
警告表示

上記の表示が出た場合は、マクロが無効になっています。
エクセルに表示された「コンテンツの有効化」をクリックするか、下記記事を参考にセキュリティ設定を変更してください。
最後に
VBA(Excelマクロ)での「Value」について解説いたしました。
当ブログでは、VBAマクロやPythonなど、時間を生み出すプログラミング術を公開しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。
最後までお読みいただき、ありがとうございました。がんばってください!