Komunikuj się między Excelem a PHP

Spisie treści

Naprawdę podoba mi się WinHTTP i usługi sieciowe (w szczególności REST). Mimo że muszę trochę poszukać dla każdej małej rzeczy, której się uczę, i dopiero zaczynam, warto.

Zeszłej nocy wymyśliłem, jak zawrócić zmienną z VBA do PHP iz powrotem. Innymi słowy, nauczyłem się, jak przekazać zmienną VBA do funkcji PHP (znajdującej się w pliku na serwerze AutomateExcel), manipulować zmienną, a następnie zwracać nowy wynik z powrotem do VBA.

Uwaga: Zmienna jest wysyłana jako ciąg.

Na przykład do okna wiadomości na tym zdjęciu dotarło:

1. Wysyłanie zmiennej przechowującej liczbę 15 przez HTTP do pliku PHP w AutomateExcel

2. Funkcja PHP pobiera zmienną, mnoży ją przez 500, a następnie zwraca odpowiedź, w tym przypadku 7500

3. VBA odczytuje odpowiedź i zwraca odpowiedź w msgbox

Oto jak wygląda kod PHP. Otwórz notatnik, skopiuj i wklej te informacje, zapisz plik z rozszerzeniem php i prześlij na swój serwer:

12345678910111213141516

Nie zwróciłem odpowiedzi w XML, aby przykład był prosty. Oto kod VBA do wysyłania i odbierania danych, zmień ciąg połączenia, aby wskazywał na właśnie utworzony plik php:

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 ' Dodaj odwołanie do usług Microsoft WinHTTPStała HTTPREQUEST_SETCREDENTIALS_FOR_SERVER = 0Prywatna sub GetItems()Dim MyCon jako nowy WinHttpRequestPrzyciemnij to jako podwójnePrzyciemnij moją odpowiedź jako ciąg'zmienna do wysłaniawyślij to = 15'Ciąg połączenia do wysłaniaMyCon.Open "GET", _"https://www.automateexcel.com/excel/pl/server500.php" & _„?Przekaż to=” i wyślij to'Wyślij toMójCon.Wyślij'zwróc tomojaodpowiedź = MyCon.ResponseTextMsgBox moja odpowiedźNapis końcowy

Uwaga: Dodaj odwołanie do usług Microsoft WinHTTP

To cudownie!

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave