Date型として宣言した変数をウォッチリストに入れて観察していると、Variant/Dateとなっています。
これはVariant型なのでしょう?Date型なのでしょうか?
あと、本来Date型は時刻も含むものとの認識だったのですが、この変数の場合、日付の部分だけで時刻が含まれていません。
Dateと宣言したにもかかわらず、Variant/Dateとなり、時刻が無視される理由について、また時刻まで含めて定義する方法についてご存じの方がいましたらご教授願います。
Googleで検索した限りでは、VariantかつDate型、よくわからないけどそういうものとして覚えておく、という書き込みがありました。
そういうものなのはわかるのですが、なぜそのようになっているのかということと、
時刻まで含まれないことはVariant/Date型と関係あるのか、あるにしても無いにしても、日付と時刻をひとまとめに扱う方法はないのか、について質問します。
便宜上VARIANT型といってるけどほんとはVARIANT構造体といって文字列型や日付型などのデータ型とは次元の異なる存在なの。
VARIANT構造体にはデータ型とデータが格納されているの。
VARIANT型の変数になにかを代入すると自動的にデータ型判別されて内部処理形式DateのVARIANTなどになるわけ。
だからDim a AS dateに日付型データを入れることができることと同様にDim aにも日付型データを入れることができちゃうの。
Variant型とは 〔 バリアント型 〕 - 意味/解説/説明/定義 : IT用語辞典
Variant型の変数は代入時に代入する値のデータ型がチェックされ、それに合うデータ型が自動的に選択される。
date型変数は日付と時刻を保存できます。
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/function/vba_date.html
ただ、日付と時刻を同時に取得するときはDate()関数ではなくNow()関数を使ってください。
http://officetanaka.net/excel/vba/tips/tips59.htm
date型は日付時刻を表すシリアル値が入っています。このため、Variant型としても取り扱えるのでVariant/Date型になっているのではないでしょうか。
便宜上VARIANT型といってるけどほんとはVARIANT構造体といって文字列型や日付型などのデータ型とは次元の異なる存在なの。
VARIANT構造体にはデータ型とデータが格納されているの。
VARIANT型の変数になにかを代入すると自動的にデータ型判別されて内部処理形式DateのVARIANTなどになるわけ。
だからDim a AS dateに日付型データを入れることができることと同様にDim aにも日付型データを入れることができちゃうの。
Variant型とは 〔 バリアント型 〕 - 意味/解説/説明/定義 : IT用語辞典
Variant型の変数は代入時に代入する値のデータ型がチェックされ、それに合うデータ型が自動的に選択される。
コメント(0件)