2010-08-19 10 views
16

Sto cercando di scrivere del codice VBA in Excel 2010 che consumerebbe un servizio web. Non riesco a trovare alcuna risorsa correlata su Internet. Qualcuno può dirmi come farlo.chiamando il servizio web utilizzando il codice VBA in Excel 2010

+0

È possibile trovare [questo] (http://msdn.microsoft.com/en-us/magazine/cc163837.aspx) utile. Dovrebbe applicarsi ugualmente bene ad Excel 2010. Trovato [questo] (http://blogs.msdn.com/b/hovsep/archive/2007/07/11/excel-2007-how-to-connect-to-and- import-data-from-an-xml-web-service.aspx). – yuben

+0

Il blog di Jimmy Peña ha un'eccellente serie di articoli su come fare proprio questo. http://www.codeforexcelandoutlook.com/blog/category/internet-explorer/ – Lunatik

+0

purtroppo non c'era nulla di relativo a questo particolare problema in questo sito – Aadith

risposta

8

Non credo che il post sia contrassegnato come la risposta corretta: si collega alla soluzione Excel 2003, basata sul toolkit dei servizi Web di MS Office. Quella soluzione non è più valida in quanto il Toolkit non è più supportato. Vedi: MSDN - Consuming Web Services in Excel 2007. Il collegamento fornisce una soluzione per Excel 2007 che può essere trasposta in Excel 2010. Avrete comunque bisogno di Visual Studio 2010 con Microsoft Office Developers Tools. Significa anche utilizzare .Net Framework e codifica in C# o VB.NET.

+4

-1, la domanda per VBA. Questa risposta richiede Visual Studio. –

+4

Abbastanza giusto. A mio parere, la SM vorrebbe avere la VBA morta e sta spingendo soluzioni .net per Office. Sulla nota separata, non è necessario utilizzare Visual Studio. È possibile utilizzare NotePad e il compilatore della riga di comando. – Juliusz

+4

Si sarebbe sorpreso del numero di banche (anche molto grandi) che quasi smetterebbero di funzionare se VBA scomparisse domani !!! –

3

FWIW al momento della pubblicazione ho trovato che il vecchio Web Reference Toolkit di Excel 2003 produce ancora codice VBA funzionante in Excel 2007/10 (notare che ci sono stati alcuni momenti traballanti con vari aggiornamenti di Windows negli ultimi 18 mesi che hanno fermato questo codice funzionante, quindi non considererei la mia soluzione "affidabile").

Il mio trucco orribile comporta l'installazione di Excel 2003, quindi il Web Reference Toolkit, quindi l'installazione di Excel 2007 o Excel 2010. Ho installato 3 PC utilizzando questo hack e tutti stanno producendo codice VBA funzionante per consumare servizi Web asmx (I non ho provato a connettermi con altri tipi di servizi web ma non vedo perché non funzionerebbero).

Il metodo MS ufficiale, utilizzando VSTO, è un passo troppo lungo per alcuni dei nostri clienti e questo hack VBA li ha mantenuti felici.

28

Ho faticato con la stessa domanda in un mio recente progetto in cui volevo parlare con Trello e Salesforce in puro VBA senza installare alcun plug-in, aprendo Visual Studio o altri hack. Finito di scrivere la mia libreria (basata pesantemente su uno dei miei preferiti, RestSharp).

Attenzione, spudorato: (!) https://github.com/VBA-tools/VBA-Web

Alcune caratteristiche di divertimento includono il supporto per Mac, l'autenticazione (HTTP di base, OAuth1, OAuth2, e altri), supporto Async, e JSON parsing (grazie a VBA-JSON)

Funziona in modo eccezionale in Excel 2010 e 2013 (e molto probabilmente nel 2007) e ho lavorato con Salesforce, Trello, Basecamp, Google Maps e dovrebbe funzionare praticamente con qualsiasi webservice.

+0

Wow. Grande lavoro, non l'ho ancora testato, ma sembra fantastico. Molte grazie! – Juliusz

+0

lavoro eccezionale, grazie! –

+0

Totalmente fantastico! Grazie per la condivisione. – Roberto

Problemi correlati