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

はじめに

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

Int 関数は、指定した数値の整数を返します。

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

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

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

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

Int 関数

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

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

解説

引数「数値」の小数を数値が小さい方へ丸めます。

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

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

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

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

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

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

\ 演算子と同じように割り算の商を求めるのには「Fix 関数」を使用します。

Fix 関数との違い

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

Int 関数

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

Fix 関数

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

使用例

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

商と余りを求める

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

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

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

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