Come creare un grafico da file di dati grezzi in qualsiasi prodotto Office

Come creare un grafico da file di dati grezzi in qualsiasi prodotto Office / finestre

Non sarebbe bello avere la possibilità di aprire solo un foglio di calcolo Excel o un documento Word, e senza dover fare nulla, i dati vengono letti direttamente da un testo o file di dati CSV e caricati direttamente in un grafico incorporato sul tuo foglio di calcolo o documento Word? Questa è una forma di automazione che utilizza i prodotti Office, perché se è possibile automatizzare la creazione di dati in Office, basti pensare alle possibilità. Puoi caricare automaticamente i dati in un grafico per un rapporto che stai mettendo insieme per il tuo capo: non è richiesto alcun inserimento di dati. Oppure puoi caricare i dati in un grafico direttamente in un'email in Outlook.

La tecnica per realizzare ciò comporta l'installazione del componente aggiuntivo Office Web Components. Inoltre, è sufficiente configurare alcune cose all'interno dell'applicazione Office che si desidera utilizzare per importare i dati e si è pronti per iniziare ad automatizzare il lavoro di reporting. Ho coperto alcuni degli elementi che utilizzeremo in questo articolo negli articoli VBA precedenti Come puoi creare la tua semplice app con VBA Come puoi creare la tua semplice app con VBA Per quelli di voi che amerebbero davvero per essere in grado di scrivere la tua applicazione, ma non hai mai digitato una singola riga di codice prima, ti spiegherò come rendere molto ... Leggi altro qui su MakeUseOf. Alcuni di questi includevano il passaggio di dati tra le applicazioni con gli appunti Passare qualsiasi informazione tra applicazioni VBA utilizzando gli Appunti Passare qualsiasi informazione tra applicazioni VBA usando gli Appunti Una delle parti più frustranti del lavoro con VBA all'interno di applicazioni specifiche, è che non è sempre facile per ottenere due applicazioni “parlare” a vicenda. Puoi provare per transazioni molto veloci ... Leggi di più, esportando le attività di Outlook in Excel Come esportare le tue attività di Outlook in Excel con VBA Come esportare le tue attività di Outlook in Excel con VBA Se sei un fan di Microsoft, una cosa buona che si può dire che i prodotti MS Office, almeno, è quanto sia facile integrarli tra loro ... Ulteriori informazioni e invio di e-mail da un Excel Come inviare e-mail da un foglio di calcolo Excel con gli script VBA Come inviare e-mail da un foglio di calcolo Excel con gli script VBA Il nostro modello di codice ti aiuterà a configurare e-mail automatizzate da Excel utilizzando Collaboration Data Objects (CDO) e script VBA. Leggi altro script.

Quello che sto per mostrarvi è come combinare Office Web Components con lo scripting di file di testo per creare un flusso automatizzato di dati senza interruzioni da un file di testo piatto sul computer nel prodotto Office (nel nostro caso Excel). Puoi usare questa stessa tecnica - con alcune piccole modifiche - in Word, Outlook o anche in PowerPoint. Qualsiasi prodotto Office (o qualsiasi altro prodotto) che abbia un back-end VBA per gli sviluppatori, ti consentirà di utilizzare questa tecnica.

Importa e crea un grafico da file di dati

Prima di poter creare un grafico da file di dati, è necessario prima abilitare alcune cose. In questo esempio, ho intenzione di mostrare come abilitare queste funzionalità in Excel, ma il processo è quasi identico in ogni altro prodotto Office.

Innanzitutto, prima di poter eseguire uno sviluppo VBA, devi abilitare la scheda sviluppatore nella barra degli strumenti (se non lo hai già fatto). Per fare questo, basta andare nel menu Opzioni, fare clic su “Personalizza il nastro” e abilitare il “Sviluppatore” linguetta.

