Function NearAverage(ParamArray arg())
Dim lAbs(), index As Long

For i = 0 To UBound(arg)
For j = 0 To UBound(arg)
If i <> j Then
ReDim Preserve lAbs(1, index)
lAbs(0, index) = Abs(arg(i) - arg(j))
lAbs(1, index) = (arg(i) + arg(j)) / 2
index = index + 1
End If
Next
Next

If index Then
h = lAbs(0, 0)
ans = lAbs(1, 0)

For i = 0 To index - 1
If h > lAbs(0, i) Then h = lAbs(0, i): ans = lAbs(1, i)
Next
End If

NearAverage = ans
End Function

俺もこんな方法しか思い浮かばないわ。他に解があるのかな。

>>81
実際に作ろうとするとWhileの部分には終了用のフラグとか入るからFor文は無いんじゃないか。
あと全部小文字ってので昔は「VBAは頭文字が大文字になるからかっこ悪いなぁ」とか思ってた時期があった事を思い出した。
まぁ後はゲーム製作スレとかでやる話だな。