プロが教えるわが家の防犯対策術!

Excel2003で実行時エラー6 オーバーフローが出るようになりました。
Sheets(1).Range("O98") = 3000
Sheets(1).Range("O99")= 2000
Sheets(1).Range("O100") = Round(Sheets(1).Range("O98") / Sheets(1).Range("O99") * 10, 2) * -1
で使用できていましたがSheets(1).Range("O98") = 0 Sheets(1).Range("O99")= 0 にした途端上記のようなエラーが出るようになりました。
色々やってみたのですが上手くいきません。
シートを替えてやっても同じ事がでましたがシートを替えてRange("O100")を書式設定で数値に変えて良くはなりましたが本来のシートでは上手くいきません。
教えてくださいよろしくお願いします。

A 回答 (1件)

> Sheets(1).Range("O100") = ~ Sheets(1).Range("O98") / Sheets(1).Range("O99") ~


> で使用できていましたがSheets(1).Range("O98") = 0 Sheets(1).Range("O99")= 0 にした途端

ゼロ÷ゼロは定義されません。

割る数がゼロの場合は、場合分けするとかが一般的です。


ゼロ除算 - Wikipedia
http://ja.wikipedia.org/wiki/%E3%82%BC%E3%83%AD% …
ゼロ割るゼロ - Google 検索
http://www.google.co.jp/#gs_rn=14&gs_ri=psy-ab&g …

この回答への補足

回答ありがとうございます説明不足ですみません
If Sheets(1).Range("O98") <> 0 and Sheets(1).Range("O99") <> 0 then
  Sheets(1).Range("O100") = ~ Sheets(1).Range("O98") / Sheets(1).Range("O99") ~
End If
としています。
プログラム上クリアーすると0にはなるのですがSheets(1).Range("O98") = 3000 Sheets(1).Range("O99")= -1000にしてもエラーはでます。(オーバーフローしました)
とでます。
追加でよろしくお願いします。

補足日時:2013/05/22 23:28
    • good
    • 0
この回答へのお礼

Sheets(1).Range("O98") / Sheets(1).Range("O99")数値を入れてテストしましたがオーバーフローでましたがご指摘の”ゼロ÷ゼロは定義されません。”でエラー処理をしましたらエラーは出なくなりました。
ゼロ÷ゼロは定義でもオーバーフローと言うERRORが出るのですね
本当にありがとうございました。

お礼日時:2013/05/27 07:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!