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

VBA: Process.Start()

Forumthread: VBA: Process.Start()

VBA: Process.Start()
14.10.2021 07:36:01
Sokke
Hallo zusammen,
wenn ich mit WIN+R die 'Ausführen'-Maske in Windows öffne, kann ich einen String eingeben und ausführen. Es handelt sich um KEINE ausführbare Datei.
Es ist einfach ein Befehl, der von meinem ERP System im System registriert wurde- genaueres weiß ich leider nicht.
Nun bräuchte ich in einem VBA Project in Outlook genau diese Funktion.
Mit .net könnte ich System.Diagnostics.Process.Start(String) genau dafür nutzen.
Die System.Diagnostics.Process.dll als Verweis einzubinden geht leider nicht (Meldung in VBA: 'Fehlgeschlagen'), die DLL mit VS zu öffnen geht nicht- oder ich bin zu doof. Ich sehe da rein gar nichts (evtl. Decompilierschutz?).
Mit VBA könnte ich gegenwärtig zwar die Windows-RUN-'Applikation' öffnen und meinen String einfügen.. aber ich mag das unbedingt verhindern, das scheint mir einfach unsauber.
Hat hier jemand ne Idee? Kann ich solche hinterlegten Funktionen in der Registry aufspüren?
Danke schonmal, hoffe ich hab es verständlich erklärt :)
~Sokke
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA: Process.Start()
14.10.2021 09:28:24
Sokke
Hallo,
genau dieses Verlinken ist nicht gerne gesehen. Der Grund dafür ist offensichtlich.
Es ist themenübergreifend sehr wohl üblich, eine konkrete Aufgabenstellung mit unterschiedlichen Herangehensweisen lösen zu wollen. Da ich in noch keinem VBA beinhaltenden Forum 'zuhause' bin, kenne ich leider die entsprechenden Eignungen, Erfahrungen, Bereitschaften und Frequentierungen der jeweiligen User / Platform nicht.
Anzeige
AW: VBA: Process.Start()
14.10.2021 11:03:25
Der
Das ist nicht richtig, siehe Hinweis im VBA-Forum.
Auch hier wird Crossposting nicht gerne gesehen, wie auch in der FAQ zu diesem Forum zu lesen:

Crossposting
Stelle bitte keine Fragen im Rundumschlag. Es kommt vor, dass Fragen im Spotlight-Forum, in der Excel-NewsGroup, an mich persönlich und gleichzeit hier ins Forum gepostet werden. Damit steigen zwar die Chancen des Fragestellers auf Antwort, andererseites beschäftigt er ganze Völkerschaften mit seinem Problem, was die Chance anderer Fragesteller auf eine Antwort verringert. Dieses Verhalten ist nicht fair und wird nur sehr widerstrebend toleriert. 
https://www.herber.de/forum/f_faq.html
Anzeige
;
Anzeige

Infobox / Tutorial

VBA: Process.Start() in Outlook nutzen


Schritt-für-Schritt-Anleitung

Um den Process.Start Befehl in VBA zu nutzen, kannst du die Windows-Shell aufrufen, um einen String auszuführen. Diese Methode kann nützlich sein, wenn du nicht direkt auf die System.Diagnostics.Process.dll zugreifen kannst. Folgende Schritte führen dich durch den Prozess:

  1. Öffne Outlook und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf "VBAProject (DeineOutlookDatei)" klickst und "Einfügen" > "Modul" auswählst.

  3. Kopiere den folgenden Code in das Modul:

    Sub ExecuteCommand()
       Dim command As String
       command = "dein_befehl" ' Ersetze "dein_befehl" mit dem Befehl, den du ausführen möchtest
       Shell "cmd.exe /c " & command, vbNormalFocus
    End Sub
  4. Ändere den command-String auf den Befehl, den du ausführen möchtest.

  5. Speichere das Modul und führe die Subroutine ExecuteCommand aus.

Diese Methode nutzt die Shell-Funktion von VBA, um den gewünschten Befehl auszuführen, was ähnlich wie Process.Start in .NET ist.


Häufige Fehler und Lösungen

Fehler: "Befehl nicht gefunden"
Lösung: Stelle sicher, dass der eingegebene Befehl korrekt ist und im System registriert ist. Du kannst die Registry durchsuchen, um zu prüfen, ob der Befehl vorhanden ist.

Fehler: "Zugriff verweigert"
Lösung: Überprüfe, ob du die erforderlichen Berechtigungen hast, um den Befehl auszuführen. Möglicherweise musst du Outlook als Administrator starten.


Alternative Methoden

Falls du direkt mit der Registry arbeiten möchtest, um hinterlegte Funktionen zu finden, kannst du die Windows-Registry durchsuchen. Dies ist jedoch fortgeschritten und sollte mit Vorsicht gemacht werden. Hier ist ein einfacher Ansatz:

  1. Drücke WIN + R, um die Ausführen-Funktion zu öffnen.
  2. Gebe regedit ein, um den Registrierungs-Editor zu öffnen.
  3. Suche nach deinem spezifischen Befehl unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths.

Praktische Beispiele

Ein Beispiel, um den Befehl notepad auszuführen, könnte so aussehen:

Sub OpenNotepad()
    Shell "cmd.exe /c notepad", vbNormalFocus
End Sub

Du kannst auch komplexere Befehle ausführen, indem du Parameter hinzufügst. Beispiel:

Sub OpenApplicationWithParameters()
    Shell "cmd.exe /c dein_befehl param1 param2", vbNormalFocus
End Sub

Tipps für Profis

  • Teste deine Befehle zuerst in der Eingabeaufforderung, um sicherzustellen, dass sie wie gewünscht funktionieren.
  • Nutze vbHide anstelle von vbNormalFocus, um die Eingabeaufforderung im Hintergrund auszuführen, falls du keine Benutzeroberfläche benötigst.
  • Integriere Fehlerbehandlungsroutinen in deinen Code, um unerwartete Probleme zu vermeiden.

FAQ: Häufige Fragen

1. Kann ich process.start in VBA verwenden?
Nein, die direkte Verwendung von System.Diagnostics.Process.Start ist in VBA nicht möglich. Du kannst jedoch die Shell-Funktion nutzen, um ähnliche Ergebnisse zu erzielen.

2. Wie finde ich heraus, ob ein Befehl im System registriert ist?
Du kannst die Windows-Registry durchsuchen oder die Eingabeaufforderung verwenden, um den Befehl zu testen. Stelle sicher, dass der Befehl korrekt eingegeben wird.

3. Gibt es eine Möglichkeit, die System.Diagnostics.Process.dll in VBA zu verwenden?
In VBA ist es nicht möglich, .NET-Bibliotheken direkt zu verwenden. Du kannst jedoch die Shell-Funktion oder API-Aufrufe nutzen, um ähnliche Funktionen zu erreichen.

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