Übergeben Sie alle Informationen zwischen VBA-Anwendungen mithilfe der Zwischenablage
Gerade als ich dachte, ich wäre mit meinen neuesten VBA-Tipps und -Tricks fertig. E-Mails aus einer Excel-Kalkulationstabelle mit VBA-Skripts senden E-Mails aus einer Excel-Kalkulationstabelle mit VBA-Scripts senden Mit unserer Codevorlage können Sie automatisierte E-Mails einrichten innerhalb von Excel mit Collaboration Data Objects (CDO) und VBA-Skripts. Lesen Sie mehr. Ich entdeckte eine weitere wirklich coole Technik, mit der jeder Benutzer Informationen zwischen zwei Anwendungen, die VBA als Back-End-Skriptsprache verwenden, problemlos weitergeben kann.
Das Beste an VBA ist, dass es so viele Funktionen und Tools bietet. 3 Möglichkeiten zum Öffnen von Anwendungen und Windows maximiert mit VB-Skript [Windows] 3 Möglichkeiten zum Öffnen von Anwendungen und Windows maximieren mit VB-Skript [Windows] Wenn es eines gibt was ich gerne mache, es ist VB-Skripte schreiben. Unabhängig davon, ob es sich um eine Windows-Skriptdatei oder ein VBA-Skript in einer Anwendung handelt, bietet Scripting die Möglichkeit, Anwendungen zu erweitern. Weitere Informationen, die normalerweise Teil von VB-Anwendungen sind, allerdings in einer etwas verwässerten Version.
Einer der frustrierendsten Aspekte bei der Arbeit mit VBA in bestimmten Anwendungen ist, dass es nicht immer einfach ist, zwei Anwendungen zu erhalten “sich unterhalten” zueinander. Dies liegt daran, dass auf alle Variablen, die Sie verwenden, nur innerhalb des Anwendungsbereichs selbst und nicht von einem anderen Ort des Computers aus zugegriffen werden kann.
Mit diesem gesagt dort sind Möglichkeiten, Informationen weiterzuleiten 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 Informationen aus Excel in Word kopieren und einfügen oder umgekehrt um. So erstellen Benutzer häufig schriftliche Berichte… Lesen Sie mehr zwischen VBA-basierten Anwendungen wie Word oder Excel. In vielen Fällen greifen die Programmierer selbst in einer professionellen Umgebung auf die Kommunikation zwischen Anwendungen mit Dateien zu. Dies kann funktionieren, führt jedoch ein Element potenzieller Manipulationen oder Fehler - wie das Löschen oder Ändern dieser Dateien - ein, um die Werke zu stören.
Ein anderer Ansatz, den Sie für sehr schnelle Transaktionen von Informationen zwischen Anwendungen verwenden können, besteht darin, Daten in die Zwischenablage zu übergeben und diese Informationen dann aus der anderen Anwendung zu lesen.
Übergeben von Informationen mithilfe der Zwischenablage
In diesem Beispiel werde ich Ihnen zeigen, wie Sie drei Textinformationen - Werte in drei Textfeldern - direkt an eine Excel-Kalkulationstabelle übergeben, die das Word-Makro startet.
Das Startsetup ist unten dargestellt. Es ist ein Word-Dokument, in dem ich in den Entwurfsmodus gewechselt bin und 3 Beschriftungen und 3 Textfelder erstellt habe, die der Benutzer zum Eingeben von Informationen eingeben kann. Klicken Sie auf die “einreichen” Die Schaltfläche startet den Datenübertragungscode.
Doppelklicken Sie auf die neue Schaltfläche, die Sie im Entwurfsmodus erstellt haben, um zum VB-Editor-Bildschirm zu gelangen. Als Erstes möchten Sie die Referenz hinzufügen, mit der Sie auf die Systemzwischenablage zugreifen können. Klicken Sie auf Extras - Referenzen.
Blättern Sie durch die Liste der Referenzen und wählen Sie “Microsoft Forms 2.0-Objektbibliothek”. Nachdem Sie auf OK geklickt haben, hat Ihre VB-Editiersitzung nun Zugriff auf die Methoden, mit denen Sie aus der Zwischenablage lesen oder schreiben können.
Genau das werden wir jetzt tun. In der Funktion für die “einreichen” Taste, ich habe den folgenden Code eingegeben.
Dim strClipText As DataObject Dim strInputText As String Dim errCode As Integer-Set strClipText = Neues Datenobjektbibliothek strInputText = ThisDocument.txtBox1.Value & "," & ThisDocument.txtBox2.Value & "," & ThisDocument.txtBox3. PutInClipboard 'Set objWB = objExcel.Workbooks.Open ("c: /temp/MyExcelFile.xlsm") errCode = Shell ("C: \ Programme (x86) \ Microsoft Office \ Office12 \ excel.exe c: / temp / MyExcelFile" .xlsm ")
Sehen Sie, wie einfach es ist Das Datenobjekt strClipText ist das Zwischenablageobjekt, das Sie bearbeiten können. Lesen Sie zuerst alle Feldwerte in eine einzige String-Variable ein, wobei jedes Datenfeld durch ein Komma oder was auch immer für Sie funktioniert, begrenzt ist.
Als Nächstes müssen Sie die Excel-Datei erstellen, die Sie mit dem Shell-Befehl oben öffnen. In Excel möchten Sie denselben Verweis hinzufügen “Microsoft Forms 2.0-Objektbibliothek”, Anschließend können Sie in der Funktion Workbook.Open () das folgende Skript ausführen.
Dim msObj As MSForms.DataObject Dim strText As String Dim strResult () As String Dim intArrayCount As Integer Dim x As Integer-Satz msObj = Neues MSForms.DataObject msObj.GetFromClipboard strText = msObj.GetText strRes () =. ) intArrayCount = Application.CountA (strResult) Für x = 0 To intArrayCount - 1 ThisWorkbook.Sheets ("Sheet1"). Zellen (x + 1, 2) .Value = strResult (x) Next
Wenn Sie es einmal durchgehen, ist dies ein einfaches und sehr schnelles Skript. Es erstellt das MSForms-Objekt, ruft die neuesten Daten aus der Zwischenablage ab und platziert sie in einer String-Variablen. Dann teilt es diese einzelne, lange Stringvariable nach dem von Ihnen verwendeten Trennzeichen in ein Array aus einzelnen Strings auf, und schließlich durchläuft es das Array (CountA gibt die Länge des Arrays an) und gibt jeden Wert an das Blatt in Spalte 2 aus.
Hier sind die Endergebnisse.
Mit etwas Kreativität können Sie nun mit dieser Technik jede VBA-basierte Anwendung starten “Einfügen” Informationen hinein.
Mit der Excel-Referenzbibliothek können Sie immer dasselbe tun, aber in diesem Fall würden Sie die Excel-Datei im Hintergrund öffnen und die Daten in dieser Datei bearbeiten. In diesem Fall öffnen Sie buchstäblich die Excel-Anwendung, zeigen die Datei an und lassen das Startmakro in Excel den Rest der Arbeit erledigen.
Dies ist am nützlichsten, wenn es andere Anwendungen gibt, wie z. B. viele Bedienerschnittstellenanwendungen in vielen Fertigungsstätten, die auf VBA basieren, aber möglicherweise nicht über diese Bibliotheken verfügen, um die beiden Anwendungen eng miteinander zu verknüpfen. Die automatisierte Verwendung der Zwischenablage ist schnell, einfach und erledigt die Arbeit.
Probieren Sie die obigen Skripts aus und lassen Sie uns wissen, wie es auf Ihrem System funktioniert. Musstest du es zwicken? Haben Sie Vorschläge, wie Sie den Code noch verbessern können? Teilen Sie Ihre Gedanken in den Kommentaren unten mit.
Bildgutschrift: Dateiübertragung über Shutterstock
Erfahren Sie mehr über: Microsoft Excel, Microsoft Word, Programmierung, Tabellenkalkulation, Visual Basic-Programmierung.