Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Problem mit Notepad++ öffnen aus Makro

Problem mit Notepad++ öffnen aus Makro
16.03.2022 11:46:40
flo4711
Hallo zusammen,
ich hätte da eine Frage (bzw. ein Problem) mit dem Handling aktiver Fenster nach dem Öffnen von Notepad++ aus einem Makro heraus.
Hierbei spielen 2 Szenarien eine Rolle:
1. Zum Zeitpunkt der Makroausführung ist Notepad++ nicht geöffnet
In diesem Fall ist alles ok, da die angesprochene Textdatei im Notepad++ minimiert und ohne Focus geöffnet wird.
D.h. die im Makro danach definierte Messagebox erscheint im Excel im Vordergrund.
2. Zum Zeitpunkt der Makroausführung ist Notepad++ bereits geöffnet
In diesem Fall wird die angesprochene Datei ebenfalls im bereits aktiven Notepad++ geöffnet.
Allerdings erscheint die dann definierte Messagebox erst dann im Vordergrund, wenn per Mausklick das entsprechende Excel-Fenster wieder aktiviert wird.
Ich habe hierzu eine kleine Beispielmappe hochgeladen:
https://www.herber.de/bbs/user/151794.xlsm
Zum Testen muss im Verzeichnis "C:\temp" die Datei "test.txt" angelegt werden!
Gibt es für den 2. Fall oben eine Lösung?
Gruß
Gode
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem mit Notepad++ öffnen aus Makro
16.03.2022 12:38:40
Nepumuk
Hallo Gode,
so:

Option Explicit
Private Declare PtrSafe Function SetForegroundWindow Lib "user32.dll" ( _
ByVal hwnd As LongPtr) As Long
Sub Verarbeiten()
Call Notepad_oeffnen
Call SetForegroundWindow(Application.hwnd)
MsgBox "Ich bin jetzt im Vordergrund"
End Sub
Gruß
Nepumuk
Anzeige
AW: Problem mit Notepad++ öffnen aus Makro
16.03.2022 13:08:02
flo4711
Hallo Nepumuk,
das klappt perfekt! :-)
Nur dass ich das auch einigermaßen verstehe:
Die Eigenschaft .hwnd liefert einen Zahlenwert zurück über den eindeutig die Excel-Anwendung definiert ist, in der das Makro ausgeführt wird?
Auf alle Fälle vielen Dank !!
Gruß
Gode
AW: Problem mit Notepad++ öffnen aus Makro
16.03.2022 13:12:34
Nepumuk
Hallo Gode,
hwnd ist die Fensterzugriffsnummer (handle window
Gruß
Nepumuk
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Notepad++ aus Excel-Makro öffnen und Fensterhandling optimieren


Schritt-für-Schritt-Anleitung

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

  2. Ein neues Modul erstellen: Klicke mit der rechten Maustaste auf „VBAProject (DeineDatei.xlsx)“ und wähle „Einfügen“ > „Modul“.

  3. Code einfügen: Kopiere den folgenden Code und füge ihn in das Modul ein:

    Option Explicit
    Private Declare PtrSafe Function SetForegroundWindow Lib "user32.dll" ( _
    ByVal hwnd As LongPtr) As Long
    
    Sub Verarbeiten()
        Call Notepad_oeffnen
        Call SetForegroundWindow(Application.hwnd)
        MsgBox "Ich bin jetzt im Vordergrund"
    End Sub
    
    Sub Notepad_oeffnen()
        Dim notepadPath As String
        notepadPath = "C:\Program Files\Notepad++\notepad++.exe"
        Shell notepadPath & " " & "C:\temp\test.txt", vbNormalFocus
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und gehe zurück zu Excel. Führe das Makro „Verarbeiten“ aus, um Notepad++ zu öffnen und die Messagebox anzuzeigen.


Häufige Fehler und Lösungen

  • Fehler 1: Notepad++ öffnet keine Datei: Stelle sicher, dass der Pfad zu Notepad++ korrekt ist und die Datei "test.txt" im Verzeichnis "C:\temp" existiert.

  • Fehler 2: Messagebox erscheint nicht im Vordergrund: Wenn Notepad++ bereits geöffnet ist, wird die Messagebox erst sichtbar, wenn du das Excel-Fenster aktivierst. Verwende die Funktion SetForegroundWindow, um Excel in den Vordergrund zu bringen.


Alternative Methoden

  • Notepad++ Makro erstellen: Du kannst auch ein Notepad++ Makro verwenden, um mehrere Dateien zusammenzuführen oder doppelte Zeilen zu markieren. Dies erfolgt direkt in Notepad++ und kann die Effizienz steigern.

  • Automatisierung mit Batch-Dateien: Statt VBA kannst du eine Batch-Datei verwenden, um Notepad++ zu öffnen. Dies eignet sich gut, wenn du mehrere Dateien gleichzeitig bearbeiten möchtest.


Praktische Beispiele

  • Notepad++ mit mehreren Fenstern: Wenn du mehrere Instanzen von Notepad++ benötigst, kannst du den Shell-Befehl mehrfach aufrufen. Beispiel:

    Shell notepadPath & " " & "C:\temp\file1.txt", vbNormalFocus
    Shell notepadPath & " " & "C:\temp\file2.txt", vbNormalFocus
  • Symbolleiste anpassen: Du kannst zusätzlich die Symbolleiste in Notepad++ anpassen, um den Zugriff auf häufig genutzte Funktionen zu erleichtern.


Tipps für Profis

  • VBA und Notepad++ kombinieren: Nutze notepad++ vba, um noch effizienter zu arbeiten. Verwende die Möglichkeit, Zeilennummern auszublenden oder spezifische Textdateien zu bearbeiten.

  • Fehlerprotokollierung: Implementiere eine Methode zur Fehlerprotokollierung in deinem VBA-Code, um Probleme beim Öffnen von Notepad++ frühzeitig zu erkennen.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Dateien gleichzeitig in Notepad++ öffnen?
Du kannst mehrere Shell-Befehle hintereinander ausführen, um verschiedene Dateien zu öffnen.

2. Was mache ich, wenn Notepad++ nicht im Vordergrund bleibt?
Stelle sicher, dass du SetForegroundWindow(Application.hwnd) nach dem Öffnen von Notepad++ aufrufst, um Excel aktiv zu halten.

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