Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


65430 / 76733 ←次へ | 前へ→

【15878】Re:オーバーフローについて
回答  Asaki  - 04/7/9(金) 23:27 -

引用なし
パスワード
   こんばんは。

たぶん問題は lngResult() のデータ型ではなく
(intA) * (intB)
この部分です。(因みに、なんでカッコが付いてるのでしょう?)

名前からして、Integer型の変数ではと推測しますが、
Integer型 同士の演算は結果もInteger型ですから、
演算結果がInteger型で扱える範囲を超えるとオーバーフローします。
intA * intB = 367500 >> 32,767 :Integer型の最大値

御提示の例ではLong型で間に合いそうですので、データ型を変えるか、型変換します。
lngResult(i) = lngResult(i) + (CLng(intA) * CLng(intB) * (1.005) * (intC))

2 hits

【15875】オーバーフローについて ○○さん 04/7/9(金) 22:57 質問
【15877】Re:オーバーフローについて ちゃっぴ 04/7/9(金) 23:17 回答
【15878】Re:オーバーフローについて Asaki 04/7/9(金) 23:27 回答

65430 / 76733 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free