Indietro in Excle, ora vedrai “Sviluppatore” comparire nei menu. Fare clic su di esso e fare clic su “Modalità di progettazione”. Quindi fare clic su “Visualizza codice” per vedere l'editor VBA.

All'interno dell'editor è dove dovrai abilitare i riferimenti che ti serviranno per il codice che sto per darti al lavoro. Assicurarsi di aver installato il componente aggiuntivo Office Web Components prima di eseguire questa operazione, altrimenti l'oggetto grafico Microsoft non sarà disponibile.


Fai clic su Strumenti e quindi su Riferimenti, e vedrai un elenco di tutti i riferimenti disponibili sul tuo sistema. Se non sai cosa sono - i riferimenti sono fondamentalmente librerie di codice e oggetti che puoi inserire nel tuo progetto. Questi ti permettono di fare cose davvero interessanti, a seconda del riferimento che abiliti. Se hai appena installato Office Web Components nel tuo sistema, dovrai aggiungerlo come nuova libreria, quindi fai clic sul pulsante Sfoglia per trovare il file .dll corretto.

Se hai installato Office Web Components, il file DLL viene chiamato OWC11.dll ed è memorizzato in c: \ Programmi \ file comuni \ microsoft shared \ web components \ 11 \

Fai clic sulla casella di controllo per “Microsoft Office Web Components 11.0” riferimento, e inoltre non dimenticare di selezionare “Microsoft Scripting Runtime” pure, che ti darà accesso a leggere o scrivere da file di dati.

Ora che hai aggiunto il riferimento, è ora di aggiungere il grafico vero e proprio al tuo foglio. In Excel, puoi aggiungere controlli facendo clic su “Inserire” nel menu Sviluppatore e facendo clic sulla piccola icona degli strumenti nell'angolo sotto “Controlli ActiveX”.

Scorri fino a “Grafico Microsoft Office 11.0” e fare clic su OK.

Ci stiamo finalmente mettendo al lavoro. Ecco come appare il grafico dei componenti Web MS come incorporato in un foglio di calcolo. Sembrerà lo stesso incorporato in un documento di Word o qualsiasi altra cosa.


Quindi, nel caso di Excel, voglio che il grafico carichi istantaneamente i dati dal file di dati all'apertura del file della cartella di lavoro. Per fare questo, vai nell'editor di codice facendo clic su “Visualizza codice” nel menu Sviluppatore e fare doppio clic sulla cartella di lavoro per visualizzare il codice della cartella di lavoro. Cambia il menu a discesa a destra “Aperto”. Questo è lo script che verrà eseguito quando il file della cartella di lavoro viene aperto per la prima volta.


Per caricare il grafico con i dati del codice, il grafico stesso ha bisogno di un nome. Torna al foglio di lavoro, fai clic con il tasto destro del mouse sul grafico e scegli Proprietà. Vedrai il “Nome” campo con qualcosa di simile “ChartSpace1”. Puoi cambiarlo in qualcosa. Ho chiamato il mio “MyChart”.

Inoltre, solo così sai come è il file di dati - il mio è un file di testo pieno di valori di dati in formato delimitato da virgole. Questo file potrebbe essere qualsiasi cosa - dati di laboratorio esportati da sensori, informazioni finanziarie digitate nel file manualmente da stagisti, o qualsiasi altra cosa. Leggerai il file con il tuo codice, quindi non importa come sono i dati, a patto che tu sappia come apparirà ogni riga quando il tuo programma lo leggerà.

Quindi, ora per la parte divertente. Ti mostrerò il codice in piccole sezioni, quindi non è esagerato e spiega cosa fa il codice. La parte superiore del codice leggerà prima tutti i valori del file di testo e li memorizzerà in due arrayx, uno per le variabili x (xVar) e uno per le variabili y (yVar).

