【Excelマクロ】VBAのValueとは?使い方・できることを初心者向けに解説

スポンサードリンク
VBA

Excelのマクロを学習する中で、他の人が作ったVBAコードを見ると、
「Value」という単語を見かけることも多いかと思います。

  • 「Value」っていったい何なの?
  • 「Value」を使ってできることを知りたい
  • 「Value」の使い方や書き方を知っておきたい

このような考えに至ったのではないでしょうか。
この記事を読むことで、下記のことがわかります。

  • VBAの「Value」について学べる
  • 「Value」の使い方・書き方を学べる
  • 「Value2」との違いを知れる

-著者情報-
名前:Utatane
VBA(マクロ)歴:3年
Excel使用歴:15年以上
ひとこと:初心者だった当時に戻った気持ちになって解説いたします

※わかりやすさを重視しております。厳密には解釈が異なる場合がありますことをご了承ください。

スポンサードリンク

VBA(Excelマクロ)での「Value」とは?

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など、時間を生み出すプログラミング術を公開しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。

最後までお読みいただき、ありがとうございました。がんばってください!

タイトルとURLをコピーしました