Werbung
Wäre es nicht schön, wenn Sie nur eine Excel-Tabelle oder ein Word-Dokument öffnen könnten, ohne etwas tun zu müssen? Alles in allem werden Daten direkt aus einer Text- oder CSV-Datendatei gelesen und direkt in ein Diagramm geladen, das in Ihre Tabelle oder Word eingebettet ist dokumentieren? Dies ist eine Form der Automatisierung mit Office-Produkten. Wenn es möglich ist, die Darstellung von Daten in Office zu automatisieren, denken Sie nur an die Möglichkeiten. Sie können automatisch Daten in ein Diagramm für einen Bericht laden, den Sie für Ihren Chef zusammenstellen - keine Dateneingabe erforderlich. Oder Sie können Daten in ein Diagramm direkt in eine E-Mail in Outlook laden.
Die Technik, um dies zu erreichen, umfasst die Installation des Office Web Components-Add-Ins. 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 Berichtsarbeit beginnen. Ich habe einige der Elemente behandelt, die wir in diesem Artikel zuvor verwenden werden
VBA-Artikel Wie Sie mit VBA Ihre eigene einfache App erstellen könnenMöchten Sie wissen, wie Sie Ihre eigene VBA-Anwendung erstellen, um Probleme zu lösen? Verwenden Sie diese Tipps, um Ihre eigene VBA-Software zu erstellen. Weiterlesen hier bei MakeUseOf. Einige davon beinhalteten die Weitergabe von Daten zwischen Anwendungen mit der Zwischenablage Übergeben Sie alle Informationen zwischen VBA-Anwendungen mithilfe der ZwischenablageEiner der frustrierendsten Aspekte bei der Arbeit mit VBA in bestimmten Anwendungen ist, dass es nicht immer einfach ist, zwei Anwendungen dazu zu bringen, miteinander zu „sprechen“. Sie können sehr schnelle Transaktionen versuchen ... Weiterlesen , exportieren Outlook-Aufgaben in Excel So exportieren Sie Ihre Outlook-Aufgaben mit VBA nach ExcelUnabhängig davon, ob Sie ein Fan von Microsoft sind oder nicht, ist eine gute Sache, die zumindest über MS Office-Produkte gesagt werden kann, wie einfach es ist, sie miteinander zu integrieren ... Weiterlesen und senden E-Mails aus einem Excel So senden Sie E-Mails aus einer Excel-Tabelle mithilfe von VBA-SkriptenUnsere Codevorlage hilft Ihnen beim Einrichten automatisierter E-Mails aus Excel mithilfe von CDO- (Collaboration Data Objects) und VBA-Skripten. Weiterlesen Skript.Ich werde Ihnen zeigen, wie Sie Office-Webkomponenten mit Textdateiskripten kombinieren, um eine zu erstellen nahtloser, automatisierter Datenstrom aus einer flachen Textdatei auf Ihrem Computer in Ihr Office-Produkt (in unserem Fall) Excel). Sie können dieselbe Technik - mit ein paar kleinen Änderungen - in Word, Outlook oder sogar PowerPoint verwenden. Mit jedem Office-Produkt (oder einem anderen Produkt) mit einem VBA-Back-End für Entwickler können Sie diese Technik verwenden.
Importieren und Erstellen eines Diagramms 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 Vorgang ist jedoch in allen anderen 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 Sie dies noch nicht getan haben). Gehen Sie dazu einfach in das Menü Optionen, klicken Sie auf "Multifunktionsleiste anpassen" und aktivieren Sie die Registerkarte "Entwickler".

Zurück in Excle wird jetzt "Entwickler" in den Menüs angezeigt. Klicken Sie darauf und dann auf "Design Mode". Klicken Sie dann auf "Code anzeigen", um den VBA-Editor anzuzeigen.

Im Editor müssen Sie die Referenzen aktivieren, die Sie für den Code benötigen, den ich Ihnen zur Arbeit geben werde. Stellen Sie sicher, dass Sie das Office Web Components-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 handelt, handelt es sich bei Referenzen im Grunde genommen um Bibliotheken mit Code und Objekten, die Sie in Ihr eigenes Projekt ziehen können. Mit diesen können Sie einige wirklich coole Dinge tun, je nachdem, welche Referenz Sie aktivieren. Wenn Sie gerade Office Web Components in Ihrem System installiert haben, müssen Sie es als neue Bibliothek hinzufügen. Klicken Sie daher auf die Schaltfläche Durchsuchen, um die richtige DLL-Datei zu finden.

Wenn Sie Office-Webkomponenten installiert haben, heißt die DLL-Datei OWC11.dll und wird in c: \ Programme \ Gemeinsame Dateien \ Microsoft Shared \ Webkomponenten \ 11 \ gespeichert.
Aktivieren Sie das Kontrollkästchen für die Referenz "Microsoft Office Web Components 11.0" und vergessen Sie es auch nicht Wählen Sie auch "Microsoft Scripting Runtime", um Zugriff auf das Lesen oder Schreiben von Daten zu erhalten Dateien.
Nachdem Sie die Referenz hinzugefügt haben, ist es an der Zeit, das tatsächliche Diagramm zu Ihrem Blatt hinzuzufügen. In Excel können Sie Steuerelemente hinzufügen, indem Sie im Entwicklermenü auf „Einfügen“ und in der Ecke unter „ActiveX-Steuerelemente“ auf das Symbol für kleine Werkzeuge klicken.

