Microsoft non gradisce VBA in Microsoft Office e vorrebbe liberarsene (non sono mai abbastanza sicuro del perché). Ora sono al loro secondo morso di questa ciliegia (indigesta). Due morsi sono:

Morso Note
Visual Studio Tools per Office VSTO è stato introdotto un bel po ‘ di anni fa, e ci ha annunciato con orgoglio un corso, credendo che questo alla fine, sarebbe possibile sviluppare applicazioni basate su Microsoft Office. Non abbiamo mai avuto una sola richiesta su questo corso, e non è mai stato eseguito.
JavaScript for Office Office-js è stato gradualmente migliorato negli ultimi anni. Il grande punto di forza è che mentre VBA funziona solo per Microsoft Office su Windows o Mac, JavaScript funzionerà per le versioni di Excel in esecuzione sul web, sul telefono o sul tablet.

Quindi cosa non piace di JavaScript per Office? Un sacco, a quanto pare. Questo blog elenca 3 buoni motivi per non preoccuparsi di imparare JavaScript per Office a meno che non sia assolutamente necessario.

Nell’interesse della divulgazione completa, posso vedere un motivo per cui potresti voler imparare JavaScript per MS Office: è supportato all’interno di OneNote, che VBA non lo è.

Motivo 1 – Set-up e spese generali di distribuzione

Vuoi scrivere un programma in VBA all’interno di Excel? Ecco le istruzioni:

  1. Apri Excel.
  2. Premere Alt + F11.
  3. Inizia la codifica.
  4. Esegui le macro per testarle premendo F5.
  5. Salva la cartella di lavoro come file abilitato per macro.
  6. Inviare fuori nel mondo!

Vuoi sviluppare in JavaScript per MS Office? Ecco le istruzioni (semplificate):

Di cosa avrai bisogno Note
Un ambiente di sviluppo Se sei uno sviluppatore Microsoft, ha senso usare Visual Studio come IDE (Integrated Development Environment). La Community edition è disponibile gratuitamente, anche se dovrai ottenere la benedizione del tuo reparto IT per installarlo.
Nodo.js Puoi usare JavaScript o il linguaggio TypeScript di Microsoft per creare i tuoi componenti aggiuntivi di Office, ma per entrambi dovrai installare questo framework di file per permetterti di creare i tuoi programmi.
Yeoman generator Questo è un po ‘ come una procedura guidata, che consente di creare Office add-in più facilmente.

Quindi ho provato a farlo. Ho finito per dover eseguire un programma dalla mia riga di comando, che ha generato risme di messaggi prima di essere finalmente appeso.

Anche quando hai installato quanto sopra, hai ancora molta strada da fare, come mostra questa guida di avvio MicrosoftQuick erroneamente chiamata. E non farmi iniziare a confezionare le tue app finite e distribuirle …

Motivo 2-Il linguaggio è più difficile

Ho programmato in VBA per quasi 30 anni (!), e in C# e JavaScript per più di 5. Ma preferisco di gran lunga l’interfaccia di tipo VB, e ho scritto un articolo su Simple-Talkto questo effetto (fino ad oggi questo ha avuto 460.000 visualizzazioni e 2.700 commenti, per lo più critici!).

Ci sono due motivi per cui è più difficile programmare in JavaScript che in VBA:

  1. È meno simile all’inglese.
  2. Non è possibile registrare macro JavaScript in Excel o Word, come è possibile per VBA.

Se sei uno sviluppatore esperto, c’è molto da trovare da ridire su VBA, come riassunto daquesto articolo, ma la stragrande maggioranza degli utenti VBA non avrà mai bisogno di sapere quali classi, delegati e funzioni lambda sono.

Motivo 3-JavaScript è asincrono, ma VBA viene interpretato

Per semplificare:

  • Quando dici a VBA di fare A e B, aspetta che A sia completo prima di iniziare a fare B.
  • Quando dici a JavaScript di fare A e B, invia richieste (si chiamano promesse), in modo che A e B possano entrambi funzionare in parallelo.

Sicuramente allora il metodo JavaScript è migliore?

Attività del programma

Poiché il metodo JavaScript esegue le attività in parallelo, terminerà più rapidamente dell’equivalente VBA.

Ma … prova a fare una torta con questo metodo. Le istruzioni di base sono:

  1. Crema insieme burro / margarina e zucchero.
  2. Mescolare le uova.
  3. Mescolare la farina e il lievito.
  4. Cuocere.
  5. Decorare e servire.

Ora immagina la versione JavaScript di questo, in cui tutte le attività iniziano allo stesso tempo, e non c’è attesa che un’attività finisca prima che inizi il prossimo. Se sei fortunato, otterrai questo:

Bad cake

Mi scuso se questa era la tua foto che ho scattato da Google Images. Spero che il compleanno sia andato bene. Realisticamente, però, non otterremo nulla di così riconoscibile come una torta dal nostro processo.

Quasi tutte le macro che scrivi in Excel richiedono che i passaggi si verifichino in un determinato ordine. Un algoritmo tipico potrebbe essere:

  1. Vai all’ultima cella non vuota di una colonna.
  2. Copia il suo valore.
  3. Incollalo nella cella sottostante.

Per scrivere questo genere di cose in JavaScript, dovrai continuare a controllare che una promessa sia stata soddisfatta prima di richiedere la prossima (anche se per questo semplice esempio potresti combinare le tre istruzioni in un’unica routine).

Prendo circa 5 volte più codifica in JavaScript per i siti web di C#. Ci sono alcune ragioni per questo, ma il principale sono i bug introdotti quando presumo che il processo A sia terminato quando in realtà è ancora in esecuzione.

Quindi, a meno che tu non sia già uno sviluppatore Web JavaScript o TypeScript a tempo pieno, il mio consiglio sarebbe di ignorare Office-js fino a quando Microsoft non spegne VBA, cosa che non vedo accadere nel prossimo decennio.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.