Вы точно воспроизвели задачу? Какой тип аргумента должен быть у функции, и что именно функция должна возвращать?
Ладно, вот вам такой вариант - функция возвращает массив
Public Function MyReplace(x As Range) As Variant
Dim result() As String
ReDim result(1 To x.Count)
Dim pos As Integer
pos = 1
Dim cell As Range
For Each cell In x.Cells
Dim str As String
str = cell.Text
Dim str2 As String
str2 = Replace(str, "a", "b", 1, -1)
result(pos) = str2
pos = pos + 1
Next
MyReplace = Array(result)
End Function