Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Texteditor via VBA öffnen und String einfügen

Texteditor via VBA öffnen und String einfügen
02.11.2016 17:43:52
Andreas
Hallo Excelfreunde,
ich denke es ist nur eine Banalität, aber trotz Forums- und Internetrecherche komme ich nicht weiter.
Ich habe manchmal die Konstellation, daß ich bei aktiviertem AutoFilter eine Selektion setze und die Inhalte dieser Selection für die weitere Verwendung extrahieren möchte. Ich lasse eine Schleife darüber laufen und lade die Zellwerte ohne Duplikate in ein Array, welches ich mit Join ausgeben lasse. Da ich diese dann doch längeren Textstrings noch einmal in klarer Form sehen möchte, bevor ich sie z.B. in eine eMail kopiere, würde ich sie gern immer in eine frische Texteditor Instanz kopieren. An das Debug Fenster des VBA Editor habe ich zuerst gedacht, aber da stehen noch andere Meldungen drin und das verwirrt.
https://www.herber.de/bbs/user/109154.xlsm
Also: Wie kann ich eine Textdatei öffnen und einen Textstring dort einfügen lassen? In Modul 1 habe ich einen ersten kleinen Ansatz, welcher eine Textdatei öffnet, aber ich bekomme den String „test“ nicht übergeben.
Weiß jemand Rat?
Vielen Dank, Andreas Hanisch
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Texteditor via VBA öffnen und String einfügen
02.11.2016 18:38:13
ransi
Hallo Andreas,
Schau dir mal die "OpenAsTextStream-Methode" an.
Damit geht das ganz hervorragend.
Die "OpentextFile-Methode" des FileSystemObject-Objektes kanns auch.
ransi
AW: Texteditor via VBA öffnen und String einfügen
02.11.2016 19:28:51
Andreas
Hallo Ranis,
vielen Dank für Deine schnelle Antwort. Was ich bei meiner Recherche nun mitbekommen habe und erste Tests auch bestätigen: Es wird jeweils eine Datei angelegt und in diese dann über TextStream der Eintrag vorgenommen.
Ich will aber keine Datei anlegen lassen, sondern nur den Editor öffnen. Die Datei soll nicht gespeichert werden.
Dim fs As New Scripting.FileSystemObject
fs.CreateTextFile "testfile.txt"
fs.OpenTextFile "testfile.txt"
Geht das? Einfach nur den Editor öffnen, Text rein, nichts speichern?
Dank und Gruß, Andreas
Anzeige
AW: Texteditor via VBA öffnen und String einfügen
02.11.2016 19:43:26
Martin
Hallo Andreas,
der Vorschlag von ransi war schon gut. Die Datei kannst selbst im geöffneten Zustand mit "Kill(Dateipfad)" sofort wieder gelöscht werden.
Alternativ kannst du das Notepad per Shell öffnen und deine Daten per SendKey übertragen (...was ich aber weniger schön finde).
Viele Grüße
Martin
Anzeige
AW: Texteditor via VBA öffnen und String einfügen
02.11.2016 20:18:22
Andreas
Lieber Ransi, lieber Case, lieber Martin,
Der Tag war heute eher bescheiden, aber dank Eurer Unterstützung habe ich nun wenigstens die Ausgabe im Texteditor zum Laufen bekommen und eine Ahnung, was 'FileSystemObject' für eine Macht haben kann. Ich habe auf Anregung von Case hin den Code von Isabelle verwendet und in meine Codelandschaft integriert. Die Übertragung von Zeilenumbrüchen hat nicht gleich geklappt, aber den Join mit einem vbCrLf durchzuführen hat es gebracht.
Alles in allem! Ihr seid genial!!!
Habt einen schönen Abend!
Beste Grüße aus Berlin, Andreas Hanisch
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Texteditor via VBA öffnen und String einfügen


Schritt-für-Schritt-Anleitung

