Just complementing..
If you want to show correctly UTF-8 in Excel probably you will have to convert it the other way:
Private Declare Function WideCharToMultiByte Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long, ByVal lpMultiByteStr As Long, ByVal cchMultiByte As Long, ByVal lpDefaultChar As Long, ByVal lpUsedDefaultChar As Long) As Long
Public Function WideChar_Encode(ByVal instring As String) As String
Dim i, L As Long
Dim temp As String
L = Len(instring)
temp = String(L * 2, 0)
i = MultiByteToWideChar(CP_UTF8, 0, instring & Chr(0), -1, temp, L)
If i > 0 Then
WideChar_Encode = StrConv(Left(temp, (i - 1) * 2), vbFromUnicode)
i = InStr(WideChar_Encode, Chr(0))
If i Then WideChar_Encode = Left(WideChar_Encode, i - 1)
Else
WideChar_Encode = instring
End If
End Function