Excel VBA質問箱 IV

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

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


12188 / 13644 ツリー ←次へ | 前へ→

【11857】INT関数について KOCCI 04/3/17(水) 16:24 質問
【11860】Re:INT関数について ichinose 04/3/17(水) 17:37 回答
【11877】Re:INT関数について KOCCI 04/3/18(木) 10:00 お礼

【11857】INT関数について
質問  KOCCI  - 04/3/17(水) 16:24 -

引用なし
パスワード
   はじめて投稿いたします。

EXCELのVBAで、式をINT関数にあてて評価させると期待しているものと違う答えが
帰ってきてしまいます。 いままで使用していて、このようなことはなかったので
困惑しています。 どなたかアドバイスお願いします。 コードは以下の感じです。


*RANGE("H3").VALUE は 18.31 が入っています。


DIM TTM AS SINGLE

TTM = 100
RANGE("I3").VALUE = INT(RANGE("H3").VALUE * TTM)


この結果、セル[I3]には 1831 が入ってほしいのですが、
1830 となってしまいます。

セル[H3]の値を変更すると、正常に計算されます。

どうしても原因がわからなくて、困っています。 宜しくお願いします。


ちなみにOSはWin98,Excel2000 です。

【11860】Re:INT関数について
回答  ichinose  - 04/3/17(水) 17:37 -

引用なし
パスワード
   ▼KOCCI さん:
こんにちは。

>はじめて投稿いたします。
>
>EXCELのVBAで、式をINT関数にあてて評価させると期待しているものと違う答えが
>帰ってきてしまいます。 いままで使用していて、このようなことはなかったので
>困惑しています。 どなたかアドバイスお願いします。 コードは以下の感じです。
>
この質問と同じみたいです。

http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=11332;id=excel

↑の角田さんが紹介されているサイトを覗いてみて下さい。
かなり、わかりやすいですよ!!
KOCCI さんが投稿された事例の場合、

Sub aaa()
  Dim TTM As Single

  TTM = 100
  Range("I3").Value = Int(CDec(Range("H3").Value) * CDec(TTM))

End Sub

これでいくつかの数値で確認してみて下さい。

【11877】Re:INT関数について
お礼  KOCCI  - 04/3/18(木) 10:00 -

引用なし
パスワード
   ichinose さん

ありがとうございました。 解決致しました。

>http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=11332;id=excel>

これも、大変参考になりました。

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