So erstellen Sie ein Diagramm aus Rohdatendateien in einem beliebigen Office-Produkt
Wäre es nicht schön, wenn Sie einfach eine Excel-Tabelle oder ein Word-Dokument öffnen könnten, und ohne etwas tun zu müssen, werden die Daten direkt aus einer Text- oder CSV-Datendatei gelesen und direkt in ein eingebettetes Diagramm geladen auf Ihre Tabelle oder ein Word-Dokument? Dies ist eine Form der Automatisierung mit Office-Produkten. Wenn Sie die Datendarstellung in Office automatisieren können, denken Sie nur an die Möglichkeiten. Sie können Daten automatisch in ein Diagramm laden, um einen Bericht zu erstellen, den Sie für Ihren Chef zusammenstellen. Es ist keine Dateneingabe erforderlich. Oder Sie können Daten direkt in eine E-Mail in Outlook in ein Diagramm laden.
Dazu müssen Sie das Office-Webkomponenten-Add-In installieren. Darüber hinaus müssen Sie nur einige Dinge in der Office-Anwendung konfigurieren, die Sie zum Importieren der Daten verwenden möchten, und Sie können mit der Automatisierung Ihrer Berichterstellung beginnen. Ich habe einige der Elemente behandelt, die wir in diesem Artikel in früheren VBA-Artikeln verwenden werden. So können Sie Ihre eigene einfache App mit VBA erstellen Wie Sie Ihre eigene einfache App mit VBA erstellen können Für diejenigen von Ihnen, die das wirklich lieben würden Um in der Lage zu sein, Ihre eigene Anwendung zu schreiben, aber noch nie zuvor eine einzige Codezeile eingegeben, werde ich Sie durch die Erstellung Ihrer eigenen Anwendung führen. Lesen Sie hier mehr bei MakeUseOf. Einige von ihnen umfassten die Weitergabe von Daten zwischen Anwendungen mit der Zwischenablage Alle Informationen zwischen VBA-Anwendungen mithilfe der Zwischenablage übergeben Alle Informationen zwischen VBA-Anwendungen mithilfe der Zwischenablage übergeben Einer der frustrierendsten Aspekte bei der Arbeit mit VBA in bestimmten Anwendungen ist, dass es nicht immer einfach ist zwei Bewerbungen an “sich unterhalten” zueinander. Sie können für sehr schnelle Transaktionen versuchen… Lesen Sie mehr, Exportieren von Outlook-Aufgaben nach Excel Exportieren von Outlook-Aufgaben nach Excel mit VBA Exportieren von Outlook-Aufgaben nach Excel mit VBA Ob Sie ein Microsoft-Fan sind oder nicht, eine gute Sache ist das Zu MS Office-Produkten lässt sich sagen, wie einfach es ist, sie miteinander zu integrieren… Lesen Sie mehr, und senden Sie E-Mails aus einem Excel. So senden Sie E-Mails aus einer Excel-Kalkulationstabelle mit VBA-Skripts. So senden Sie E-Mails aus Excel-Kalkulationstabelle mit VBA-Skripts Unsere Codevorlage hilft Ihnen beim Einrichten automatisierter E-Mails von Excel aus mit Collaboration Data Objects (CDO) und VBA-Skripts. Lesen Sie mehr Skript.
Ich werde Ihnen zeigen, wie Sie Office-Webkomponenten mit Textdatei-Scripting kombinieren, um einen nahtlosen, automatisierten Datenstrom aus einer flachen Textdatei auf Ihrem Computer in Ihr Office-Produkt (in unserem Fall Excel) zu erstellen. Sie können dieselbe Technik - mit ein paar kleinen Änderungen - in Word, Outlook oder sogar PowerPoint verwenden. Jedes Office-Produkt (oder ein anderes Produkt für diese Angelegenheit), das ein VBA-Back-End für Entwickler hat, ermöglicht Ihnen die Verwendung dieser Technik.
Importieren und erstellen Sie ein Diagramm aus Datendateien
Bevor Sie ein Diagramm aus Datendateien erstellen können, müssen Sie zunächst einige Dinge aktivieren. In diesem Beispiel werde ich Ihnen zeigen, wie Sie diese Funktionen in Excel aktivieren. Der Prozess ist jedoch in fast allen Office-Produkten nahezu identisch.
Bevor Sie eine VBA-Entwicklung durchführen können, müssen Sie zunächst die Registerkarte "Entwickler" in der Symbolleiste aktivieren (falls noch nicht geschehen). Gehen Sie dazu einfach in das Menü Optionen und klicken Sie auf “Band anpassen” und aktivieren Sie die “Entwickler” Tab.
Zurück in Excle wirst du jetzt sehen “Entwickler” erscheint in den Menüs. Klicken Sie darauf und klicken Sie auf “Entwurfsmodus”. Dann klicken Sie auf “Code anzeigen” um den VBA-Editor zu sehen.
Innerhalb des Editors müssen Sie die Referenzen aktivieren, die Sie für den Code benötigen, den ich Ihnen geben werde. Stellen Sie sicher, dass Sie das Office-Webkomponenten-Add-In installiert haben, bevor Sie dies tun. Andernfalls ist das Microsoft Chart-Objekt nicht verfügbar.
Klicken Sie auf Extras und dann auf Referenzen. Daraufhin wird eine Liste aller auf Ihrem System verfügbaren Referenzen angezeigt. Wenn Sie nicht wissen, um was es sich dabei handelt - Verweise sind im Wesentlichen Bibliotheken mit Code und Objekten, die Sie in Ihr eigenes Projekt laden können. Damit können Sie einige wirklich coole Dinge tun, je nachdem, welche Referenz Sie aktivieren. Wenn Sie gerade Office-Webkomponenten in Ihrem System installiert haben, müssen Sie sie als neue Bibliothek hinzufügen. Klicken Sie auf die Schaltfläche Durchsuchen, um die richtige DLL-Datei zu finden.
Wenn Sie Office Web Components installiert haben, heißt die DLL-Datei OWC11.dll und ist unter c: \ program files \ common files \ microsoft shared \ web components \ 11 \ gespeichert.
Klicken Sie auf das Kontrollkästchen für “Microsoft Office-Webkomponenten 11.0” Referenz und vergessen Sie nicht, auszuwählen “Microsoft Scripting Runtime” Außerdem haben Sie Zugriff auf das Lesen oder Schreiben von Dateien.
Nachdem Sie nun die Referenz hinzugefügt haben, ist es Zeit, das aktuelle Diagramm zu Ihrem Arbeitsblatt hinzuzufügen. In Excel können Sie Steuerelemente hinzufügen, indem Sie auf klicken “Einfügen” Klicken Sie im Entwicklermenü auf das kleine Werkzeugsymbol in der Ecke unter “ActiveX-Steuerelemente”.
Blättern Sie zu “Microsoft Office-Diagramm 11.0” und klicken Sie auf OK.
Endlich geht es zur Sache. So sieht das MS Web Component-Diagramm aus, eingebettet in eine Kalkulationstabelle. Es sieht genauso aus, eingebettet in ein Word-Dokument oder etwas anderes.
Im Fall von Excel möchte ich, dass das Diagramm beim Öffnen der Arbeitsmappendatei sofort Daten aus der Datendatei lädt. Dazu gehen Sie in den Code-Editor, indem Sie auf klicken “Code anzeigen” Doppelklicken Sie im Entwicklermenü auf die Arbeitsmappe, um den Arbeitsmappencode anzuzeigen. Ändern Sie die rechte Dropdown-Liste in “Öffnen”. Dies ist das Skript, das ausgeführt wird, wenn die Arbeitsmappendatei zum ersten Mal geöffnet wird.
Um das Diagramm mit Daten aus Code zu laden, benötigt das Diagramm selbst einen Namen. Kehren Sie zur Tabelle zurück, klicken Sie mit der rechten Maustaste auf das Diagramm, und wählen Sie Eigenschaften. Du wirst das sehen “Name” Feld mit so etwas “ChartSpace1”. Sie können dies beliebig ändern. Ich habe meine angerufen “MyChart”.
Nur damit Sie wissen, wie die Datendatei aussieht - meine ist eine Textdatei, die mit Datenwerten im durch Kommas getrennten Format gefüllt ist. Diese Datei kann alles sein - Labordaten, die von Sensoren exportiert werden, Finanzinformationen, die manuell von Praktikanten in die Datei eingegeben wurden, oder irgendetwas anderes. Sie lesen die Datei mit Ihrem Code ein, so dass es egal ist, wie die Daten aussehen, solange Sie wissen, wie jede Zeile aussehen wird, wenn Ihr Programm sie einliest.
Nun zum Spaß. Ich werde Ihnen den Code in kleinen Abschnitten zeigen, damit er nicht überfordert wird, und erläutern Sie, was der Code bewirkt. Der Anfang des Codes liest zunächst alle Werte aus der Textdatei ein und speichert sie in zwei Arrays x, einem für x-Variablen (xVar) und einem für y-Variablen (yVar)..
Dim fso As New FileSystemObject Dim Fnum Dim MyFile As String Dim strDataLine As String Dim xVar () As Variante Dim yVar () As Variante Dim intNumOfLines As Integer MyFile = "c: \ files \ MyData.txt" fnum = FreeFile () MyFile öffnen Für Eingabe als # 1 intNumOfLines = 0 Do While EOF (1) intNumOfLines = intNumOfLines + 1 Eingang # 1, strDataLine-Eingang # 1, strDataLine-Schleife Schließen # 1 ReDim xVar (intNumOfLines) ReDim yVar (intNumOfLines) Für Opener 1 intNumOfLines = 0 Nicht EOF (1) Eingabe # 1, xVar (intNumOfLines) Eingabe # 1, yVar (intNumOfLines) intNumOfLines = intNumOfLines + 1 Loop Close # 1
Dieser Code durchläuft die Datendatei im Wesentlichen zweimal - das erste Mal, um die Arrays so zu dimensionieren, dass sie genau die zum Speichern der Daten erforderliche Länge haben, und dann ein zweites Mal, um die Daten in diese Arrays einzulesen. Wenn Sie nicht wissen, was ein Array ist, handelt es sich um eine Variable oder einen Speicherbereich, die eine lange Liste von Werten enthält, auf die Sie in der Reihenfolge zugreifen können, in der der Wert im Array gespeichert wurde. Das dritte Drittel wäre zum Beispiel (3).
Nachdem Sie nun zwei dieser Arrays mit allen Werten aus Ihrer Datendatei geladen haben, können Sie diese Werte in das bereits eingebettete Diagramm laden. Hier ist der Code, der das tut.
Mit Sheet1.MyChart .Clear .Refresh Set oChart = .Charts.Add oChart.HasTitle = True oChart.Title.Caption = "Meine Datenwerte" 'oChart.Interior.Color = "blue" oChart.PlotArea.Color = " white "Set oSeries = oChart.SeriesCollection.Add With oSeries .Caption =" Meine Datenwerte ".SetData chDimCategories, chDataLiteral, xVar .SDataValues, chDataLiteral, yVar .Line.Color =" blue ".Line.DashStyle .Weight = 2 .Type = chChartTypeLine Ende mit oChart.HasLegend = True oChart.Legend.Position = chLegendPositionBottom End With
Es ist das “Sheet1.MyChart” das verbindet den Code mit dem tatsächlichen Diagramm, das Sie eingebettet haben. Es basiert darauf, wie Sie es genannt haben. Dies ist der Fall, wenn Sie es in Word, Powerpoint oder ein anderes Office-Produkt einbetten. Sie werden es nicht mit verweisen “Blatt1”, Welches Element aber in diesem Fall das Diagramm enthält, wie z “document1” in Word zum Beispiel.
Der obige Code legt dann die Beschriftung und die Farbe des Diagramms fest und lädt die Werte dann mit “.Setdata” Methode für x- und y-Werte des zweidimensionalen Datensatzes. Sobald der obige Code ausgeführt wurde, wird das folgende Diagramm angezeigt.
Diese Daten stammen direkt aus der Textdatei. Der einzige Nachteil hierbei ist, dass die Datendateien nur zweidimensional sein müssen, wenn Sie den obigen Code verwenden möchten. Sie könnten dem Datensatz weitere Werte hinzufügen, aber Sie müssen den obigen Code ändern, um den dritten Wert jedes Mal durch die Schleife einzulesen, und dann den “SeriesCollection.Add” Abschnitt, um eine weitere Serie zu erstellen, und fügen Sie sie auf dieselbe Weise zum Diagramm hinzu.
Es mag komplex erscheinen, wenn Sie den Code oben lesen. Sobald Sie jedoch einen dieser Schritte ausgeführt haben, ist es ein Kinderspiel, ihn an Ihre Anforderungen anzupassen. Sie können dasselbe Diagramm und ähnlichen Code verwenden, um ein Balkendiagramm, ein Streudiagramm oder einen beliebigen anderen Diagrammtyp zu erstellen, der dasselbe Objekt verwendet. Es ist vielseitig und flexibel - und es ist ein leistungsfähiges Werkzeug in Ihrem Arsenal, wenn Sie ein Fan von Automation für mehr Produktivität sind.
Spielen Sie mit dem obigen Code herum und prüfen Sie, ob Sie Daten automatisch in Ihre Anwendungen laden können. Welche kreativen Einsatzmöglichkeiten können Sie für diese Art der Automatisierung finden? Teilen Sie Ihre Gedanken und Ihr Feedback in den Kommentaren unten mit!
Erfahren Sie mehr über: Microsoft Excel, Microsoft PowerPoint, Microsoft Word.