エクセル雑感
日付型と通貨型のValueとValue2について

ExcelマクロVBAとエクセル関数についての私的雑感
最終更新日:2021-06-26

日付型と通貨型のValueとValue2について


ツイッターでVBAに関する問題を出しました。
問題としてはValueとValue2について問うもので、日付型と通貨型が問題の焦点になります。


マクロ VBA Value2 日付型 通貨型
https://twitter.com/yamaoka_ss/status/1408259798357794817


VBA問題の出題ツイート

【VBA問題】
Rangeに対して、
.Value = .Value
.Value2 = .Value2
これらを実行すると数式が消えて値だけになります。
ところで、これらの実行でセル値が変わってしまう事があるでしょうか。
※セル値が変わるというのは、見た目の値が変化(桁落ち等)するかということ。


VBA問題の解答ツイート

出題文が良くなかったです。
文字列になっている他のデータ型へ変換可能なものは変わってしまいます。
Value2の仕様を考えてもらおうという主旨の問題でした。
ここに書かれている通り、問題は CurrencyとDate です。
VBAでは、
Dateは実質Doubleです。
CurrencyはCurrencyです。
Currencyは4桁の固定小数点です。
VBAでValueを取得した時、セルの表示形式が影響します。
日付型ならDate
通貨型ならCurrency
でも、Currencyは小数4桁までです。
マクロ VBA Value2 日付型 通貨型


したがって、通貨型の表示形式に小数5桁以上を入れている場合は桁落ちします。
これはセルに再出力する前の段階、VBAで取得した時点で発生しています。
ただし、実務として通貨型に小数5桁以上を入れることは無いはずです(と思うけど)
したがって、実質的な被害が起こることは無いだろうと思います。


日付および通過型の仕様を考慮して、Doubleで取得したい場合に使うのがValue2という事です。
したがって通貨型のセルもValue2で取得すれば桁落ちせずに取得できます。
ただしセルに入れられる有効桁数に制限はあります。
ということで、日付と通貨型は特殊なので注意が必要だというお話です。




同じテーマ「エクセル雑感」の記事

ローカル版エクセルが「Office Scripts」に変わる日

ツイッターでエクセルのマクロ言語がVBAからOfficeScripts変わるかについて連続ツイートした時のまとめです。https://twitter.com/yamaoka_ss/status/1404122608287698944 ローカル版のExcelがVBAからTypeScriptになろうがPythonになろ…
エクセルVBA 段級位 目安
ツイッターで3日間に渡って順次ツイートしたもののまとめです。筆者の独断と偏見で書いているものですし、かつ、たたき台・原案なので、変更することがあります。各級位の内容は「VBA入門」に解説ページがあります。
DXってなんだ? ITと何が違うの?
ツイッターでDXはITとどう違うのかを問うツイートをしました。最初は反応がほとんどなかったのですが、再度引用ツイートしたところ、いろいろな話を伺えました。それを受けて、私なりの考え(ほぼ単なる感想)を連続ツイートしました。
日付型と通貨型のValueとValue2について
「VBAによる解析シリーズその2 カッコ」をやってみた
ツイッターで出たVBAのお題をやってみました。もとネタはこちら、VBAによる解析シリーズその2カッコ 関連ツイート なかなか楽しかったので、VBAコードを掲載しておきます。まず最初にお題から受ける印象は、再帰処理を行うという事になると思います。
ツイッターで出されたVBAのお題(悪魔のCSV)をやってみた
ツイッターで出題されたVBAの問題をやってみました。ツイッターのエクセルおよびVBA関係の人達の間では、いろいろと面白く勉強になる問題を出し合うという事が行われています。フォローして参加してみると楽しいと思いますよ。
「VBAで導関数を求めよ」ツイッターのお題をやってみた
ツイッターで出題されたVBAの問題をやってみました。ツイッターのエクセルおよびVBA関係の人達の間で問題を出し合うという事が行われています。そんな中、現役高校生と思われる方からVBAの問題が出されました。
ツイッターのお題「君の名は?」
ツイッターで出題されたVBAの問題をやってみました。ツイッターのエクセルおよびVBA関係の人達の間で問題を出し合うという事が行われています。今回のお題は以下になります。ツイートへのリンク お題:君の名は? "-"ちゃんの名前がわかりません!教えてください。
ツイッターのお題「CSV編集」
ツイッターに出されたお題をやってみるシリーズです。今回のお題は、CSV編集です。ツイートへのリンク https://twitter.com/i/status/1253307552802074625 VBSにしてみた VBAでも良いのですが、たまにはVBSも良いかと思い作ってみました。
アルファベットの26進(ツイッターお題)
ツイッターで出されたお題をVBAで回答したものです。AAAの値をAAB,AAC...AAZまでインクリメントし、次のアルファベットを桁上げし、ABA,ABC?ZZZまで計算するコードを書きたい。お題のツイート https://twitter.com/KotorinChunChun/status/1262026213…
ナンバープレート数字遊び:ツイッターお題
ツイッターで出されたお題をVBAで回答したものです。車のナンバープレートの4つの数字でやったりするお遊びです。ナンバーの4つの数字を四則演算で10にするというものです・【問題】 1-9までの数字が4つ与えられます それらを加減乗除を用いて10を作りたい その解答を全て列挙するプログラムを作成しなさい (解答なしの場…


新着記事NEW ・・・新着記事一覧を見る

日付型と通貨型のValueとValue2について|エクセル雑感(2021-06-26)
DXってなんだ? ITと何が違うの?|エクセル雑感(2021-06-24)
エクセルVBA 段級位 目安|エクセル雑感(2021-06-21)
ローカル版エクセルが「Office Scripts」に変わる日|エクセル雑感(2021-06-10)
新関数SORTBYをVBAで利用するラップ関数を作成|VBA技術解説(2021-06-12)
VBA今日のひとこと on Twitter|エクセル雑感(2021-06-10)
VBAの演算子まとめ(演算子の優先順位)|VBA技術解説(2021-06-09)
画像が行列削除についてこない場合の対処|VBA技術解説(2021-06-04)
エクセル関連で「いいね」の多かったツイート|エクセル雑感(2021-05-17)
キーボード操作だけで非表示列を表示|エクセル雑感(2021-05-11)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.Excelショートカットキー一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.RangeとCellsの使い方|VBA入門
5.マクロって何?VBAって何?|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.とにかく書いてみよう(Sub,End Sub)|VBA入門
10.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