Hinzufügen eines Diagramms zu einem Microsoft-Dokument mit Office-Webkomponenten

Hinzufügen eines Diagramms zu einem Microsoft-Dokument mit Office-Webkomponenten / Windows

Ist es nicht erstaunlich, wie etwas so einfaches wie das Erstellen eines Diagramms manchmal so kompliziert wirken kann? Egal, ob Sie Excel, Word, Powerpoint oder Access verwenden - manchmal wäre es schön, wenn Sie einfach ein schnelles Diagramm mit einer Reihe von Daten einfügen würden, ohne viel zu konfigurieren und herumzurüsten.

In diesem Artikel werde ich Ihnen zeigen, wie Sie ein wirklich bequemes und einfaches VBA-Objekt aus Microsoft Office-Webkomponenten verwenden, mit dem Sie ein Diagramm direkt in ein Dokument, eine Präsentation oder etwas anderes einfügen können, in dem Sie VBA-Code erstellen können, um es auszuführen. Dies kann auch Nicht-Microsoft-Produkte einschließen, die ein VBA-Back-End haben, was viele tun.

In diesem Beispiel werde ich Ihnen zeigen, wie Sie den Entwurfsmodus in Ihrem Programm aktivieren (in diesem Fall verwenden wir Microsoft Word), das Diagrammobjekt in Ihr Projekt einbetten und anschließend den Code schreiben, der es füllt mit Daten.

In einigen meiner früheren VBA-Artikel haben einige von Ihnen erwähnt, dass die anstehende Aufgabe für alle, die noch nie Code geschrieben haben, zu kompliziert sei. Ich hoffe, dass Sie nach dem Lesen dieses Artikels motiviert sind, sich mit VBA zu versuchen. Der hier enthaltene Code ist sehr einfach und einfach zu schreiben. Durch das Einbetten dieser Tabelle können Sie sich mit VBA schmutzig machen, wenn Sie es noch nie versucht haben.

Wenn Sie sich mit VBA auskennen, ist dies ein großartiges Werkzeug, um schnellere Diagramme mit viel weniger Aufwand als je zuvor in Ihre Projekte einzubetten.

Entwurfsmodus aktivieren

In diesem Beispiel wollte ich ein schnelles Dokument mit einem eingebetteten Diagramm zusammenstellen, in dem Daten aus dem aktuellen Monat meines Budgets sowie der monatliche Durchschnitt des bisherigen Jahres angezeigt werden.

In diesem Beispiel werde ich diese Werte hart in ein eingeben “Array” Sie befinden sich direkt im VBA-Code. Letztendlich können Sie jedoch eine Reihe von Techniken zum Laden dieser Array-Variablen (ein Array ist einfach eine Variable, die eine Liste mit Werten enthält) aus anderen Quellen, beispielsweise einer externen Tabelle oder sogar einem Formular, in das Sie eingegeben haben, verwenden Die Werte werden jeden Monat manuell eingegeben.

Informationen zum Importieren von Daten in Word aus Excel finden Sie in meinem Artikel So integrieren Sie Excel-Daten in ein Word-Dokument So integrieren Sie Excel-Daten in ein Word-Dokument Während Ihrer Arbeitswoche gibt es wahrscheinlich viele Zeiten, in denen Sie kopieren und kopieren Einfügen von Informationen aus Excel in Word oder umgekehrt. So produzieren die Leute oft schriftliche Berichte… Lesen Sie mehr zum Thema. In diesem Artikel konzentrieren wir uns auf die Erstellung des Diagramms zur Anzeige von Daten.

Nun, da ich mein Dokument gestartet habe, möchte ich in den Code einsteigen. In Word oder Excel tun Sie dies, indem Sie auf klicken “Datei”, “Optionen” Klicken Sie dann auf die Option, um die Multifunktionsleiste anzupassen. Auf der rechten Seite der Optionen sehen Sie die “Passen Sie das Menüband an” Spalte und in der “Hauptregisterkarten” Feld, das Sie sehen sollten “Entwickler” ungeprüft Aktivieren Sie dieses Kontrollkästchen.

