Excel VBA Fix関数で小数点を切り捨てた整数を取得する

VBA関数

VBA関数のFix関数を使用して、小数点を切り捨てた整数を取得する方法をご説明します。

四捨五入をせずに、小数部分を切り捨てた整数を取得する際に使用します。

正の整数の場合は小数点を切り捨てた整数を取得しますが、負の整数を扱う場合には注意が必要です。

また、小数点を切り捨てる関数としては「Int関数」がありますが、Int関数とFix関数の違いについても併せてご説明します。

1.Fix関数の使い方

Fix関数は指定した数値の小数点を切り捨てた整数を返します。

次のように記述します。

Fix(数値)

数値」には小数点を切り捨てたい数値、または数式を指定します。

引数「数値」が正の場合は「1.1~1.9」など、小数点部分が「0.1~0.9」であっても1を返します。

負の数値を扱う場合は「-1.1~-1.9」の場合は、-1を返します。

Fix関数とInt関数の違い

基本的に正の数値を扱う場合は同様の結果を返します。

ただし、負の数値を扱う場合は結果が異なります。

Fix関数は上記で説明した通りですが、次のように結果を返します。

1.1~1.9:1

-1.1~-1.9:-1

Int関数は正の数値の場合は同じですが、負の数値の場合に異なります。

負の数値を扱う場合は「-1.1~-1.9」の場合は、「-1」ではなく指定した「数値」を超えない最大の負の整数の「-2」を返します。

1.1~1.9:1

-1.1~-1.9:-2

この違いをしっかり理解したうえで使用しないと、意図した結果と異なる結果を扱ってしまうのでご注意ください。

2.サンプルコード

Sub Sample1()

Debug.Print Fix(1) '1

Debug.Print Fix(10) '10

Debug.Print Fix(1.1) '1

Debug.Print Fix(1.9) '1

Debug.Print Fix(-1) '-1

Debug.Print Fix(-1.1) '-1

Debug.Print Fix(-1.9) '-1

Debug.Print Fix(-1 - 0.1) '-1

Debug.Print Fix(-10 * 1.11)  '-11

Debug.Print Fix(-10 * -1.11)  '11

End Sub
タイトルとURLをコピーしました