• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA 人の目には同じ数字に見えるのに、VBAは違う数字として判定してしまう)

VBAでの数字判定の違いについて

このQ&Aのポイント
  • VBAでの数字判定において、同じ数字でも異なると判定される現象が発生することがあります。
  • 人の目では同じ数字に見えるが、VBAでは異なる数字として扱われているためです。
  • 他の人が作ったファイルの数字を手入力すると正しく判定される場合もあります。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。 この前、同様の内容の質問が出ていました。 >if セル1=セル2 then >などとして比較すると、同じでないという判定結果になります。 おっしゃるとおり、そのままでは比較できません。 >1826.97792という数字が入力されており、別のセルにも1826.97792と同じ数字が入力されています。 これは、Double型です。Double型で、小数点が入っているので、無限小数が含まれていたりする可能性が高く、同じ数だと思っても違ってしまいます。(そのまま入力しても、入ることがあります) その対処法は、 例えば、 Dim a As Double Dim b As Long Dim c As Double Dim d As Long  a = Cells(1,1).Value  b = CLng(Fix(a * 100000))  c = Cells(1,2).Value  d = CLng(Fix(c * 100000)) というような、 方法で、一旦、小数点を固定してあげないと、比較できません。 なお、日付や時間値の場合は、Format$ 関数で、一旦、文字にして日時で比較する方法もあります。

VitaminBB
質問者

お礼

回答ありがとうございます。 色々確認した結果、やはり小数点以下何十桁あたりにごみが あるみたいです。