Dim fso As New FileSystemObject Dim fnum Dim MyFile As String Dim strDataLine As String Dim xVar () As Variant Dim yVar () As Variant Dim intNumOfLines As Integer MyFile = "c: \ files \ MyData.txt" fnum = FreeFile () Apri MyFile Per Input As # 1 intNumOfLines = 0 Do While Not EOF (1) intNumOfLines = intNumOfLines + 1 Input # 1, strDataLine Input # 1, strDataLine Loop Chiudi # 1 ReDim xVar (intNumOfLines) ReDim yVar (intNumOfLines) Apri MyFile per input come # 1 intNumOfLines = 0 Do While Not EOF (1) Input # 1, xVar (intNumOfLines) Input # 1, yVar (intNumOfLines) intNumOfLines = intNumOfLines + 1 Loop Close # 1

Questo codice esegue fondamentalmente due volte il file di dati, la prima volta per dimensionare gli array in modo che siano la lunghezza esatta necessaria per archiviare i dati e quindi una seconda volta per leggere i dati in tali matrici. Se non si conosce l'array, si tratta di una variabile o un'area di archiviazione che conterrà un lungo elenco di valori a cui è possibile accedere utilizzando l'ordine in cui il valore è stato memorizzato nell'array. Il terzo caricato sarebbe (3), per esempio.

Ora che hai caricato due di questi array con tutti i valori del tuo file di dati, sei pronto per caricare quei valori nel grafico che hai già incorporato. Ecco il codice che lo fa.

Con Sheet1.MyChart .Clear .Refresh Set oChart = .Charts.Add oChart.HasTitle = True oChart.Title.Caption = "I miei dati" "oChart.Interior.Color =" blue "oChart.PlotArea.Interior.Color =" bianco "Impostare oSeries = oChart.SeriesCollection.Add con oSeries .Caption =" I miei dati ".SetData chDimCategories, chDataLiteral, xVar .SetData chDimValues, chDataLiteral, yVar .Line.Color =" blue ".Line.DashStyle = chLineDash .Line .Weight = 2 .Type = chChartTypeLine End With oChart.HasLegend = True oChart.Legend.Position = chLegendPositionBottom End With

È il “Sheet1.MyChart” che collega il codice al grafico reale che hai incorporato. Si basa su ciò che hai chiamato. Ciò si verifica quando lo si incorpora in Word, Powerpoint o qualsiasi altro prodotto Office. Non ti riferirai usando “sheet1”, ma invece qualunque elemento trattiene la Carta in quel caso, come ad esempio “document1” in Word per esempio.

Il codice sopra quindi imposta l'etichettatura e la colorazione del grafico, quindi carica i valori usando il “.SetData” metodo per entrambi i valori xey del set di dati bidimensionale. Una volta eseguito il codice precedente, verrà visualizzato il seguente grafico.

Questi dati sono direttamente fuori dal file di testo. L'unico inconveniente qui è che i file di dati dovrebbero essere bidimensionali solo se si desidera utilizzare il codice sopra. È possibile aggiungere più valori al set di dati, ma è necessario modificare il codice sopra per leggere il terzo valore ogni volta attraverso il ciclo, quindi duplicare “SeriesCollection.Add” sezione per creare un'altra serie e quindi aggiungerla al grafico nello stesso modo.

Può sembrare complesso solo leggendo il codice sopra, ma una volta che hai fatto uno di questi, è un gioco da ragazzi modificarlo per qualsiasi necessità. È possibile utilizzare lo stesso grafico e codice simile per creare un grafico a barre, un grafico a dispersione o qualsiasi altro tipo di grafico che si desidera utilizzare con lo stesso oggetto. È versatile e flessibile ed è uno strumento potente nel tuo arsenale se sei un appassionato di automazione per una maggiore produttività.

Giocare con il codice sopra e vedere se è possibile caricare automaticamente i dati nelle applicazioni. Quali usi creativi riesci a pensare per questo tipo di automazione? Condividi i tuoi pensieri e feedback nella sezione commenti qui sotto!

Scopri di più su: Microsoft Excel, Microsoft PowerPoint, Microsoft Word.