• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:変数について)

変数についての質問

このQ&Aのポイント
  • -0.0685274635 に対する変数の適切な型は何ですか?
  • CAL_DA が -6.85274.. になってしまいますが、必要なのは -0.068 の桁です。
  • CAL_DA = Mid(Range("a1"),1,6) を使用しても良いですか?

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

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

こんにちは。 質問1 通常、Excelで、数値を扱う場合は、Double 型で、それ以上の精度を求める場合は、Currency 型に切り替えしますが、通常は、そんなに使いません。If で、タイプを判定するなら、VarType を使い、変数Variant 型にしておくこともありますが、なるべく最初から、決めてください。 旧VB系は、 整数型は、 Integer, Long 精度を上げるなら、 Currency 浮動小数点型は Single, Double Float 型は、C言語の変数型だと思います。 質問2 >必要とするのは-0.068の桁でよいのですが Sub Test01() Dim Cal_Da As Double  '←変数の型名は、なるべくキャメル型にしてください。  Range("A1").Value = -0.0685274635 '←プロパティを入れ、数値で入れるのが基本です。  Cal_Da = Range("A1").Value  Cal_Da = Fix(Cal_Da * 10 ^ 3) / 10 ^ 3 End Sub 質問3 >CAL_DA =Mid(Range("a1"),1,6)いけますか? VBAを扱う人はよく使うようですが、私はあまり好きな方法ではありません。 Sub Test01()の Fix は、小数点固定になりますが、Int は、丸めが発生しますので、 もし、Int を使うのなら、以下のように、  Cal_Da = Sgn(Cal_Da) * Int(Abs(Cal_Da) * 10 ^ 3) / 10 ^ 3 となります。

saab8743
質問者

お礼

早速、プログラムを訂正して使わせてもらいます。 10`3は小数点第3位のことですね ありがとうございました。

関連するQ&A

専門家に質問してみよう