Aggiungi un grafico a un documento Microsoft con Office Web Components

Aggiungi un grafico a un documento Microsoft con Office Web Components / finestre

Non è sorprendente come qualcosa di così semplice come creare un grafico possa sembrare così complicato a volte? Sia che stiate usando Excel, Word, PowerPoint o Access - a volte sarebbe bello inserire semplicemente un grafico veloce con una serie di dati senza dover fare un bel po 'di configurazione e confusione.

In questo articolo illustrerò come utilizzare un oggetto VBA veramente semplice e pratico da Microsoft Office Web Components che consente di inserire un grafico direttamente in un documento, una presentazione o qualsiasi altra cosa in cui è possibile creare codice VBA per eseguirlo. Questo può includere anche prodotti non Microsoft che hanno un back-end VBA, cosa che molti fanno.

In questo esempio, ti mostrerò come abilitare la modalità di progettazione nel tuo programma (in questo caso, useremo Microsoft Word), incorporare l'oggetto del grafico nel tuo progetto e poi come scrivere il codice che lo riempie con i dati.

In alcuni dei miei articoli VBA precedenti, alcuni di voi hanno affermato che l'attività in questione era un po 'troppo complicata per chiunque non avesse mai scritto codice prima. Spero che dopo aver letto questo articolo, sarai motivato a provare la tua mano con VBA. Il codice qui incluso è molto semplice e semplice da scrivere. Incorporare questo grafico è un ottimo modo per sporcarsi le mani con VBA se non l'hai mai provato prima.

Se conosci VBA, allora questo è un ottimo strumento per iniziare a incorporare grafici veloci nei tuoi progetti con molto meno sforzo che mai.

Abilitazione della modalità di progettazione

In questo esempio, ho voluto creare un documento rapido con un grafico incorporato che visualizza i dati del mese corrente del mio budget e la media mensile della spesa annuale fino ad oggi.

In questo esempio, inserirò questi valori in hard-coded in un file “schieramento” proprio all'interno del codice VBA, ma alla fine puoi usare una varietà di tecniche per caricare quelle variabili dell'array (una matrice è semplicemente una variabile che contiene un elenco di valori) da altre fonti, come un foglio di calcolo esterno, o anche un modulo in cui inserisci i valori manualmente ogni mese.

Per sapere come importare i dati in Word da Excel, controlla il mio articolo Come integrare i dati di Excel in un documento Word Come integrare i dati di Excel in un documento Word Durante la tua settimana lavorativa, ci sono probabilmente molte volte che ti ritrovi a copiare e incollare le informazioni da Excel in Word o viceversa. Questo è il modo in cui le persone spesso producono rapporti scritti ... Leggi di più sull'argomento. Ai fini di questo articolo, ci concentreremo sulla creazione del grafico per visualizzare i dati.

Ora che ho iniziato il mio documento, voglio entrare nel codice. In Word o Excel, fai questo cliccando su “File”, “Opzioni” e quindi fare clic sull'opzione per personalizzare la barra multifunzione. Sul lato destro delle opzioni, vedrai il “Personalizza il nastro” colonna e nel “Schede principali” campo che dovresti vedere “Sviluppatore” incontrollato. Controlla quella scatola.

Tornando al tuo documento, ora dovresti vedere il “Sviluppatore” voce di menu disponibile. All'interno di questo menu, troverai il “Modalità di progettazione” pulsante.

Fare clic su Modalità di progettazione, quindi fare clic sull'icona della cartella / strumenti per “Strumenti legacy”, e quindi nell'angolo in basso a destra della finestra popup, sotto Controlli ActiveX, fare clic su “Più controlli” pulsante.

Scorri verso il basso l'elenco di controlli disponibili fino a quando non si arriva a “Grafico Microsoft Office xx.x.”. Se sul computer è installato Microsoft Office, questo controllo sarà probabilmente disponibile.

Una volta inserito il controllo nel tuo documento, lo vedrai apparire come una scatola che dice “Componenti Web di Microsoft Office” dentro. Questo è essenzialmente il tuo grafico vuoto, pronto a mostrare i tuoi dati.

Il passo successivo è scrivere il codice che imposterà il tipo di grafico e visualizzare i dati. Se si desidera che il processo sia manuale, è possibile inserire un pulsante nel documento che carica i dati nel grafico, ma nel mio caso volevo che l'intero processo fosse completamente automatizzato. Nel momento in cui apro il documento, volevo che eseguisse lo script che carica il grafico, quindi puoi farlo nel codice (fai clic sul pulsante Visual Basic per accedere all'editor di codice) e seleziona l'Oggetto documento e “Aperto” evento.

Questo posizionerà automaticamente una funzione vuota chiamata “Document_Open ()” nel tuo codice. All'interno di questa funzione, si desidera incollare il seguente codice.

