なんで皆ソートするの?
他より大きかったら+1するだけじゃないの?
Option Explicit

  Dim arr1
  Dim arr2
  arr1 = Array(-6, 3, 9, 5, 3, -7)
  arr2 = RankArray(arr1, 1)
  WScript.Echo Join(arr2, ", ")

Function RankArray(arrSrc, k)
  Dim i
  Dim j
  Dim arrRet
  arrRet = Array(1, 1, 1, 1, 1, 1)
  For j = 1 To UBound(arrSrc)
    For i = 0 To j - 1
      If arrSrc(i) > arrSrc(j) Then
        arrRet(i) = arrRet(i) + 1
      ElseIf arrSrc(i) = arrSrc(j) Then
        arrRet(i) = arrRet(i) + k
        arrRet(j) = arrRet(j) + k
      Else
        arrRet(j) = arrRet(j) + 1
      End If
    Next
  Next
  RankArray = arrRet
End Function