Aggiornato da Brad Jones il 25 agosto 2017.
Durante la settimana lavorativa, ci sono probabilmente molte volte che ti ritrovi a copiare e incollare informazioni da Microsoft Excel in Word o viceversa.
Questo è il modo in cui le persone spesso producono rapporti scritti basati su dati accumulati e aggiornati in un foglio di calcolo. Excel è un ottimo programma per tutto, dalla creazione di grafici dall'aspetto professionale 6 Nuovi grafici di Excel e come utilizzarli 6 Nuovi grafici di Excel e come utilizzarli Hai bisogno di ottenere di più dai tuoi grafici Excel? Ecco una guida completa ad alcuni dei nuovi grafici introdotti nell'ultima versione di Excel. Ulteriori informazioni, per impostare un tracker per la gestione dei progetti 10+ Utili modelli Excel per la gestione e il monitoraggio dei progetti 10+ Modelli Excel utili per la gestione dei progetti e i modelli di tracciamento sono per i project manager quali sono i coltelli per i cuochi professionisti: indispensabili. Ti mostriamo come è possibile replicare progetti di successo utilizzando modelli già pronti in Microsoft Excel e oltre. Per saperne di più - ma quando si tratta di scrivere un report, Word è uno strumento molto migliore.
In questo articolo, approfondiremo lo scripting VBA in background che consente di programmare effettivamente le connessioni tra i dati archiviati in un file Excel e i documenti Word in cui si producono i report.
È sorprendentemente facile integrare i dati di Microsoft Excel in Microsoft Word dopo aver saputo aggiungere i giusti riferimenti e come disporre la sintassi del codice VBA in background.
Impostazione del foglio di calcolo
In questo esempio, inizierò con un foglio di calcolo Excel piuttosto semplice. In pratica, il file Excel può essere costituito da più fogli di calcolo con molti dati: non importa.
Finché sai dove trovare i dati nel foglio di calcolo, sarai in grado di raggiungerlo e afferrarlo utilizzando VBA Come inviare e-mail da un foglio di calcolo Excel utilizzando gli script VBA Come inviare e-mail da un foglio di calcolo Excel utilizzando gli script VBA Noi Ti mostreremo come configurare e-mail automatizzate da Excel utilizzando Collaboration Data Objects, (CDO) e script VBA. I nostri modelli di codice rendono questo molto più semplice di quanto sembri! Leggi di più .
Ecco come appare il mio foglio di calcolo di esempio. È un elenco di totali di spesa che sono stati calcolati durante l'intero anno.
Impostazione del documento di Word
Supponiamo che tu abbia un manager che vorrebbe vedere un rapporto ben formattato che descriva le spese, raggruppa insieme come oggetti e presenta le informazioni in un layout che è un po 'più esteticamente gradevole.
Puoi farlo incorporando oggetti come caselle di testo ed etichette nel tuo documento Word. Quando sei in Word, fai semplicemente clic sulla scheda del menu Sviluppatore, quindi seleziona "Modalità progettazione" nella sezione Controlli . Utilizza l'icona a discesa Strumenti legacy per inserire vari elementi nel tuo documento.
Usa questo menu per inserire un'etichetta .
Una volta che l'etichetta è stata inserita nel documento in cui si desidera (non sempre un'attività facile), sei pronto per programmare il feed di dati. Ma prima devi nominare l'etichetta in modo che il VBA possa identificarla. Fai clic destro sull'etichetta e vai in Proprietà . Trova il campo (Nome) e chiamalo qualcosa che ricorderai.
Ora aggiungi un pulsante di comando dallo stesso elenco a discesa degli strumenti legacy e fai doppio clic per aprire l'editor VBA. Quando si attiva il codice in un secondo momento, è possibile modificarlo in modo che il codice venga eseguito sull'evento Document Open () . Lo vedrai nelle caselle a discesa dell'oggetto nella finestra dell'editor.
Lavorare con VBA
Per iniziare a connettere Word a Excel, devi assicurarti di poter fare riferimento a quest'ultimo in VBA. Esercitazione di programmazione Excel VBA per principianti L'esercitazione di programmazione VBA di Excel per principianti VBA è uno strumento di alimentazione di Microsoft Office. Puoi usarlo per automatizzare le attività con macro, impostare trigger e molto altro. Ti presenteremo alla programmazione di base visiva di Excel con un semplice progetto. Leggi di più .
Preparare l'importazione dei dati Excel
Fare clic su Strumenti, quindi su Riferimenti . Scorri l'elenco fino a visualizzare la libreria di oggetti di Microsoft Excel 16.0 e selezionala.
Una volta fatto questo, il resto è solo una questione di scrivere uno script VBA ridicolmente semplice per estrarre dati da un foglio di calcolo di Excel e aggiornare automaticamente la didascalia dell'etichetta con i dati.
Ecco il codice:
Private Sub CommandButton1_Click () Dim objExcel As New Excel.Application Dim exWb As Excel.Workbook Set exWb = objExcel.Workbooks.Open ("C: \ Users \ Brad \ Desktop \ expenses.xlsx") ThisDocument.total_expenses.Caption = exWb. Fogli ("Foglio1"). Celle (12, 2) exWb.Close Set exWb = Nothing End Sub
Vedi come funziona? L'oggetto dell'applicazione Excel "exWb" apre il file Microsoft Excel nel percorso che gli viene fornito e andrà direttamente nel numero di foglio e cella specifico, estrarrà i dati e li inserirà nella proprietà Caption dell'etichetta che ho chiamato total_expenses . Tutto ciò che devi modificare nel tuo script è il percorso del file e il nome dell'etichetta.
Metti alla prova la tua macro
Per testare il tuo pulsante di comando, salva il documento, ricordando di specificare che si desidera un documento con attivazione macro di Word in modo che il codice funzioni.
Ecco la macro VBA in azione.
Integrare etichette Excel
La parte più difficile con le etichette in Word è che a volte è difficile allinearlo alla fine di una frase o accanto a qualsiasi altro testo.
Un modo per superare questo è in realtà incorporare parte del testo accanto ai dati nel codice VBA stesso. Come puoi vedere qui, ho inserito il testo statico direttamente in Caption quando creo l'etichetta stessa.
Ora, tutto ciò che devi fare è includere quel testo quando aggiorni l'etichetta con il tuo script VBA e aggiungi semplicemente i dati dal file di Microsoft Excel alla fine di quel testo.
Ecco come sarebbe il tipo di codice.
Dim objExcel As New Excel.Application Dim exWb As Excel.Workbook Set exWb = objExcel.Workbooks.Open ("c: \ Users \ Brad \ Desktop \ spese.xlsa") ThisDocument.total_expenses.Caption = exWb.Sheets ("Sheet1" ) .Cells (12, 2) ThisDocument.total_hotels.Caption = "Hotels:" & exWb.Sheets ("Sheet1"). Cells (5, 2) ThisDocument.total_dining.Caption = "Dining Out:" & exWb.Sheets ( "Foglio1"). Cells (2, 2) ThisDocument.total_tolls.Caption = "Tolls:" & exWb.Sheets ("Sheet1"). Cells (3, 2) ThisDocument.total_fuel.Caption = "Carburante:" & exWb. Fogli ("Sheet1"). Cells (10, 2) exWb.Close Set exWb = Nothing
È possibile utilizzare la stringa di concatenazione "&" per posizionare connettere il testo statico con i dati estratti dal foglio Excel. Ecco come appaiono i risultati finali nel documento Word aggiornato:
Prendendo le cose ulteriormente
Se vuoi testare le tue abilità, perché non automatizzare il tuo report 5 Risorse per macro di Excel per automatizzare i fogli di calcolo 5 Risorse per macro di Excel per automatizzare i fogli di calcolo Ricerca di macro di Excel? Ecco cinque siti che hanno ottenuto ciò che stai cercando. Leggi di più anche oltre? È possibile rimuovere quel brutto pulsante di comando grigio dal documento di Microsoft Word, semplicemente facendo in modo che lo script di aggiornamento dei dati venga eseguito su Document.Open () - l'intero processo si svolgerà dietro le quinte.
Ciò significa che in molti casi è possibile creare il documento iniziale una sola volta e quindi non doverlo creare di nuovo. Tutto ciò che dovrai fare è aprirlo e tutte le etichette si aggiorneranno automaticamente per te con i dati del file aggiornato di Microsoft Excel. Basta fare clic su Stampa e inviare il rapporto al proprio manager. Un lavoro di 30 minuti si è appena trasformato in un minuto stampato!
Riesci a pensare ad altri usi interessanti per questa tecnica di integrazione dei dati con VBA? Condividi alcune delle tue idee e pensieri nella sezione commenti qui sotto.
Immagine di credito: Punyaphat Larpsomboon tramite Shutterstock.com