ExcelVBAでのValueとValue2の違い

VB6,VBA,VBS,EXCEL,DOS,BAT,WSH,WORDの小技メモ

HTML/ CSS/ CGI-Perl/ JavaScript/ JavaApplet/ AccessUp/ Internet/ EnglishLearn/ ちゃいちゃん天使/ 天使メッセージ/ 飯田ワールド/ 結城ワールド/ プロフィール/ WEB相談室/ WEBアンテナ/ 燈明日記/ Perlノート/ 漢字起源/ yahoo

はじめに

本ページは、ウインドウズ系全般のティプスメモです。

そう、はじめはVB系のティプスメモだったのですが…いつの間にか、ウインドウズ系全般のティプスメモになってしまいました。

ちなみに、ティプス(Tips)とは、マニュアルに書かれていない技法や裏わざのことですが、本ページでは、私が経験してこれはと思ったノウハウのメモになっています。

尚、以下は本サイトの最新情報(ブログ)です。

それでは、本ページが何かのお役に立てれば幸いです。ごゆっくりご覧ください。

2009-01-14 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なのです。

おわりに

以下のページには、すべてのTIPSがあります。もしよろしければ、どうぞ!

尚、ご感想、ご意見、誤字、脱字、間違い等がありましたら遠慮なくVB-TIPS掲示板へご指摘ください。

人のよいところをどんどん見つけよう