Zurück in Ihrem Dokument, sollten Sie jetzt das sehen “Entwickler” Menüpunkt verfügbar. In diesem Menü finden Sie die “Entwurfsmodus” Taste.

Klicken Sie auf Entwurfsmodus und dann auf das Ordner- / Werkzeugsymbol für “Legacy-Tools”, Klicken Sie dann in der rechten unteren Ecke des Popup-Felds unter ActiveX-Steuerelemente auf die Schaltfläche “Weitere Steuerelemente” Taste.

Scrollen Sie durch die Liste der verfügbaren Steuerelemente, bis Sie dazu gelangen “Microsoft Office Chart xx.x”. Wenn Sie Microsoft Office auf Ihrem Computer installiert haben, ist diese Kontrolle höchstwahrscheinlich verfügbar.

Wenn Sie das Steuerelement in Ihr Dokument einfügen, wird es als Box mit der Aufschrift angezeigt “Microsoft Office-Webkomponenten” Innerhalb. Dies ist im Wesentlichen Ihr leeres Diagramm, das zur Anzeige Ihrer Daten bereit ist.

Im nächsten Schritt schreiben Sie den Code, der Ihren Diagrammtyp einrichten soll, und zeigen die Daten an. Wenn Sie möchten, dass der Prozess manuell ist, können Sie im Dokument eine Schaltfläche platzieren, mit der die Daten in das Diagramm geladen werden. In meinem Fall wollte ich jedoch, dass das Ganze vollständig automatisiert ist. Sobald ich das Dokument öffne, wollte ich, dass das Skript ausgeführt wird, mit dem das Diagramm geladen wird. Sie können dies also im Code tun (klicken Sie auf die Schaltfläche Visual Basic, um in den Code-Editor zu gelangen), und wählen Sie das Dokumentobjekt und die Option “Öffnen” Veranstaltung.

Dadurch wird automatisch eine leere Funktion aufgerufen “Document_Open ()” in Ihren Code. In diese Funktion möchten Sie den folgenden Code einfügen.

Private Sub Document_Open ()  Dim i As Integer  Dim oChart  Dim oSeries1  Dim oSeries2  'Erstellen Sie Arrays für die x-Werte und die y-Werte  Dim xValues ​​als Variante, yValues1 als Variante, yValues2 als Variante  xValues ​​= Array ("Stromrechnung", "Hypothek", "Telefonrechnung", _  "Heizrechnung", "Lebensmittel", _  "Benzin", "Kleidung", "Einkaufen")  yValues1 = Array (124.53, 1250.24, 45.43, 253.54, 143.32, 259.85, 102.5, _  569,94)  yValues2 = Array (110, 1250, 50, 200, 130, 274, 95, _  300)
 

Dieser Codeabschnitt erstellt drei Arrays. Der erste (xValues) ist im Grunde Ihre x-Achsen-Liste der Beschreibungen für jedes Datenelement. In meinem Fall erstelle ich mit yValues1 ein Säulendiagramm, aber Sie können auch ein Liniendiagramm erstellen. Ich zeige Ihnen, wie das mit yValues2 geht. Fügen Sie nun auch das folgende Codesegment ein.

 Mit ThisDocument.ChartSpace1  .klar  .Aktualisierung  Setze oChart = .Charts.Add  oChart.HasTitle = True  oChart.Title.Caption = "Monatliche Budgetzahlen vs. Durchschnitt"
 

Dieser Codeabschnitt erstellt das Diagramm selbst in Ihrem “Chartbereich” Container. Ihr Diagramm hat zu diesem Zeitpunkt noch keine Daten, aber mit ein paar Befehlen können Sie den Titel des Diagramms sowie die Beschriftung festlegen. Nun ist es Zeit, die Daten hinzuzufügen. Fügen Sie den folgenden Code unter dem bereits eingefügten Code ein.

