Nautin todella WinHTTP- ja verkkopalveluista (erityisesti REST). Vaikka minun on tutkittava melko paljon jokaista oppimaani pientä asiaa ja olen vasta aloittamassa, se on sen arvoista.
Eilen illalla tajusin kuinka kiertää muuttuja VBA: sta PHP: hen ja takaisin. Toisin sanoen olen oppinut välittämään VBA -muuttujan PHP -toiminnolle (joka sijaitsee tiedostossa AutomateExcel -palvelimessa), käsittelemään muuttujaa ja palauttamaan sitten uuden tuloksen takaisin VBA: lle.
Huomautus: Muuttuja lähetetään merkkijonona.
Esimerkiksi tämän kuvan viestiruutuun saapui:
1. Lähetetään muuttuja, jolla on numero 15 HTTP: n kautta, PHP -tiedostoon AutomateExcelissä
2. PHP -funktio ottaa muuttujan, kertoo sen 500: lla ja palauttaa sitten vastauksen, tässä tapauksessa 7500
3. VBA lukee vastauksen ja palauttaa vastauksen viestilaatikkoon
Tältä PHP -koodi näyttää. Avaa muistilehtiö, kopioi ja liitä nämä tiedot, tallenna tiedosto laajennuksella php ja lataa palvelimellesi:
12345678910111213141516 |
En palauttanut vastausta XML -muodossa, jotta esimerkki olisi yksinkertainen. Tässä on VBA -koodi tietojen lähettämiseen ja vastaanottamiseen, vaihda yhteysmerkkijono osoittamaan juuri luomaasi php -tiedostoon:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | 'Lisää viittaus Microsoft WinHTTP -palveluihinVakio HTTPREQUEST_SETCREDENTIALS_FOR_SERVER = 0Yksityinen ali GetItems ()Dim MyCon uutena WinHttpRequestHimmennä lähetys kaksinkertaisenaHimmennä vastaus merkkijonona'muuttuja lähetettäväksilähetys = 15'Yhteysjono lähetettäväksiMyCon.Open "GET", _"https://www.automateexcel.com/excel/pl/server500.php" & _"? PassThis =" & lähetä tämä'Lähetä seMyCon.Lähetä'palauta semyanswer = MyCon.ResponseTextMsgBox -vastausEnd Sub |
Huomautus: Lisää viittaus Microsoft WinHTTP -palveluihin
Se on mahtavaa!