Accedere al codice di una pagina HTML come se si trattasse di un normale file di testo è sempre possibile, ma estrapolare informazioni in questo modo è veramente complicato a meno che la pagina in questione non abbia un codice HTML estremamente pulito e dotato di una struttura non mutevole nel tempo.
Ti consiglio un approccio completamente diverso utilizzando la libreria "Microsoft HTML Object Library", che permette di accedere al codice della pagina HTML attraverso oggetti e collection.
L'esempio che ti riporto può essere facilmente adattato al tuo progetto, l'unica cosa che ti consiglio è quella di riscrivere se puoi la pagina HTML spostando tutta la formattazione in un file CSS esterno o in un blocco <style></style> all'interno della pagina.
Pagina HTML di partenza:
codice:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Titolo pagina</title>
<style type="text/css">
<!--
td {
font-size: 9pt;
text-align: center;
}
-->
</style>
</head>
<body>
<table id="datatable">
<tr>
<td>1</td>
<td>333</td>
<td>4656</td>
<td>45333</td>
<td>4773</td>
</tr>
<tr>
<td>2</td>
<td>556</td>
<td>47474</td>
<td>858</td>
<td>24636</td>
</tr>
<tr>
<td>3</td>
<td>73577</td>
<td>84888</td>
<td>22255</td>
<td>225</td>
</tr>
</table>
</body>
</html>
Ecco ora un breve esempio che mostra come utilizzare la libreria "Microsoft HTML Object Library" in congiunzione con il controllo "WebBrowser" (qui chiamato WB).
codice:
Dim d As IHTMLDocument3
Dim tbl As IHTMLTable
Dim row As IHTMLTableRow
Dim el As IHTMLElement
'carica la pagina
WB.navigate "http://www.xxyyzz123.it/pagina.htm"
'attende il caricamento...
Do While WB.Busy
DoEvents
Loop
'oggetto documento
Set d = WB.document
'oggetto table
Set tbl = d.getElementById("datatable")
'per ogni riga della tabella...
For Each row In tbl.rows
'per ogni cella della riga...
For Each el In row.cells
'... stampa il contenuto nella finestra immediata
Debug.Print el.innerText,
Next
'manda a capo la riga stampata
Debug.Print
Next
Ciao