• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:変数への数式の代入でオーバーフローします)

変数への数式の代入でオーバーフロー?Clng関数の役割とは?

このQ&Aのポイント
  • 変数への数式の代入でオーバーフローする現象について説明します。
  • Clng関数を使用してオーバーフローを回避する方法についても解説します。
  • Long型の値の範囲と数式の結果についても触れながら、質問の意図に応えます。

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

  • ベストアンサー
  • ARC
  • ベストアンサー率46% (643/1383)
回答No.1

lngDaySec = 60 * 60 * 24 式中の定数(60,60,24)が内部的に整数型(Integer)として扱われているせいです。 特に指定しない限り、VBのコンパイラは式の内容を見て定数の型を適当に設定します。 今回の場合、式中に含まれる全ての数値が32767以下であるため、これは整数型の演算であると判断されてしまったのでしょう。 こういった事態を回避するためには、定数の後ろに#を付けることにより、明示的に長整数型だと宣言してやればいいです。 こんな感じです。 lngDaySec = 60# * 60# * 24#

k_o_j_i
質問者

お礼

早速のご回答ありがとうございます。 >式中の定数(60,60,24)が内部的に整数型(Integer) >として扱われているせいです なるほどー。不便ですねー。 左辺を見て判断して欲しい……。