Excel VBAでユーザー定義関数の作り方

Excel VBAでマクロを定義するときは

Sub foo()
    Dim rng As Range
    Set rng = Range("C52:C60")
    Debug.Print rng.Count
End Sub

という感じだけど、このままだとワークシートから呼べない。
ワークシートから呼ぶためには、標準モジュール領域に、Functionとして定義する必要がある。こんな感じ。

Function 取り消し線のセルをカウント(src)
  Dim ret
  For i = 0 To src.Count Step 1
    If src.Item(i).Font.Strikethrough Then ret = ret + 1
  Next
  取り消し線のセルをカウント = ret
End Function

戻り値は定義した関数名のフィールドに入れる必要がある。