VBA Fix 関数:整数を取得する

はじめに

Excel VBA マクロの Fix 関数から整数を取得する方法を紹介します。

Fix 関数は、指定した数値の整数を返します。Excel の「TRUNC 関数」と同様の動作になります。

-1 に小数があるときは -1 を返します。

Fix(数値 * 10) / 10 のようにして、小数の桁数を指定して切り捨てできます。

割り算などの小数を切り捨てて整数だけ取得したいときに使用します。

-1 に小数があるときに -2 になるように切り捨てるには「Int 関数」を使用します。
四捨五入、切り捨て、切り上げするには「Round 関数」をご覧ください。
  • 目次
    • Fix 関数
    • 解説
    • 使用例

Fix 関数

Fix(数値)
数値の小数を切り捨てます。

引数「数値」数値を指定します。
戻り値の型引数「数値」の型

解説

引数「数値」の小数を単純に切り捨てます。

引数「数値」が正の値のとき 1 に小数があるときは 1 を返します。

引数「数値」が正の値のとき 1 なら 1 を返します。

引数「数値」が負の値のとき -1 に小数があるときは -1 を返します。

引数「数値」が負の値のとき -1 なら -1 を返します。

Fix(数値 * 10) / 10 のように入力して、小数の桁数を指定して切り捨てできます。

Fix(数値 / 10) * 10 のように入力して、整数の桁数を指定して切り捨てできます。

\ 演算子と同じように、割り算の商を求めるのに使用できます。

Int 関数との違い

Int 関数」を使用しても、整数を取得できます。負の値に小数があるときに違いがあります。

Fix 関数

  • -1 に小数があるときは -1 を返します。
  • -1 なら -1 を返します。

Int 関数

  • -1 に小数があるときは -2 を返します。
  • -1 なら -1 を返します。

使用例

正の値のときは Fix 関数も Int 関数も結果は同じになります。

Dim i As Integer
i = Fix(1)
Debug.Print(i) ' 1
i = Int(1)
Debug.Print(i) ' 1

i = Fix(1.5)
Debug.Print(i) ' 1
i = Int(1.5)
Debug.Print(i) ' 1

i = Fix(2.5)
Debug.Print(i) ' 2
i = Int(2.5)
Debug.Print(i) ' 2

負の値のときは小数があるときに違いがあります。

Dim i As Integer
i = Fix(0)
Debug.Print(i) ' 0
i = Int(0)
Debug.Print(i) ' 0

i = Fix(-0.5)
Debug.Print(i) ' 0
i = Int(-0.5)
Debug.Print(i) ' -1

i = Fix(-1)
Debug.Print(i) ' -1
i = Int(-1)
Debug.Print(i) ' -1

i = Fix(-1.5)
Debug.Print(i) ' -1
i = Int(-1.5)
Debug.Print(i) ' -2

小数や整数の桁を指定して切り捨てる

Dim d As Double
d = Fix(123.456 * 100) / 100
Debug.Print(d)  ' 123.45

d = Fix(123.456 * 10) / 10
Debug.Print(d)  ' 123.4

d = Fix(123.456)
Debug.Print(d)  ' 123

d = Fix(123.456 / 10) * 10
Debug.Print(d)  ' 120

d = Fix(123.456 / 100) * 100
Debug.Print(d)  ' 100

商と余りを求める

Dim i As Integer
i = Fix(5 / 3) ' 商 5 \ 3 と同じ
Debug.Print(i) ' 1

i = 5 Mod 3    ' 余り
Debug.Print(i) ' 2

i = Fix(-5 / 3) ' 商
Debug.Print(i)  ' -1、Int 関数だと -2 になる

i = -5 Mod 3    ' 余り
Debug.Print(i)  ' -2