Excel VBAの「Int関数」と「Fix関数」について解説します。
Int関数とは、Fix関数とは
Excel VBA「Int関数」と「Fix関数」は、どちらも数値の小数を捨てた整数部分を返す関数です。でも小数の捨て方に微妙な違いがあります。その違いについて詳しく解説します。
Int、Fix 関数(Visual Basic for Applications リファレンス)
構文(引数と戻り値)
Excel VBAの関数を使いこなすには、関数の構文を理解しておくことが重要です。
構文
Int(number)
Fix(number)
「Int関数」「Fix関数」ともに構文のつくり自体は同じですね。
引数と戻り値
引数:number は必須です。
- number には Double型の数値 または 数値式を指定します。
- number に Null が含まれる場合、Null が返されます。
戻り値:number の小数部分が取り除かれて、その結果得られる整数値が返されます。ただし、
数値が負の場合は「Int関数」と「Fix関数」で次のような違いがあります。
- 「Int関数」 は、負の数値以下の最初の負の整数を返します。
- 「Fix関数」 は、負の数値以上の最初の負の整数を返します。
何だか少しわかりにくいので次項以降で詳しく解説します。
解説
引数 number が「正の数」の場合は、Int と Fix のどちらも同じ戻り値になります。単純に引数の小数部分を取り除いた値が返されます。
一方、引数 number が「負の数」の場合の戻り値は Int と Fix では次のような違いがあります。
関数 | 数値が負の場合の戻り値 | 引数 | 戻り値 |
---|---|---|---|
Int関数 | 数値以下の最初の負の整数を返します = 小数部分を繰り上げます | -9.3 | -10 |
Fix関数 | 数値以上の最初の負の整数を返します = 小数部分を切り捨てます | -9.3 | -9 |
使用例1(サンプルコード)
次のサンプルコードは、引数となる数値を Application.InputBox で指定できるようにしています。そして、計算結果をイミディエイトウィンドウに表示します。
Option Explicit
Sub test_01()
Dim IntRes, FixRes, arg, msg
arg = Application.InputBox("数値を入力", Type:=1)
msg = "引数(" & arg & ")の結果は"
IntRes = Int(arg)
FixRes = Fix(arg)
Debug.Print msg & vbCrLf & _
"Int(" & arg & ")= " & IntRes & vbCrLf & _
"Fix(" & arg & ")= " & FixRes & vbCrLf
End Sub
使用例2(切り捨てる桁数を指定したい場合)
引数を10倍して小数点の位置をずらしてから関数で計算します。そうすることによって、切り捨てる位置を小数点第一位部分に変えることができます。計算後に再び10で除算することによって、小数点の位置を元に戻します。
次のサンプルコードでは、引数となる数値を100倍して計算してから100で除算しています。結果は、小数点第二位以下が切り捨てられてイミディエイトウィンドウに表示されます。
Sub test_02()
Dim IntRes, FixRes, arg, msg
arg = Application.InputBox("数値を入力", Type:=1)
msg = "引数(" & arg & ")の結果は"
IntRes = Int(arg * 100) / 100
FixRes = Fix(arg * 100) / 100
Debug.Print msg & vbCrLf & _
"Int(" & arg & ")= " & IntRes & vbCrLf & _
"Fix(" & arg & ")= " & FixRes & vbCrLf
End Sub
おわりに
Excel VBA「Int関数」と「Fix関数」で数値の小数部分を捨てて整数部分を返す方法について解説しました。二つの関数の違いはお分かりいただけましたか。
数値がマイナス(負の数)だった場合に違いがあるのが特徴です。
切り捨てるなら「Fix関数」、繰り上げるなら「Int関数」を使います。
使用例で、小数部分の桁数を調整する方法をお見せしましたが、小数だけでなく整数部分の調整も可能です。例えば、一桁目で切り捨てて10単位にしたりすることができますので是非やってみてください。
この解説が、少しでもみなさまのお役に立てたなら幸いです(^^;
VBAサンプルファイルはダウンロードできます
このページで使用したサンプルファイルの登録はありません(^^;
ダウンロードページへトップリンクは下のカードクリックでジャンプできます。
よろしければご利用ください!