Private Sub Document_Open ()  Dim i As Integer  Dim oChart  Dim oSeries1  Dim oSeries2  'Crea matrici per i valori x e i valori y  Dim xValues ​​As Variant, yValues1 As Variant, yValues2 As Variant  xValues ​​= Array ("Electric Bill", "Mortgage", "Phone Bill", _  "Bolletta del riscaldamento", "generi alimentari", _  "Benzina", "Vestiti", "Shopping")  yValues1 = Matrice (124.53, 1250.24, 45.43, 253.54, 143.32, 259.85, 102.5, _  569,94)  yValues2 = Matrice (110, 1250, 50, 200, 130, 274, 95, _  300)
 

Questa sezione di codice crea tre array. Il primo (xValues) è fondamentalmente l'elenco delle descrizioni dell'asse x per ciascun elemento di dati. Nel mio caso sto creando un grafico a colonne con yValues1, ma puoi anche creare un grafico a linee. Ti mostrerò come farlo con yValues2. Adesso incolla anche il seguente segmento di codice.

 Con ThisDocument.ChartSpace1  .Chiaro  .ricaricare  Imposta oChart = .Charts.Add  oChart.HasTitle = True  oChart.Title.Caption = "Numeri di budget mensili rispetto alla media"
 

Questa sezione di codice crea in realtà crea il grafico stesso all'interno del tuo “ChartSpace” contenitore. Il tuo grafico non ha dati a questo punto, ma con un paio di comandi puoi impostare il titolo per il grafico e la didascalia. Ora è il momento di aggiungere i dati. Incolla il seguente codice sotto il codice che hai già incollato per farlo.

Impostare oSeries1 = oChart.SeriesCollection.Add  Con oSeries1  .Caption = "Questo mese"  .SetData chDimCategories, chDataLiteral, xValues  .SetData chDimValues, chDataLiteral, yValues1  .Type = chChartTypeColumnClustered  Fine Con  'Aggiungi un'altra serie al grafico con i valori x e i valori y  'dagli array e imposta il tipo di serie su un grafico a linee  Imposta oSeries = oChart.SeriesCollection.Add  Con oSeries  .Didascalia = "Spesa media"  .SetData chDimCategories, chDataLiteral, xValues  .SetData chDimValues, chDataLiteral, yValues2  .Tipo = chChartTypeLineMarkers  Fine Con

Il codice sopra crea due serie da visualizzare nel grafico. La prima serie configura i dati da visualizzare all'interno dell'oggetto del grafico come a “ColumnClustered” formato e la seconda serie è impostata per visualizzare come “TypeLineMarkers” formato. Questo mostrerà entrambi i gruppi di valori sullo stesso grafico, ma userà diversi tipi di grafici - che possono essere in realtà un modo molto interessante per visualizzare e confrontare più serie di dati.

Ora che i dati vengono aggiunti, non resta che riordinare l'asse e completare i dettagli del grafico.

 'Formatta gli assi del valore
 oChart.Axes (chAxisPositionLeft) .NumberFormat = "$ #, ## 0"  oChart.Axes (chAxisPositionLeft) .MajorUnit = 1000  'Mostra la legenda in fondo al grafico  oChart.HasLegend = True  oChart.Legend.Position = chLegendPositionBottom
 Fine Con
End Sub

Il codice sopra formatta i numeri sull'asse sinistro per visualizzare in formato numerico dollaro. La riga successiva configura il limite massimo dell'asse verticale. Dal momento che so che i singoli oggetti non superano i $ 1000, questo è il limite massimo per l'asse y.

Salva il documento, chiudilo, riapri e voilà arriva il tuo grafico, caricato automaticamente con i dati dei tuoi due array.

Ora che sai come inserire i grafici e carica automaticamente i dati in essi, pensa solo alle possibilità. Tutto quello che devi fare è ottenere qualsiasi dato esterno in quegli array - magari un foglio di calcolo di Excel, forse un database di Access o qualsiasi altra cosa - e improvvisamente questo documento diventa una finestra molto dinamica e preziosa nei dati memorizzati.

Questa è solo la punta dell'iceberg con gli oggetti MS Office Web Components. Ho iniziato con le classifiche perché trovo che la funzione sia la più eccitante. Aggiungere diagrammi a qualsiasi applicazione VBA che si desidera con uno script molto breve è molto utile e molto potente.

Se si tratta di grafici, perché non provare questo oggetto grafico? Conosci altri oggetti grafici utili per VBA? Come incorporate i dati nelle vostre app? Condividi i tuoi pensieri ed esperienze nella sezione commenti qui sotto.

Immagine di credito: Tablet Finance Bar Chart tramite Shutterstock

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