Hei,
yritin kehittää ohjelmanpätkän joka noutaisi halutusta URL-osoitteesta sivun sisällön ohjelmaan niin, että sitä voisi muokata. Yleensä olen käyttänyt tähän tarkoitukseen Excelin "Nouda ulkoiset tiedot" -ominaisuutta. Se on toisaalta kätevä, koska sisältö yleensä ohjautuu suoraan kenttiin ilman, että tarvii perata html-koodia pois jne. Toisaalta tämä tapa on hieman kömpelö ja toimintavarmuudeltaan vähän kyseenalainen erityisesti silloin kun haettavia sivuja on suuri määrä.
Haeskelin tietoja vähän sieltä täältä ja tämänkin palstan keskusteluista löytyi hieman vinkkiä. Ja sitä kautta "Koodivinkit: Visual Basic: Laskenta: Yhteysnopeuslaskuri" jossa periaatteessa toteutetaan juuri se toiminto jota yritän saada aikaiseksi.
Nyt sitten loppui konstit(ymmärrys) kesken. Alla oleva koodi antoi virheilmoituksen:
Run-time error 424: Object required.
Ilmeisesti tuo Internet Transfer Control pitäisi alustaa tai esitellä tai jotain. Ei ole oikein nämä käsitteetkään selvillä, eikä oikein tiedä mistä puhutaan ja mitä tarkoittaa 'objekti', 'menetelmä' yms.
(Yleensä olen ohjelmoinut nauhoittamalla Excelillä makroja ja sen jälkeen muokannut koodia itse. Vaikka jotkut sovellukset ovat melko laajoja ja monimutkaisia, on suurin osa VisualBasicin hienouksista jäänyt minulle vielä hämäräksi. Tälläkin kertaa tuo sovellus on siis Excelin alla olevana VB-makrona. En silti usko, että sillä on mitään tekemistä tuon toiminnan kanssa.)
Private Sub HaeSivu() Dim d As String Dim x() As String inet1.URL = "http://www.esimerkki.com/esim/testi.htm" 'tuohon lainausmerkkien sisään pitää tietenkin tulla joku oikeasti olemassa oleva osoite d = inet1.OpenURL End Sub
Jos joku asioista enemmän ymmärtävä osaisi neuvoa niin sitten pääsisin jatkamaan eteenpäin ja ehkä oppisin jotain enemmänkin.
Terveisin
ddr
Tuo koodi käyttää Internet Transfer Control -komponenttia, joka täytyy tosiaan löytyä makrosta. Tämä ohje on Excelin versioon 97, mutta todennäköisesti toimii uudemmillakin.
- aktivoi lomake, joka sivun hakee (oletuksena UserForm1)
- valitse valikosta Tools->Additional Controls
- rastita listasta Microsoft Internet Transfer Control ja paina OK
- valitse Toolboxista sinne ilmestynyt uusi komponentti, ja piirrä yksi sellainen lomakkeelle
Nyt Inet1-komponentin pitäisi olla käyttövalmis. Esimerkiksi seuraava ohjelma näyttää MsgBoxissa alkua Googlen sivuista:
Private Sub UserForm_Click() MsgBox HaeSivu("http://www.google.fi/") End Sub Private Function HaeSivu(sivu As String) As String HaeSivu = Inet1.OpenURL(sivu) End Function
En ole kyllä varma, löytyykö tuota komponenttia koneelta, jos siihen ei ole asennettu varsinaista Visual Basicia, mutta voithan yrittää.
Aihe on jo aika vanha, joten et voi enää vastata siihen.