Legen Sie oSeries1 = oChart.SeriesCollection.Add fest  Mit oSeries1  .Bildunterschrift = "Dieser Monat"  .SetData chDimCategories, chDataLiteral, xValues  .SetData chDimValues, chDataLiteral, yValues1  .Typ = chChartTypeColumnClustered  Ende mit  'Fügen Sie dem Diagramm eine weitere Serie mit den x-Werten und y-Werten hinzu  'aus den Arrays und setzen Sie den Reihentyp auf ein Liniendiagramm  Set oSeries = oChart.SeriesCollection.Add  Mit oSeries  .Caption = "Durchschnittliche Ausgaben"  .SetData chDimCategories, chDataLiteral, xValues  .SetData chDimValues, chDataLiteral, yValues2  .Typ = chChartTypeLineMarkers  Ende mit

Der obige Code erstellt zwei Serien, die in Ihrem Diagramm angezeigt werden sollen. Die erste Serie konfiguriert die Daten so, dass sie im Diagrammobjekt als a angezeigt werden “ColumnClustered” Format und die zweite Serie ist so eingestellt, dass sie als angezeigt wird “TypeLineMarkers” Format. Dadurch werden beide Wertesätze im selben Diagramm angezeigt, es werden jedoch unterschiedliche Diagrammtypen verwendet. Dies kann eine sehr gute Methode sein, um mehrere Datensätze anzuzeigen und zu vergleichen.

Jetzt, da die Daten hinzugefügt wurden, müssen Sie nur noch die Achse aufräumen und die Diagrammdetails abschließen.

 'Formatieren Sie die Wertachsen
 oChart.Axes (chAxisPositionLeft) .NumberFormat = "$ #, ## 0"  oChart.Axes (chAxisPositionLeft) .MajorUnit = 1000  'Legende am unteren Rand des Diagramms anzeigen  oChart.HasLegend = True  oChart.Legend.Position = chLegendPositionBottom
 Ende mit
End Sub

Der obige Code formatiert die Zahlen auf der linken Achse für die Anzeige im numerischen Dollar-Format. Die nächste Zeile konfiguriert die maximale Grenze der vertikalen Achse. Da ich weiß, dass einzelne Elemente nicht über 1000 US-Dollar gehen werden, habe ich die maximale y-Achsengrenze festgelegt.

Speichern Sie das Dokument, schließen Sie es, öffnen Sie es erneut, und Sie sehen, dass Ihr Diagramm automatisch mit den Daten Ihrer beiden Arrays geladen wird.

Da Sie nun wissen, wie Sie die Diagramme einfügen und automatisch Daten in sie laden, denken Sie nur über die Möglichkeiten nach. Alles, was Sie tun müssen, ist, externe Daten in diese Arrays einzufügen - vielleicht eine Excel-Tabelle, möglicherweise eine Access-Datenbank oder etwas anderes - und plötzlich wird dieses Dokument zu einem sehr dynamischen und wertvollen Fenster in die gespeicherten Daten.

Dies ist nur die Spitze der Ieburg mit den MS Office Web Components-Objekten. Ich habe mit den Charts angefangen, weil ich diese Funktion am aufregendsten finde. Das Hinzufügen von Diagrammen zu jeder gewünschten VBA-Anwendung mit einem sehr kurzen Skript ist sehr nützlich und sehr leistungsfähig.

Wenn Sie sich ausschließlich mit Diagrammen beschäftigen, können Sie dieses Diagrammobjekt einmal ausprobieren. Kennen Sie weitere nützliche Diagrammobjekte für VBA? Wie binden Sie Daten in Ihre Apps ein? Teilen Sie Ihre Gedanken und Erfahrungen in den Kommentaren unten mit.

Bildquelle: Tablet-Finanzbalkendiagramm über Shutterstock

Erfahren Sie mehr über: Microsoft Excel, Microsoft PowerPoint, Microsoft Word, Visual Basic-Programmierung.