To get data from a webservice in Excel, I have created an excel addin provide function to get it; user just need type in cell:
=sendRequest(\"http://webservice.com\")<
As the downside of the solution stated here, the proper way to get the async return value for the function is to 1) cache your request's url => returned value
to a collection/dictionary, and then 2) refresh your formula
This is my solution file for your question; indeed it is updated from your async test file.
Based on this discusion, you can change the display text of cell without changing its formula
by using Range(yourCellAddress).NumberFormat = "0;0;0;""Value to display"""
So to your question, the solution is
In your sendAsyncRequest
function replace the return line as
sendAsyncRequest = "anything other than numbers"
In your ReadyStateChangeHandler
sub, replace
Application.Range(cellAddress).Value = XMLHttpReq.responseText 'return responseText to cell
by
cellDisplayText = XMLHttpReq.responseText
Range(cellAddress).NumberFormat = "0;0;0;""" & cellDisplayText & """"