関数・メソッド

セルのシリアル値を取得する【Value2プロパティ】【ExcelVBA】

構文

Object.Value2 

Valueプロパティはセルの入力値を取得しますが、
Value2プロパティはセルのシリアル値を取得します。

Value2と2がついているから上位のプロパティという訳でなく、使用用途が異なります。

Value2プロパティのコードサンプル

Public Sub test()

    '■セルA1に"=TODAY"と数式が入力されている場合
    Debug.Print Range("A1").Value       '2021/03/14
    Debug.Print Range("A1").Value2      '44268
    

    '■セルA1に"=Now()"と数式が入力されている場合
    Debug.Print Range("A1").Value       '2021/03/14 19:55:24
    Debug.Print Range("A1").Value2      '44268.8301361111

    '■セルA1に"あいうえお"と値が入力されている場合
    Debug.Print Range("A1").Value       'あいうえお
    Debug.Print Range("A1").Value2      'あいうえお

   '■セルA1に""と何も入力されていない場合
    Debug.Print Range("A1").Value       '""(空白)
    Debug.Print Range("A1").Value2      '""(空白)

End Sub

注意点

  • Value2プロパティは日付型通貨型のデータはDouble型で取得します。
  • セルの数式を取得したい場合はFormulaプロパティで取得します。

関連記事

セルに値を入力する【Valueプロパティ】【ExcelVBA】
【VBA基本】変数のデータ型一覧
【VBA基本】セルやセル範囲の値を消去する
RangeとCellの使いわけ【VBA基本】

コメント

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