El caso es que por ahí van los tiros. Tengo este código que quizás te sirva. Usa URLDownloadToFile, para guardar la página y luego Open yt For Input As , para crear un archivo TXT (TempFile.txt) en el formato correcto y leer la página web correctamente cargándola en la memoria, para luego ser introducida en un TextBox.
Código
Private Declare Function DeleteUrlCacheEntry Lib "Wininet.dll" Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long Private Function DownloadFile(ByVal sURL As String, ByVal sLocalFile As String) As Boolean DownloadFile = URLDownloadToFile(0, sURL, sLocalFile, 0, 0) = ERROR_SUCCESS End Function Public Function GetCodeWeb(ByVal strHtmlDir As String) Dim sSourceUrl As String Dim sLocalFile As String Dim hfile As Long Dim buff As String Dim pos1 As Long Dim pos2 As Long sSourceUrl = strHtmlDir sLocalFile = App.Path & "\TempFile.txt" 'Archivo temporal donde se guardará la página web Call DeleteUrlCacheEntry(sSourceUrl) If DownloadFile(sSourceUrl, sLocalFile) Then hfile = FreeFile Open sLocalFile For Input As #hfile buff = Input$(LOF(hfile), hfile) Close #hfile If buff = "" Then GetCodeWeb = "No se ha podido conseguir el código Html" Else GetCodeWeb = buff End If 'Kill sLocalFile Else GetCodeWeb = "No se ha podido conseguir el código Html" End If End Function Private Sub Command1_Click() Call DownloadFile("http://www.marca.com/futbol.html", "C:/01.html") 'Descarga la web Text1.Text = GetCodeWeb("E:/01.html") 'Obtiene el código Html End Sub
Como ves en la función DownloadFile guarda la página en C: ("C:/01.html"), si tu windows protege este directorio tendrás que elegir otro ¿ok?
Por cierto, DownloadFile sólo guarda la página principal, pero NO los archivos dependientes como imágenes o Scripts. Puedes usar WebBrowser en lugar de DownloadFile.