Mein Problem ist im Grunde klein, dennoch will es nicht so werden wie es soll ...
Ihr könnt da sicher helfen.
Die Aufgabe: Aus VBA einen DOS-Befehl absetzen, zur Vermeidung von Zwischendateien das Ergebnis in die Zwischenablage umleiten, die Zwischenablage auslesen.
DOS-Befehl absetzen: Shell command
Umleiten in Zwischenablage (WIN7): Pipe-Funktion: | Clip
Zwischenablage auslesen: per DataObject
In einem Kommandofenster ausgeführt stehen die Daten für das DataObject zur Verfügung und werden ausgelesen. Wenn der DOS-Befehl über die Shell ausgeführt wird, landen die Ergebnisse nicht im Zwischenspeicher, nicht im Clipboard.
Was läuft da falsch?
Hier ein kleiner Beispielcode:
Sub mytest()
Dim oData As New DataObject
Shell "ipconfig | clip"
With oData
.GetFromClipboard
Debug.Print oData.GetText(1)
End With
Set oData = Nothing
End Sub
Gruß, Arthur