<<目次へ


関数の定義と使用



 VBAではVBA関数とワークシート関数の2種類の関数が使用できます。それに加えて自分で定義したいわゆる"自作関数"も使用することができます(正確には自分で定義した関数のことをユーザー定義関数という)。例えばVBA関数はコード中に以下のように書けばよい。

heihoukon = Sqr(2)

 またワークシート関数を使用する場合は

heihoukon = worksheetsfunction.sqrt(2)

と記せばよいが,これらはいずれも平方根を返す関数である。つまり,同じ平方根を返す関数でもVBA関数とワークシート関数との2種類が用意されていることもあるということである。

 ここまでは特に問題ないだろうが,最初に「関数の定義の仕方」を説明し,次に「プロシージャ内で関数を呼び出す」ということをやってみよう。


Function niji_kansu(x)  'ユーザー定義関数
    Dim y As Double
    y = x ^ 2 + 2 * x + 3
    niji_kansu = y 'C言語でreturn(y)とすることと同じ
End Function

Sub main() 'メインプロシージャ
    Dim i As Integer
    For i = 1 To 10 'x=1のときからx=10のときまでを計算
        x = i
        Cells(i, 1).Value = niji_kansu(x)  'ここで関数を呼び出している
    Next
End Sub


 サブプロシージャの呼び出しは前回やった分散を計算するプログラムで紹介したので省略する。