ExcelVBAでのValueとValue2の違い
デバックでウォッチウインドウからActiveCellのプロパティを見るとValueとValue2があります。
ValueとValue2の違いは何かなとまず思うでしょう・・・調べてみました。
Value2 プロパティと Value プロパティの唯一の違いは、Value2 プロパティでは通貨型 (Currency) および日付型 (Date) のデータを使用しないことです。倍精度浮動小数点数型 (Double) を使用して、これらのデータ型を浮動小数点数の形式にした値を返すことができます。
http://msdn.microsoft.com/ja-jp/library/cc391692.aspx
サンプル
Sub Test() Dim dtmDate As Date dtmDate = Now ActiveCell.Value = dtmDate 'セルでの表示 2009/1/14 20:17:33 'ウォッチウィンドウでの表示 2009/1/14 20:17:33 ActiveCell.Offset(1).Value2 = dtmDate 'セルでの表示 39827.8455208333 'ウォッチウィンドウでの表示 39827.8455208333 ActiveCell.Offset(2).Value2 = DateValue(dtmDate) 'セルでの表示 2009/1/14 'ウォッチウィンドウでの表示 39827 End Sub
ちなみに、Date型のデータにDateValue関数をかますと面白い現象になる。
Value2は、日付型 (Date) のデータを使用しないと言いながら、セルには2009/1/14と表示される。
しかし、内部データ(ウォッチウィンドウでの表示)は39827なのです。