はじめに

Excel VBAには、たくさんの関数があります。VBAを組むために、すべて覚えなければいけないということはありません。必要最小限の関数のみ、「有る」ということを覚えておいて、必要になったときヘルプやインターネットで調べると良いと思います。

良く使用される関数を数値関数、文字列関数、日付と時刻の関数、その他の関数に分けて説明したいと思います。今回は数値関数の、整数化(Int/Fix)/ 乱数発生(Rnd)/ 平方根(Sqr)/ 絶対値(Abs) / 進数計算について説明したいと思います。最後に関数の調べ方についても少し触れてみようと思っています。

ゼロからはじめるVBA - 基本編
ゼロからはじめるVBA - VBA事始め編
ゼロからはじめるVBA - セル操作編
ゼロからはじめるVBA - 条件による分岐編
ゼロからはじめるVBA - 繰り返し処理編
ゼロからはじめるVBA - ユーザーフォーム編
ゼロからはじめるVBA - マクロの記録を使った例題編

整数化(Int/Fix)

整数化ということは、小数点以下をなくすということですが、小数点の処理をどうするかということで、Int関数とFix関数があります。

整数化(Int)

Int関数は小数点以下を切り捨てます。変数aが2.56であったとき、Int(a)は2になります。変数aが2.999の時もInt(a)は2になります。マイナス2.56(-2.56)の時はどうでしょうか、以下に例題を書いています。実際に入力して確認してください。

以下説明するリストはsample.lzhの中に数値関数例題.xlsmとして収録しています。サンプルとしてご活用ください。

[リスト1]rei_Int(数値関数例題.xlsm)

Sub rei_Int()
    a = 2.56        '(1)
    MsgBox ("a=" & a & "  Int(a)=" & Int(a))    '(2)
    a = -2.56
    MsgBox ("a=" & a & "  Int(a)=" & Int(a))
End Sub

(1)で変数aに値をセットし、(2)で表示しています。以下が実行結果です。

図1a 2.56の時

図1b -2.56の時

マイナスの時、-2.56は-3になりました。Int関数は指定された数値より小さい値の整数値を返します。

整数化(Fix)

Fix関数も小数点以下を切り捨てます。Int関数との違いはマイナス数値の答えにでてきます。例題を作って実行してみましょう。

[リスト2]rei_Fix(数値関数例題.xlsm)

Sub rei_Fix()
    a = 2.56
    MsgBox ("a=" & a & "  Fix(a)=" & Fix(a))
    a = -2.56
    MsgBox ("a=" & a & "  Fix(a)=" & Fix(a))
End Sub

リスト1のIntの場所をFixに変えてみました。以下が実行結果です。

図2a 2.56の時

図2b -2.56の時

マイナスの時、-2.56は-2になりました。Fix関数は指定された数値より0に近い整数値を返します。

Int関数とFix関数を比較し、マイナス数値がどうなるか、見比べてください。変数aに-2.56が入っているとして、Int(a)は、-3、Fix(a)は、-2が表示されています。Int関数は指定された数値より小さい値の整数値を返すのに対して、Fix関数は指定された数値より、0に近い整数値を返します。言葉ではピンとこないので、以下にイメージ図を書いてみました。数値を座標上にあらわして考えるとわかりやすいと思います。

まずマイナス数値の処理をみてみましょう。-2.56を考えてみます。

図3a マイナス数値の整数化.1

図3b マイナス数値の整数化.2

次にプラス数値の処理をみてみましょう。2.56を考えます

図4a プラス数値の整数化.1

図4b プラス数値の整数化.2

違いはマイナスの値で出てきます。プラスの値の場合はどちらも同じ値になります。