■エクセルでの自作関数の作成


ブックを新規作成し、Visual Basic Editor を開きます
プロジェクトに標準モジュールを追加し次のようなVBA関数を作成します
Function testfunc(val As Variant) As Variant

    testfunc = val + 1

End Function
これにより testfunc という上記で作成した関数がVBA上でもエクセル上でも使用できるようになります





■SUM関数と同じ動きをする関数を自作する

セル範囲に含まれる数値をすべて合計する関数をVBAで自作します

そこで必要なのが、
選択されたセルの要素数とその要素にアクセスする方法です

複数セルが選択された場合の要素数を知るには、
obj.Count にて知ることがてき、
選択されたセルの要素は配列形式で格納されるため
obj(1) のようにすると選択されたセルの先頭要素を参照することが出来ます

以上の事を踏まえてSUM関数と同等の関数を作成してみました

Function testfunc(obj As Object) As Variant
    'obj.Count には複数セルが選択された場合の要素数が入る
    'obj(1) 選択されたセルの先頭要素
    Dim i As Integer
    For i = 1 To obj.Count
        testfunc = testfunc + obj(i)
    Next i
End Function

縦横に選択された複数セルに対して演算が行われていることが確認できます。





▲トップページ > オフィス