ここから本文です

VBAの質問です

blu********さん

2013/10/1319:22:04

VBAの質問です

よろしくお願いします

現在、エクセルのVBAの勉強をし始めたものです。変数の宣言のところでわからないことが出てきたので質問させてください。

練習問題で、体重、身長からBMIを求める問題があり、間違って変数の宣言を実数形の"double"ではなく"integer"でプログラムしてしまったのですが、問題なく回答と同じ答えになりました。"double"でわざわざ宣言する意味はどういうことなのでしょうか?

補足integerに格納される数字は実数でしたので、小数点がついています。これはintegerの範囲外ではないのでしょうか?

閲覧数:
198
回答数:
2

違反報告

ベストアンサーに選ばれた回答

rut********さん

2013/10/1402:15:37

VBAでは、integer型の変数に小数点がある数字を代入してもエラーにはなりません。
勝手にinteger型に変換して実行します。つまり、小数部分を切り捨てた形で実行します。

以下のサンプルコードを実行して確認してみてください。

Sub sample()

Dim intBUF As Integer
Dim dblBUF As Double

intBUF = 1.2345
dblBUF = 1.2345

MsgBox "intBUF=" & intBUF
MsgBox "dblBUF=" & dblBUF

End Sub

こんな感じでエラーは起きませんが、計算過程で予期しない丸め処理が発生しますので、変数の型は合わせた方が良いです。
「回答と同じ答えになりました」との事ですが、たまたま演算結果が一致しただけだと思います。
全ての計算の過程で小数点が発生する場合には一致しないと思います。

質問した人からのコメント

2013/10/14 12:49:12

わかりやすい回答ありがとうございました!

ベストアンサー以外の回答

1〜1件/1件中

プロフィール画像

カテゴリマスター

tra********さん

編集あり2013/10/1321:51:20

Double(倍精度浮動小数点数型)
負の値は -1.79769313486231E308 ~ -4.94065645841247E-324、正の値は 4.94065645841247E-324 ~ 1.79769313486232E308 の範囲の値をとります。

Integer(整数型)
-32,768 ~ 32,767 の範囲の値をとります。

以上、ヘルプの抜粋です。

違いは、
小数点付きか否か
書くの可能な値の範囲
ということです。

《返信》
具体的な値(セル値?)と具体的なコードを提示してください。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる