• ベストアンサー

vbaでのerror"オーバーフロー"

・ ・ ・ dim x as variant x = (50 * 50 * 50) + (0.2 * 0.2 * 3.14 * 2000 * 2) + 10 ・ ・ ・ としたところ、x=…の箇所で  error"オーバーフローしました"が生じます。 なぜエラーが生じるのかがわかりません。 また、解決策がありましたら教えていただけないでしょうか? よろしくお願いいたします。

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

  • ベストアンサー
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

dim x as variant x = (50# * 50# * 50#) + (0.2 * 0.2 * 3.14 * 2000 * 2) + 10# としましょう。 型宣言文字 # は、倍精度浮動小数点数型 (Double)です。 variantだと数値の場合、式を評価して勝手に 精度が調整されます。つまり50*50*50だと整数データばかりなので、 xも整数(INT)と認識されます。

romu-
質問者

お礼

ご回答ありがとうございました。 Variantは万能だと思いこんでいましたが、 実はVariantも難しいものなんですね。 例文まで載せて戴きありがとうございました。

関連するQ&A