Home » ExcelVBA Rangeオブジェクト » Excel VBAでシリアル値を取得する-Range.Value2プロパティ

Excel VBAでシリアル値を取得する-Range.Value2プロパティ

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel(バージョン2210 ビルド15726.20202 Microsoft Store)

「excel vba シリアル値取得」
といった検索で、時折アクセスがあります。

ここでは、セルに入力されている日付・時刻データのシリアル値を、Excel VBAで取得するコードをご紹介しましょう。

Rangeオブジェクトに用意されているValue2プロパティを使えば、

CDbl関数等による変換を行わなくても、シリアル値を直接取得できます。

[スポンサードリンク]

Range.Value2プロパティを確認するサンプルマクロ

A1セルに日付データが入力されているワークシートがアクティブな状態で、以下のExcelマクロを実行してください。

Sub Value2プロパティでシリアル値を取得する()
 MsgBox _
   Range("A1").Value & vbCrLf & _
   CDbl(Range("A1").Value) & vbCrLf & _
   Range("A1").Value2
End Sub

Value2プロパティでシリアル値を取得するマクロの挙動

日付データ「2022/12/1」がA1セルに入力されているとき、上記のマクロを実行すると、

2022/12/01
44896
44896

がメッセージボックスに表示されます。

「2022/12/01」が、Range.Valueプロパティで取得したセルの値、次の「44896」は「2022/12/01」をCDbl関数で数値に変換した値、最後の「44896」がRange.Value2プロパティで取得したシリアル値です。

もちろんこのシリアル値は、N関数を使って取得できる値と同じです。

時刻データも含む場合の挙動

日時データ「2022/12/1 18:00」がA1セルに入力されているとき、上記のマクロを実行すると、

2022/12/01 18:00:00
44896.75
44896.75

がメッセージボックスに表示されます。

先ほどは日付データでしたからシリアル値は自然数でしたが、時刻データも含むため小数を含んだシリアル値になっています。

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » Excel VBAでシリアル値を取得する-Range.Value2プロパティ

Home » ExcelVBA Rangeオブジェクト » Excel VBAでシリアル値を取得する-Range.Value2プロパティ

「ExcelVBA Rangeオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.