Excel 2013マクロ講座15回

変数~Double(倍精度浮動小数点数型)

今回は、小数点を変数に取る場合の型を見て行きましょう。
前回(14回)のサンプルFileを開くか、新規でコードを入力してください。
(サンプルファイルは、こちらから 2013マクロ講座15回サンプルデータ

変数を宣言する~Double(倍精度浮動小数点数型)

コードをコピーして貼り付けます。変数Integer
マクロprog1をコピーして貼り付け、名前をprog3に変更しました。変数Integer2
そして、Xの値を小数点付きの数字に変更します。例では、8.5
変数Integer3

Sub prog3()
  Dim x As Single
  x = 8.5
  Range("A1").Value = x

End Sub    
    
VBEのコードウィンドウとExcelのウィンドウを並べて(比較のため)、
ユーザーフォームの実行ボタンを押します。
変数Integer4
スポンサーリンク
スポンサーリンク

当たり前ですが、
変数xはIntegerだ!
と宣言しているので、8.5と入れても、
「あ、8ね。」
と理解しているんですね。
では、Integerを小数点以下を扱える変数タイプSingleに書き換えてください。
ユーザーフォームの実行ボタンを押します。
今度は、きちんと小数点のついた値が表示されました。
変数Single
Single(単精度浮動小数点数型)は小数点を含む数値を格納する変数タイプです。
もう一つDoubleというのがあって、Double(倍精度浮動小数点数型)は単精度浮動小数点数型(Single)よりも大きな桁の数値を格納する変数タイプです。

そこで、
Dim x As Double
と宣言して、Xの桁数が大きくなるようにしてみます。
変数Double
どこからどこまでが、Singleでどこからが、Doubleなのかは、一番面倒なことですが、
Singleの有効桁数は7桁(内部的には9桁)なので、7桁を超える値を扱う可能性がある場合は、Doubleを使えばいいのですが、悩む位ならいっそ、
小数点を扱う時は、いつもDoubleでいいかと思います。

single 単精度 (-999999. ~ 999999.)
double 倍精度 (-9999999999999999. ~ 9999999999999999.)
 Sub prog4()
  Dim x As Double
  x = 8.12345 * 50.67
  Range("A1").Value = x

End Sub   
    
スポンサーリンク
スポンサーリンク