Scrollen Sie zu "Microsoft Office Chart 11.0" und klicken Sie auf "OK".
Wir kommen endlich zur Sache. So sieht das MS Web Component-Diagramm in eine Tabelle eingebettet aus. 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 rufen Sie den Code-Editor auf, indem Sie im Entwicklermenü auf „Code anzeigen“ klicken und auf die Arbeitsmappe doppelklicken, 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. Sie sehen das Feld "Name" mit etwas wie "ChartSpace1". Sie können dies in alles ändern. Ich habe mein "MyChart" genannt.
Damit Sie wissen, wie die Datendatei aussieht, handelt es sich bei meiner um eine Textdatei, die mit Datenwerten im durch Kommas getrennten Format gefüllt ist. Diese Datei kann alles sein - Labordaten, die von Sensoren exportiert wurden, Finanzinformationen, die von Praktikanten manuell in die Datei eingegeben wurden, oder alles andere. Sie lesen die Datei mit Ihrem Code ein, sodass es keine Rolle spielt, wie die Daten aussehen, solange Sie wissen, wie jede Zeile beim Einlesen durch Ihr Programm aussehen wird.
Also jetzt zum lustigen Teil. Ich werde Ihnen den Code in kleinen Abschnitten zeigen, damit er nicht überfordert ist, und erläutern, was der Code bewirkt. Am Anfang des Codes werden zuerst alle Werte aus der Textdatei eingelesen und in zwei Arrayx gespeichert, einer für x-Variablen (xVar) und einer für y-Variablen (yVar).
Dim fso As New FileSystemObject. Dim fnum. Dim MyFile As String. Dim strDataLine As String. Dim xVar () als Variante. Dim yVar () als Variante. Dim intNumOfLines As Integer MyFile = "c: \ files \ MyData.txt" fnum = FreeFile () Öffne MyFile für die Eingabe als # 1. intNumOfLines = 0. Nicht tun EOF (1) intNumOfLines = intNumOfLines + 1 Eingabe Nr. 1, strDataLine Eingabe Nr. 1, strDataLine. Schleife. Schließen Sie # 1 ReDim xVar (intNumOfLines) ReDim yVar (intNumOfLines) Öffnen Sie MyFile für die Eingabe als # 1. intNumOfLines = 0. Do While Not EOF (1) Eingabe Nr. 1, xVar (intNumOfLines) Eingabe Nr. 1, yVar (intNumOfLines) intNumOfLines = intNumOfLines + 1. Schleife. Schließen Sie # 1
Dieser Code durchläuft die Datendatei grundsätzlich zweimal - das erste Mal, dass die Arrays so dimensioniert werden Sie sind genau die Länge, die zum Speichern der Daten und dann ein zweites Mal zum Einlesen der Daten benötigt wird Arrays. Wenn Sie nicht wissen, was ein Array ist, handelt es sich um eine Variable oder einen Speicherbereich, der 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 eine geladene Drittel wäre zum Beispiel (3).
Nachdem Sie 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 macht.
Mit Sheet1.MyChart .Clear .Refresh Set oChart = .Charts. Fügen Sie oChart hinzu. HasTitle = True oChart. Titel. Caption = "Meine Datenwerte" 'oChart. Innere. Farbe = "blau" oChart. Grundstücksfläche. Innere. Farbe = "weiß" Setzen Sie oSeries = oChart. SeriesCollection. Mit oSeries hinzufügen .Caption = "Meine Datenwerte" .SetData chDimCategories, chDataLiteral, xVar .SetData chDimValues, chDataLiteral, yVar .Line. Farbe = "blau" .Linie. DashStyle = chLineDash .Line. Gewicht = 2 .Type = chChartTypeLine Ende mit oChart. HasLegend = True. oChart. Legende. Position = chLegendPositionBottom. Ende mit
Es ist das "Sheet1.MyChart", das den Code mit dem tatsächlich eingebetteten Diagramm verbindet. Es basiert auf dem, was Sie genannt haben. Dies ist der Fall, wenn Sie es in Word, Powerpoint oder ein anderes Office-Produkt einbetten. Sie verweisen nicht auf "Sheet1", sondern auf das Element, das in diesem Fall das Diagramm enthält, z. B. "document1" in Word.
Der obige Code richtet dann die Beschriftung und Färbung des Diagramms ein und lädt die Werte mithilfe der Methode „.setdata“ 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 dann zweidimensional sein müssen, wenn Sie den obigen Code verwenden möchten. Sie können dem Datensatz weitere Werte hinzufügen, müssen jedoch den obigen Code ändern, um den dritten Wert jedes Mal durch die Schleife einzulesen, und dann die "SeriesCollection" duplizieren. Hinzufügen “, um eine weitere Serie zu erstellen und diese dann auf die gleiche Weise zum Diagramm hinzuzufügen.
Es mag komplex erscheinen, nur den obigen Code zu lesen, aber sobald Sie einen dieser Schritte ausgeführt haben, ist es ein Kinderspiel, ihn an Ihre Bedürfnisse anzupassen. Sie können dasselbe Diagramm und ähnlichen Code verwenden, um ein Balkendiagramm, ein Streudiagramm oder einen anderen Diagrammtyp zu erstellen, den Sie mit demselben Objekt verwenden möchten. Es ist vielseitig und flexibel - und es ist ein leistungsstarkes Werkzeug in Ihrem Arsenal, wenn Sie ein Fan von Automatisierung 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 Anwendungen können Sie sich für diese Art der Automatisierung ausdenken? Teilen Sie Ihre Gedanken und Ihr Feedback im Kommentarbereich unten mit!
Ryan hat einen BSc-Abschluss in Elektrotechnik. Er hat 13 Jahre in der Automatisierungstechnik, 5 Jahre in der IT gearbeitet und ist jetzt Apps Engineer. Als ehemaliger Managing Editor von MakeUseOf sprach er auf nationalen Konferenzen zur Datenvisualisierung und wurde im nationalen Fernsehen und Radio vorgestellt.