Um einen Excel Texteditor via VBA zu öffnen und einen String einzufügen, folge diesen Schritten:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Excel VB Editor zu öffnen.

  2. Ein neues Modul hinzufügen: Klicke mit der rechten Maustaste auf dein VBA-Projekt im Projektfenster, wähle Einfügen und dann Modul.

  3. Code einfügen: Füge den folgenden Code in das Modul ein:

    Sub OpenTextEditor()
       Dim text As String
       text = "Hier ist dein Text, den du einfügen möchtest."
    
       ' Notepad öffnen
       Dim shellCommand As String
       shellCommand = "notepad.exe"
       Shell shellCommand, vbNormalFocus
    
       ' Warte auf Notepad zu starten
       Application.Wait Now + TimeValue("00:00:02")
    
       ' Text in Notepad einfügen
       SendKeys text
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und führe das Makro OpenTextEditor aus. Dein Texteditor sollte nun geöffnet sein und der Text eingefügt werden.


Häufige Fehler und Lösungen

  • Notepad startet nicht: Stelle sicher, dass der Pfad zu Notepad korrekt ist und dass es auf deinem System installiert ist.
  • Text wird nicht eingefügt: Möglicherweise wird der Text zu schnell gesendet, bevor das Notepad vollständig geöffnet ist. Erhöhe die Wartezeit in Application.Wait, um sicherzustellen, dass Notepad bereit ist.

Alternative Methoden

Eine weitere Möglichkeit, einen Excel VBA Texteditor zu öffnen und Text einzufügen, ist die Verwendung von OpenAsTextStream oder OpentextFile:

Sub CreateTextFile()
    Dim fs As Object
    Set fs = CreateObject("Scripting.FileSystemObject")
    Dim a As Object
    Set a = fs.CreateTextFile("C:\temp\testfile.txt", True)

    a.WriteLine "Hier ist dein Text."
    a.Close

    ' Optional: Textdatei im Editor öffnen
    Shell "notepad.exe C:\temp\testfile.txt", vbNormalFocus
End Sub

Praktische Beispiele

Hier ist ein Beispiel, wie Du Duplikate aus einer Liste in einem Texteditor entfernen kannst:

Sub RemoveDuplicatesInNotepad()
    Dim items As Collection
    Set items = New Collection
    Dim item As Variant
    Dim text As String

    ' Beispiel-Daten
    Dim data As Variant
    data = Array("Apfel", "Banane", "Apfel", "Orange", "Banane")

    On Error Resume Next
    For Each item In data
        items.Add item, CStr(item)
    Next item
    On Error GoTo 0

    ' Text für Notepad vorbereiten
    For Each item In items
        text = text & item & vbCrLf
    Next item

    ' Notepad öffnen und Text einfügen
    Shell "notepad.exe", vbNormalFocus
    Application.Wait Now + TimeValue("00:00:02")
    SendKeys text
End Sub

Tipps für Profis

  • SendKeys verwenden: Sei vorsichtig beim Einsatz von SendKeys, da es von anderen Programmen unterbrochen werden kann. Teste den Code in einer ruhigen Umgebung.
  • Timing anpassen: Wenn Du mit SendKeys arbeitest, kann es hilfreich sein, die Wartezeiten dynamisch anzupassen, je nach Performance deines Systems.
  • Automatisierung: Für umfangreiche Datenverarbeitung kann es sinnvoller sein, die Daten direkt in Excel zu verarbeiten, anstatt sie in einen Excel VBA Texteditor zu übertragen.

FAQ: Häufige Fragen

1. Wie kann ich den Excel Makro Editor öffnen?
Drücke ALT + F11, um den Excel VB Editor zu öffnen.

2. Kann ich Notepad verwenden, um Duplikate aus einer Liste zu entfernen?
Ja, Du kannst den Text in Notepad einfügen und dann manuell oder automatisiert Duplikate entfernen, z.B. durch ein VBA-Skript.

3. Wie kann ich eine Textdatei ohne Speichern öffnen?
Die oben genannten Methoden zeigen, wie Du Notepad öffnen und Text einfügen kannst, ohne eine Datei dauerhaft zu speichern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige