Excelで利用する

Excelで計算式が長くなったものをVBAの関数にすることができます。それにより見やすくなったりミスを防ぎやすくなります。

Excel関数をVBAにする

例) sum関数をExcelのVBAで表現する

Excelのセルに = SUM(A1:A10) と入力されているものとします。 この範囲は常に固定して使いたい時 =Total() と自分で定義した関数をExcelの計算式に使うことができます。

' Excelの計算式をコメントとして記載しておくと便利です
' = SUM(A1:A10)
Function Total() as Long  ' 入力値はなし、出力は整数とします
    Total = WorksheetFunction.Sum(Range("A1:A10")) 
End Function

例) match, indexで参照しているものをVBAで表現する

id -> 名前 となっている表を参照して あるidに対する名前を取得するユーザ定義関数です。

' = index("B1:B12", match(D1, "A1:A12", 0), 1)
Function getName(id as String) as String
    Dim dic As Object: Set dic = CreateObject("Scripting.Dictionary")
    Dim r As Range
    For Each r In Range("A1:A12")
        dic(r.Value) = r.Offset(0, 1).Value
    Next

    getName = dic(id)
End Function